sagorbrur/bnaug

Bangla Text Augmentation

Jupyter Notebook

11

54 commits

updated Aug 30, 2023

See the code

README

bnaug (Bangla Text Augmentation)

bnaug is a text augmentation tool for Bangla text.

Installation

pip install bnaug
  • Dependencies
    • pytorch >=1.7.0

Demo Notebook

Sentence Augmentation

Token Replacement

  • Mask generation based augmentation

    from bnaug.sentence import TokenReplacement
    
    tokr = TokenReplacement()
    text = "আমি ঢাকায় বাস করি।"
    output = tokr.masking_based(text, sen_n=5)
    
  • Word2Vec based augmentation

    from bnaug.sentence import TokenReplacement
    
    tokr = TokenReplacement()
    text = "আমি ঢাকায় বাস করি।"
    model = "msc/bangla_word2vec/bnwiki_word2vec.model"
    output = tokr.word2vec_based(text, model=model, sen_n=5, word_n=5)
    print(output)
    
  • Glove based augmentation

    from bnaug.sentence import TokenReplacement
    
    tokr = TokenReplacement()
    text = "আমি ঢাকায় বাস করি।"
    vector = "msc/bn_glove.300d.txt"
    output = tokr.glove_based(text, vector_path=vector, sen_n=5, word_n=5)
    print(output)
    

Back Translation

Back translation based augmentation first translate Bangla sentence to English and then again translate the English to Bangla.

from bnaug.sentence import BackTranslation

bt = BackTranslation()
text = "বাংলা ভাষা আন্দোলন তদানীন্তন পূর্ব পাকিস্তানে সংঘটিত একটি সাংস্কৃতিক ও রাজনৈতিক আন্দোলন। "
output = bt.get_augmented_sentences(text)
print(output)

Text Generation

  • Paraphrase generation
from bnaug.sentence import TextGeneration

tg = TextGeneration()
text = "বিমানটি যখন মাটিতে নামার জন্য এয়ারপোর্টের কাছাকাছি আসছে, তখন ল্যান্ডিং গিয়ারের খোপের ঢাকনাটি খুলে যায়।"
output = tg.parapharse_generation(text)
print(output)

Random Augmentation

  • Random remove part and generate new sentence

    At present it's removing word, stopwords, punctuations, numbers and generate new sentences

    from bnaug.sentence import RandomAugmentation
    
    raug = RandomAugmentation()
    sentence = "আমি ১০০ বাকি দিলাম"
    output = raug.random_remove(sentence)
    print(output)
    
    

    or apply individually

    from bnaug import randaug
    
    text = "১০০ বাকি দিলাম"
    output = randaug.remove_digits(text)
    print(output)
    
    text = "১০০! বাকি দিলাম?"
    output = randaug.remove_punctuations(text)
    print(output)
    
    text = "আমি ১০০ বাকি দিলাম"
    randaug.remove_stopwords(text)
    print(output)
    
    text = "আমি ১০০ বাকি দিলাম"
    randaug.remove_random_word(text)
    print(output)
    
    text = "আমি ১০০ বাকি দিলাম"
    randaug.remove_random_char(text)
    print(output)
    

Inspired from

augmentation-libraries
back-translation
bangla
bangla-text-augmentation
bengali
bengali-nlp
text-augmentation

sagorbrur/bnaug

Bangla Text Augmentation

Jupyter Notebook

11

54 commits

updated Aug 30, 2023

See the code

README

bnaug (Bangla Text Augmentation)

bnaug is a text augmentation tool for Bangla text.

Installation

pip install bnaug
  • Dependencies
    • pytorch >=1.7.0

Demo Notebook

Sentence Augmentation

Token Replacement

  • Mask generation based augmentation

    from bnaug.sentence import TokenReplacement
    
    tokr = TokenReplacement()
    text = "আমি ঢাকায় বাস করি।"
    output = tokr.masking_based(text, sen_n=5)
    
  • Word2Vec based augmentation

    from bnaug.sentence import TokenReplacement
    
    tokr = TokenReplacement()
    text = "আমি ঢাকায় বাস করি।"
    model = "msc/bangla_word2vec/bnwiki_word2vec.model"
    output = tokr.word2vec_based(text, model=model, sen_n=5, word_n=5)
    print(output)
    
  • Glove based augmentation

    from bnaug.sentence import TokenReplacement
    
    tokr = TokenReplacement()
    text = "আমি ঢাকায় বাস করি।"
    vector = "msc/bn_glove.300d.txt"
    output = tokr.glove_based(text, vector_path=vector, sen_n=5, word_n=5)
    print(output)
    

Back Translation

Back translation based augmentation first translate Bangla sentence to English and then again translate the English to Bangla.

from bnaug.sentence import BackTranslation

bt = BackTranslation()
text = "বাংলা ভাষা আন্দোলন তদানীন্তন পূর্ব পাকিস্তানে সংঘটিত একটি সাংস্কৃতিক ও রাজনৈতিক আন্দোলন। "
output = bt.get_augmented_sentences(text)
print(output)

Text Generation

  • Paraphrase generation
from bnaug.sentence import TextGeneration

tg = TextGeneration()
text = "বিমানটি যখন মাটিতে নামার জন্য এয়ারপোর্টের কাছাকাছি আসছে, তখন ল্যান্ডিং গিয়ারের খোপের ঢাকনাটি খুলে যায়।"
output = tg.parapharse_generation(text)
print(output)

Random Augmentation

  • Random remove part and generate new sentence

    At present it's removing word, stopwords, punctuations, numbers and generate new sentences

    from bnaug.sentence import RandomAugmentation
    
    raug = RandomAugmentation()
    sentence = "আমি ১০০ বাকি দিলাম"
    output = raug.random_remove(sentence)
    print(output)
    
    

    or apply individually

    from bnaug import randaug
    
    text = "১০০ বাকি দিলাম"
    output = randaug.remove_digits(text)
    print(output)
    
    text = "১০০! বাকি দিলাম?"
    output = randaug.remove_punctuations(text)
    print(output)
    
    text = "আমি ১০০ বাকি দিলাম"
    randaug.remove_stopwords(text)
    print(output)
    
    text = "আমি ১০০ বাকি দিলাম"
    randaug.remove_random_word(text)
    print(output)
    
    text = "আমি ১০০ বাকি দিলাম"
    randaug.remove_random_char(text)
    print(output)
    

Inspired from

augmentation-libraries
back-translation
bangla
bangla-text-augmentation
bengali
bengali-nlp
text-augmentation

Project health

PyPI

Latest release

1.1.2 · Aug 30, 2023

Releases this year

0