Merge pull request #873 from banglakit/bn-tests

Add tests for Bengali
This commit is contained in:
Ines Montani 2017-03-05 12:13:49 +01:00 committed by GitHub
commit f710fc3f2d
4 changed files with 49 additions and 2 deletions

View File

@ -0,0 +1 @@
# coding: utf-8

View File

@ -0,0 +1,40 @@
# encoding: utf8
from __future__ import unicode_literals
import pytest
TESTCASES = []
PUNCTUATION_TESTS = [
(u'আমি বাংলায় গান গাই!', [u'আমি', u'বাংলায়', u'গান', u'গাই', u'!']),
(u'আমি বাংলায় কথা কই।', [u'আমি', u'বাংলায়', u'কথা', u'কই', u'']),
(u'বসুন্ধরা জনসম্মুখে দোষ স্বীকার করলো না?', [u'বসুন্ধরা', u'জনসম্মুখে', u'দোষ', u'স্বীকার', u'করলো', u'না', u'?']),
(u'টাকা থাকলে কি না হয়!', [u'টাকা', u'থাকলে', u'কি', u'না', u'হয়', u'!']),
]
ABBREVIATIONS = [
(u'ডঃ খালেদ বললেন ঢাকায় ৩৫ ডিগ্রি সে.।', [u'ডঃ', u'খালেদ', u'বললেন', u'ঢাকায়', u'৩৫', u'ডিগ্রি', u'সে.', u''])
]
TESTCASES.extend(PUNCTUATION_TESTS)
TESTCASES.extend(ABBREVIATIONS)
@pytest.mark.parametrize('text,expected_tokens', TESTCASES)
def test_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_tokenizer_handles_long_text(bn_tokenizer):
text = u"""নর্থ সাউথ বিশ্ববিদ্যালয়ে সারাবছর কোন না কোন বিষয়ে গবেষণা চলতেই থাকে। \
অভি ি রগণ ি ি িি গবষণ রকল কর, \
মধ রয বট ি ি ি আরিিি ইনি \
এসকল রকল কর যম ি যথ পরি ইজড হওয সমভব \
আর গবষণ িরক ি অনকখি! \
কন হও, গবষক ি লপ - নর উথ ইউনিিি রতি ি রয \
নর উথ অসরণ কমিউনিি দর আমনরণ"""
tokens = bn_tokenizer(text)
assert len(tokens) == 84

View File

@ -11,6 +11,7 @@ from ..nl import Dutch
from ..sv import Swedish from ..sv import Swedish
from ..hu import Hungarian from ..hu import Hungarian
from ..fi import Finnish from ..fi import Finnish
from ..bn import Bengali
from ..tokens import Doc from ..tokens import Doc
from ..strings import StringStore from ..strings import StringStore
from ..lemmatizer import Lemmatizer from ..lemmatizer import Lemmatizer
@ -24,7 +25,7 @@ import pytest
LANGUAGES = [English, German, Spanish, Italian, French, Portuguese, Dutch, LANGUAGES = [English, German, Spanish, Italian, French, Portuguese, Dutch,
Swedish, Hungarian, Finnish] Swedish, Hungarian, Finnish, Bengali]
@pytest.fixture(params=LANGUAGES) @pytest.fixture(params=LANGUAGES)
@ -73,6 +74,11 @@ def sv_tokenizer():
return Swedish.Defaults.create_tokenizer() return Swedish.Defaults.create_tokenizer()
@pytest.fixture
def bn_tokenizer():
return Bengali.Defaults.create_tokenizer()
@pytest.fixture @pytest.fixture
def stringstore(): def stringstore():
return StringStore() return StringStore()

View File

@ -31,7 +31,7 @@ def test_tokenizer_handles_punct(tokenizer):
def test_tokenizer_handles_digits(tokenizer): def test_tokenizer_handles_digits(tokenizer):
exceptions = ["hu"] exceptions = ["hu", "bn"]
text = "Lorem ipsum: 1984." text = "Lorem ipsum: 1984."
tokens = tokenizer(text) tokens = tokenizer(text)