mirror of
https://github.com/explosion/spaCy.git
synced 2024-12-25 09:26:27 +03:00
b892b446cc
* Added the same punctuation rules as danish language. * Added abbreviations and also the possibility to have capitalized abbreviations on some. Added a few specific cases too * Added test for long texts in swedish * Added morph rules, infixes and suffixes to __init__.py for swedish * Added some tests for prefixes, infixes and suffixes * Added tests for lemma * Renamed files to follow convention * [sv] Removed ambigious abbreviations * Added more tests for tokenizer exceptions * Added test for problem with punctuation in issue #2578 * Contributor agreement * Removed faulty lemmatization of 'jag' ('I') as it was lemmatized to 'jaga' ('hunt')
54 lines
1.8 KiB
Python
54 lines
1.8 KiB
Python
# coding: utf8
|
|
from __future__ import unicode_literals
|
|
|
|
import pytest
|
|
|
|
|
|
SV_TOKEN_EXCEPTION_TESTS = [
|
|
('Smörsåsen används bl.a. till fisk', ['Smörsåsen', 'används', 'bl.a.', 'till', 'fisk']),
|
|
('Jag kommer först kl. 13 p.g.a. diverse förseningar', ['Jag', 'kommer', 'först', 'kl.', '13', 'p.g.a.', 'diverse', 'förseningar']),
|
|
('Anders I. tycker om ord med i i.', ["Anders", "I.", "tycker", "om", "ord", "med", "i", "i", "."])
|
|
]
|
|
|
|
|
|
@pytest.mark.parametrize('text,expected_tokens', SV_TOKEN_EXCEPTION_TESTS)
|
|
def test_sv_tokenizer_handles_exception_cases(sv_tokenizer, text, expected_tokens):
|
|
tokens = sv_tokenizer(text)
|
|
token_list = [token.text for token in tokens if not token.is_space]
|
|
assert expected_tokens == token_list
|
|
|
|
|
|
@pytest.mark.parametrize('text', ["driveru", "hajaru", "Serru", "Fixaru"])
|
|
def test_sv_tokenizer_handles_verb_exceptions(sv_tokenizer, text):
|
|
tokens = sv_tokenizer(text)
|
|
assert len(tokens) == 2
|
|
assert tokens[1].text == "u"
|
|
|
|
|
|
@pytest.mark.parametrize('text',
|
|
["bl.a", "m.a.o.", "Jan.", "Dec.", "kr.", "osv."])
|
|
def test_sv_tokenizer_handles_abbr(sv_tokenizer, text):
|
|
tokens = sv_tokenizer(text)
|
|
assert len(tokens) == 1
|
|
|
|
|
|
@pytest.mark.parametrize('text', ["Jul.", "jul.", "sön.", "Sön."])
|
|
def test_sv_tokenizer_handles_ambiguous_abbr(sv_tokenizer, text):
|
|
tokens = sv_tokenizer(text)
|
|
assert len(tokens) == 2
|
|
|
|
|
|
def test_sv_tokenizer_handles_exc_in_text(sv_tokenizer):
|
|
text = "Det er bl.a. ikke meningen"
|
|
tokens = sv_tokenizer(text)
|
|
assert len(tokens) == 5
|
|
assert tokens[2].text == "bl.a."
|
|
|
|
|
|
def test_sv_tokenizer_handles_custom_base_exc(sv_tokenizer):
|
|
text = "Her er noget du kan kigge i."
|
|
tokens = sv_tokenizer(text)
|
|
assert len(tokens) == 8
|
|
assert tokens[6].text == "i"
|
|
assert tokens[7].text == "."
|