ai-content-maker/.venv/Lib/site-packages/spacy/tests/lang/bn/test_tokenizer.py

37 lines
3.5 KiB
Python
Raw Normal View History

2024-05-03 04:18:51 +03:00
import pytest
# fmt: off
TESTCASES = [
# Punctuation tests
("আমি বাংলায় গান গাই!", ["আমি", "বাংলায়", "গান", "গাই", "!"]),
("আমি বাংলায় কথা কই।", ["আমি", "বাংলায়", "কথা", "কই", ""]),
("বসুন্ধরা জনসম্মুখে দোষ স্বীকার করলো না?", ["বসুন্ধরা", "জনসম্মুখে", "দোষ", "স্বীকার", "করলো", "না", "?"]),
("টাকা থাকলে কি না হয়!", ["টাকা", "থাকলে", "কি", "না", "হয়", "!"]),
("সরকারি বিশ্ববিদ্যালয়-এর ছাত্র নই বলেই কি এমন আচরণ?", ["সরকারি", "বিশ্ববিদ্যালয়", "-", "এর", "ছাত্র", "নই", "বলেই", "কি", "এমন", "আচরণ", "?"]),
('তারা বলে, "ওরা খামারের মুরগি।"', ["তারা", "বলে", ",", '"', "ওরা", "খামারের", "মুরগি", "", '"']),
("৩*৩=৬?", ["", "*", "", "=", "", "?"]),
("কাঁঠাল-এর গন্ধই অন্যরকম", ["কাঁঠাল", "-", "এর", "গন্ধই", "অন্যরকম"]),
# Abbreviations
("ডঃ খালেদ বললেন ঢাকায় ৩৫ ডিগ্রি সে.।", ["ডঃ", "খালেদ", "বললেন", "ঢাকায়", "৩৫", "ডিগ্রি", "সে.", ""]),
]
# fmt: on
@pytest.mark.parametrize("text,expected_tokens", TESTCASES)
def test_bn_tokenizer_handles_testcases(bn_tokenizer, text, expected_tokens):
tokens = bn_tokenizer(text)
token_list = [token.text for token in tokens if not token.is_space]
assert expected_tokens == token_list
def test_bn_tokenizer_handles_long_text(bn_tokenizer):
text = """নর্থ সাউথ বিশ্ববিদ্যালয়ে সারাবছর কোন না কোন বিষয়ে গবেষণা চলতেই থাকে। \
অভি ি রগণ ি ি িি গবষণ রকল কর, \
মধ রয বট ি ি ি আরিিি ইনি \
এসকল রকল কর যম ি যথ পরি ইজড হওয সমভব \
আর গবষণ িরক ি অনকখি! \
কন হও, গবষক ি লপ - নর উথ ইউনিিি রতি ি রয \
নর উথ অসরণ কমিউনিি দর আমনরণ"""
tokens = bn_tokenizer(text)
assert len(tokens) == 84