spaCy/spacy/tests/bn/test_tokenizer.py
2017-03-05 11:25:12 +06:00

41 lines
3.0 KiB
Python

# 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