mirror of
https://github.com/explosion/spaCy.git
synced 2024-11-14 21:57:15 +03:00
46 lines
3.7 KiB
Python
46 lines
3.7 KiB
Python
# coding: 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'!']),
|
|
(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'āĻāĻ°', 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
|