Skip to content

Shakleen/Abstractive-Bangla-Text-Summarizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Abstractive Bangla Text Summarizer

An abstractive text summarizer built for Bangla language powered by a Transformer model.

Python Tensorflow Numpy Pandas

Table of Contents
  1. About
  2. Dataset
  3. Checkpoint
  4. Getting Started
  5. Contact
  6. Acknowledgments

About

This repository is dedicated to my under-graduate thesis research about Neural Machine Summarization for Bangla language. Previous research endevours on Bangla text summarization were limited to Recurrent Neural Networks and their many varients. A new break-through in Natural Language Processing was brought about in 2017 with the famous paper Attention is All you Need. My under-graduate thesis was focused on researching this revolutionary paper and creating a transformer model to summarize Bangla text.

Contributors

This research was made possible with the help of my two teammates Ahmed Sadman Muhib and AKM Nahid Hasan. We completed our thesis under the supervision of Dr. Abu Raihan Mostofa Kamal while being a part of the Network and Data Analysis lab.

More Information

  • My thesis report goes into more details about my undergraduate thesis reseach.
  • My thesis defence slide highlights the important sections and achievements of my thesis.

(back to top)


Dataset

To train the transformer model we created a text corpus consisting of over a 1 million bangla news articles scarped from the popular news publisher Prothom-Alo. We made the dataset open-source and it can be found at Kaggle called Prothom Alo News Articles. The dataset was mined using this tool created by my teammate Ahmed Sadman Muhib

(back to top)


Checkpoint

Saved weights for the transformer model can be found here.


Getting Started

Prerequisites

  • Hardware Requirements
    1. NVidia GPU
    2. At least 32GB of RAM
  • Software Requirements
    • Operating System: Linux
    • Python: 3.7.7
    • CUDA: 10.1
    • CUDNN: 7.0

Personal configuration

  • GPU: NVidia RTX 3070 with 8GB VRAM
  • RAM: 32GB DDR4 2400MHz
  • OS: Manjaro Linux

Setup

  1. Install python 3.7.7, cuda-10.1 and cudnn-7.0
  2. Clone repository into local machine.
  3. Create python virtual environment.
    $ python3 -m venv venv
    $ pip install --upgrade pip
    $ pip install -r requirements.txt

Run

  • Generate TFRecords

    $ python3 src/data_manipulation/create_tfrecords_from_csv.py \
    --input_csv_dir /path/to/csvs \
    --output_dir /path/to/output/dir
  • Train model: Execute train.ipynb with appropriate path to tfrecords and output directories.

(back to top)


Contact

For inqueries consider reaching out

(back to top)


Acknowledgments

  1. Thank you to my supervisor Dr. Abu Raihan Mostofa Kamal for his support and guidance in my thesis work.
  2. I'm immensely grateful to the Rasa team for making this playlist with such valuable information free for anyone to learn.
  3. A huge thank you to Hugging Face for making their implementation of SOTA papers open source.

(back to top)

About

Transformer based Bangla Abstractive Text Summarization System

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published