mirror of
https://github.com/explosion/spaCy.git
synced 2024-11-13 13:17:06 +03:00
e2b70df012
* Use isort with Black profile * isort all the things * Fix import cycles as a result of import sorting * Add DOCBIN_ALL_ATTRS type definition * Add isort to requirements * Remove isort from build dependencies check * Typo
48 lines
1.6 KiB
Python
48 lines
1.6 KiB
Python
import pytest
|
|
|
|
from spacy.lang.vi import Vietnamese
|
|
|
|
from ...tokenizer.test_naughty_strings import NAUGHTY_STRINGS
|
|
|
|
# fmt: off
|
|
TOKENIZER_TESTS = [
|
|
("Đây là một văn bản bằng tiếng Việt Sau đó, đây là một văn bản khác bằng ngôn ngữ này", ['Đây', 'là', 'một', 'văn bản', 'bằng', 'tiếng', 'Việt', 'Sau', 'đó', ',', 'đây', 'là', 'một', 'văn bản', 'khác', 'bằng', 'ngôn ngữ', 'này']),
|
|
]
|
|
# fmt: on
|
|
|
|
|
|
@pytest.mark.parametrize("text,expected_tokens", TOKENIZER_TESTS)
|
|
def test_vi_tokenizer(vi_tokenizer, text, expected_tokens):
|
|
tokens = [token.text for token in vi_tokenizer(text)]
|
|
assert tokens == expected_tokens
|
|
|
|
|
|
def test_vi_tokenizer_extra_spaces(vi_tokenizer):
|
|
# note: three spaces after "I"
|
|
tokens = vi_tokenizer("I like cheese.")
|
|
assert tokens[1].orth_ == " "
|
|
|
|
|
|
@pytest.mark.parametrize("text", NAUGHTY_STRINGS)
|
|
def test_vi_tokenizer_naughty_strings(vi_tokenizer, text):
|
|
tokens = vi_tokenizer(text)
|
|
assert tokens.text_with_ws == text
|
|
|
|
|
|
def test_vi_tokenizer_emptyish_texts(vi_tokenizer):
|
|
doc = vi_tokenizer("")
|
|
assert len(doc) == 0
|
|
doc = vi_tokenizer(" ")
|
|
assert len(doc) == 1
|
|
doc = vi_tokenizer("\n\n\n \t\t \n\n\n")
|
|
assert len(doc) == 1
|
|
|
|
|
|
def test_vi_tokenizer_no_pyvi():
|
|
"""Test for whitespace tokenization without pyvi"""
|
|
nlp = Vietnamese.from_config({"nlp": {"tokenizer": {"use_pyvi": False}}})
|
|
text = "Đây là một văn bản bằng tiếng Việt Sau đó, đây là một văn bản khác bằng ngôn ngữ này"
|
|
doc = nlp(text)
|
|
assert [t.text for t in doc if not t.is_space] == text.split()
|
|
assert doc[4].text == " "
|