2018-06-19 08:17:53 +00:00
|
|
|
|
import pytest
|
|
|
|
|
|
2018-07-24 21:38:44 +00:00
|
|
|
|
|
2018-06-19 08:17:53 +00:00
|
|
|
|
INFIX_HYPHEN_TESTS = [
|
|
|
|
|
("Явым-төшем күләме.", "Явым-төшем күләме .".split()),
|
2018-11-27 00:09:36 +00:00
|
|
|
|
("Хатын-кыз киеме.", "Хатын-кыз киеме .".split()),
|
2018-06-19 08:17:53 +00:00
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
PUNC_INSIDE_WORDS_TESTS = [
|
2018-11-27 00:09:36 +00:00
|
|
|
|
(
|
|
|
|
|
"Пассаҗир саны - 2,13 млн — кеше/көндә (2010), 783,9 млн. кеше/елда.",
|
|
|
|
|
"Пассаҗир саны - 2,13 млн — кеше / көндә ( 2010 ) ,"
|
|
|
|
|
" 783,9 млн. кеше / елда .".split(),
|
|
|
|
|
),
|
|
|
|
|
('Ту"кай', 'Ту " кай'.split()),
|
2018-06-19 08:17:53 +00:00
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
MIXED_ORDINAL_NUMS_TESTS = [
|
|
|
|
|
("Иртәгә 22нче гыйнвар...", "Иртәгә 22нче гыйнвар ...".split())
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
ABBREV_TESTS = [
|
|
|
|
|
("«3 елда (б.э.к.) туган", "« 3 елда ( б.э.к. ) туган".split()),
|
2018-11-27 00:09:36 +00:00
|
|
|
|
("тукымадан һ.б.ш. тегелгән.", "тукымадан һ.б.ш. тегелгән .".split()),
|
2018-06-19 08:17:53 +00:00
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
NAME_ABBREV_TESTS = [
|
|
|
|
|
("Ә.Тукай", "Ә.Тукай".split()),
|
|
|
|
|
("Ә.тукай", "Ә.тукай".split()),
|
|
|
|
|
("ә.Тукай", "ә . Тукай".split()),
|
2018-11-27 00:09:36 +00:00
|
|
|
|
("Миләүшә.", "Миләүшә .".split()),
|
2018-06-19 08:17:53 +00:00
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
TYPOS_IN_PUNC_TESTS = [
|
|
|
|
|
("«3 елда , туган", "« 3 елда , туган".split()),
|
|
|
|
|
("«3 елда,туган", "« 3 елда , туган".split()),
|
|
|
|
|
("«3 елда,туган.", "« 3 елда , туган .".split()),
|
|
|
|
|
("Ул эшли(кайчан?)", "Ул эшли ( кайчан ? )".split()),
|
2018-11-27 00:09:36 +00:00
|
|
|
|
("Ул (кайчан?)эшли", "Ул ( кайчан ?) эшли".split()), # "?)" => "?)" or "? )"
|
2018-06-19 08:17:53 +00:00
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
LONG_TEXTS_TESTS = [
|
2018-11-27 00:09:36 +00:00
|
|
|
|
(
|
2020-01-06 13:58:59 +00:00
|
|
|
|
"Иң борынгы кешеләр суыклар һәм салкын кышлар булмый торган җылы "
|
|
|
|
|
"якларда яшәгәннәр, шуңа күрә аларга кием кирәк булмаган.Йөз "
|
|
|
|
|
"меңнәрчә еллар үткән, борынгы кешеләр акрынлап Европа һәм Азиянең "
|
|
|
|
|
"салкын илләрендә дә яши башлаганнар. Алар кырыс һәм салкын "
|
2018-11-27 00:09:36 +00:00
|
|
|
|
"кышлардан саклану өчен кием-салым уйлап тапканнар - итәк.",
|
2020-01-06 13:58:59 +00:00
|
|
|
|
"Иң борынгы кешеләр суыклар һәм салкын кышлар булмый торган җылы "
|
|
|
|
|
"якларда яшәгәннәр , шуңа күрә аларга кием кирәк булмаган . Йөз "
|
|
|
|
|
"меңнәрчә еллар үткән , борынгы кешеләр акрынлап Европа һәм Азиянең "
|
|
|
|
|
"салкын илләрендә дә яши башлаганнар . Алар кырыс һәм салкын "
|
2018-11-27 00:09:36 +00:00
|
|
|
|
"кышлардан саклану өчен кием-салым уйлап тапканнар - итәк .".split(),
|
|
|
|
|
)
|
2018-06-19 08:17:53 +00:00
|
|
|
|
]
|
|
|
|
|
|
2018-11-27 00:09:36 +00:00
|
|
|
|
TESTCASES = (
|
|
|
|
|
INFIX_HYPHEN_TESTS
|
|
|
|
|
+ PUNC_INSIDE_WORDS_TESTS
|
|
|
|
|
+ MIXED_ORDINAL_NUMS_TESTS
|
|
|
|
|
+ ABBREV_TESTS
|
|
|
|
|
+ NAME_ABBREV_TESTS
|
|
|
|
|
+ LONG_TEXTS_TESTS
|
|
|
|
|
+ TYPOS_IN_PUNC_TESTS
|
|
|
|
|
)
|
2018-06-19 08:17:53 +00:00
|
|
|
|
|
|
|
|
|
NORM_TESTCASES = [
|
2018-11-27 00:09:36 +00:00
|
|
|
|
(
|
|
|
|
|
"тукымадан һ.б.ш. тегелгән.",
|
|
|
|
|
["тукымадан", "һәм башка шундыйлар", "тегелгән", "."],
|
|
|
|
|
)
|
2018-06-19 08:17:53 +00:00
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize("text,expected_tokens", TESTCASES)
|
2018-07-24 21:38:44 +00:00
|
|
|
|
def test_tt_tokenizer_handles_testcases(tt_tokenizer, text, expected_tokens):
|
2018-06-19 08:17:53 +00:00
|
|
|
|
tokens = [token.text for token in tt_tokenizer(text) if not token.is_space]
|
|
|
|
|
assert expected_tokens == tokens
|
|
|
|
|
|
|
|
|
|
|
2018-11-27 00:09:36 +00:00
|
|
|
|
@pytest.mark.parametrize("text,norms", NORM_TESTCASES)
|
2018-07-24 21:38:44 +00:00
|
|
|
|
def test_tt_tokenizer_handles_norm_exceptions(tt_tokenizer, text, norms):
|
2018-06-19 08:17:53 +00:00
|
|
|
|
tokens = tt_tokenizer(text)
|
|
|
|
|
assert [token.norm_ for token in tokens] == norms
|