2017-10-14 14:11:39 +03:00
|
|
|
# coding: utf-8
|
|
|
|
from __future__ import unicode_literals
|
|
|
|
|
|
|
|
import pytest
|
|
|
|
|
|
|
|
|
2018-11-27 03:09:36 +03:00
|
|
|
# fmt: off
|
2017-10-14 14:11:39 +03:00
|
|
|
TOKENIZER_TESTS = [
|
2018-07-25 00:38:44 +03:00
|
|
|
("日本語だよ", ['日本', '語', 'だ', 'よ']),
|
|
|
|
("東京タワーの近くに住んでいます。", ['東京', 'タワー', 'の', '近く', 'に', '住ん', 'で', 'い', 'ます', '。']),
|
|
|
|
("吾輩は猫である。", ['吾輩', 'は', '猫', 'で', 'ある', '。']),
|
|
|
|
("月に代わって、お仕置きよ!", ['月', 'に', '代わっ', 'て', '、', 'お', '仕置き', 'よ', '!']),
|
|
|
|
("すもももももももものうち", ['すもも', 'も', 'もも', 'も', 'もも', 'の', 'うち'])
|
2017-10-14 14:11:39 +03:00
|
|
|
]
|
|
|
|
|
2018-05-03 19:38:26 +03:00
|
|
|
TAG_TESTS = [
|
2018-07-25 00:38:44 +03:00
|
|
|
("日本語だよ", ['日本語だよ', '名詞-固有名詞-地名-国', '名詞-普通名詞-一般', '助動詞', '助詞-終助詞']),
|
|
|
|
("東京タワーの近くに住んでいます。", ['名詞-固有名詞-地名-一般', '名詞-普通名詞-一般', '助詞-格助詞', '名詞-普通名詞-副詞可能', '助詞-格助詞', '動詞-一般', '助詞-接続助詞', '動詞-非自立可能', '助動詞', '補助記号-句点']),
|
|
|
|
("吾輩は猫である。", ['代名詞', '助詞-係助詞', '名詞-普通名詞-一般', '助動詞', '動詞-非自立可能', '補助記号-句点']),
|
|
|
|
("月に代わって、お仕置きよ!", ['名詞-普通名詞-助数詞可能', '助詞-格助詞', '動詞-一般', '助詞-接続助詞', '補助記号-読点', '接頭辞', '名詞-普通名詞-一般', '助詞-終助詞', '補助記号-句点 ']),
|
|
|
|
("すもももももももものうち", ['名詞-普通名詞-一般', '助詞-係助詞', '名詞-普通名詞-一般', '助詞-係助詞', '名詞-普通名詞-一般', '助詞-格助詞', '名詞-普通名詞-副詞可能'])
|
2018-05-03 19:38:26 +03:00
|
|
|
]
|
|
|
|
|
|
|
|
POS_TESTS = [
|
2018-07-25 00:38:44 +03:00
|
|
|
('日本語だよ', ['PROPN', 'NOUN', 'AUX', 'PART']),
|
|
|
|
('東京タワーの近くに住んでいます。', ['PROPN', 'NOUN', 'ADP', 'NOUN', 'ADP', 'VERB', 'SCONJ', 'VERB', 'AUX', 'PUNCT']),
|
|
|
|
('吾輩は猫である。', ['PRON', 'ADP', 'NOUN', 'AUX', 'VERB', 'PUNCT']),
|
|
|
|
('月に代わって、お仕置きよ!', ['NOUN', 'ADP', 'VERB', 'SCONJ', 'PUNCT', 'NOUN', 'NOUN', 'PART', 'PUNCT']),
|
|
|
|
('すもももももももものうち', ['NOUN', 'ADP', 'NOUN', 'ADP', 'NOUN', 'ADP', 'NOUN'])
|
2018-05-03 19:38:26 +03:00
|
|
|
]
|
2018-11-27 03:09:36 +03:00
|
|
|
# fmt: on
|
2018-05-03 19:38:26 +03:00
|
|
|
|
2017-10-14 14:11:39 +03:00
|
|
|
|
2018-11-27 03:09:36 +03:00
|
|
|
@pytest.mark.parametrize("text,expected_tokens", TOKENIZER_TESTS)
|
2018-07-25 00:38:44 +03:00
|
|
|
def test_ja_tokenizer(ja_tokenizer, text, expected_tokens):
|
2017-10-14 14:11:39 +03:00
|
|
|
tokens = [token.text for token in ja_tokenizer(text)]
|
|
|
|
assert tokens == expected_tokens
|
2018-05-03 19:38:26 +03:00
|
|
|
|
2018-07-25 00:38:44 +03:00
|
|
|
|
2018-11-27 03:09:36 +03:00
|
|
|
@pytest.mark.parametrize("text,expected_tags", TAG_TESTS)
|
|
|
|
def test_ja_tokenizer_tags(ja_tokenizer, text, expected_tags):
|
2018-05-03 19:38:26 +03:00
|
|
|
tags = [token.tag_ for token in ja_tokenizer(text)]
|
|
|
|
assert tags == expected_tags
|
|
|
|
|
2018-07-25 00:38:44 +03:00
|
|
|
|
2018-11-27 03:09:36 +03:00
|
|
|
@pytest.mark.parametrize("text,expected_pos", POS_TESTS)
|
|
|
|
def test_ja_tokenizer_pos(ja_tokenizer, text, expected_pos):
|
2018-05-03 19:38:26 +03:00
|
|
|
pos = [token.pos_ for token in ja_tokenizer(text)]
|
|
|
|
assert pos == expected_pos
|