def test_no_verbs_in_sentence(self): chunk0 = Chunk([Morph(surface='名前', base='名前', pos='名詞', pos1='一般'), Morph(surface='は', base='は', pos='助詞', pos1='係助詞')], dst=1) chunk1 = Chunk([Morph(surface='無い', base='無い', pos='形容詞', pos1='自立')], dst=-1, srcs=[0]) sentence = [chunk0, chunk1] case_patterns = extract_case_patterns(sentence) self.assertEqual(case_patterns, [])
def test_one_verb_one_particle_in_sentence(self): chunk0 = Chunk([Morph(surface='もの', base='もの', pos='名詞', pos1='非自立'), Morph(surface='を', base='を', pos='助詞', pos1='格助詞')], dst=1) chunk1 = Chunk([Morph(surface='見た', base='見る', pos='動詞', pos1='自立'), Morph(surface='た', base='た', pos='助動詞', pos1='*')], dst=-1, srcs=[0]) sentence = [chunk0, chunk1] case_patterns = extract_case_patterns(sentence) self.assertEqual(case_patterns, ['見る\tを'])
def test_no_verbs_in_sentence(self): chunk0 = Chunk([ Morph(surface='名前', base='名前', pos='名詞', pos1='一般'), Morph(surface='は', base='は', pos='助詞', pos1='係助詞') ], dst=1) chunk1 = Chunk([Morph(surface='無い', base='無い', pos='形容詞', pos1='自立')], dst=-1, srcs=[0]) sentence = [chunk0, chunk1] case_patterns = extract_case_patterns(sentence) self.assertEqual(case_patterns, [])
def test_one_verb_one_particle_in_sentence(self): chunk0 = Chunk([ Morph(surface='もの', base='もの', pos='名詞', pos1='非自立'), Morph(surface='を', base='を', pos='助詞', pos1='格助詞') ], dst=1) chunk1 = Chunk([ Morph(surface='見た', base='見る', pos='動詞', pos1='自立'), Morph(surface='た', base='た', pos='助動詞', pos1='*') ], dst=-1, srcs=[0]) sentence = [chunk0, chunk1] case_patterns = extract_case_patterns(sentence) self.assertEqual(case_patterns, ['見る\tを'])
def test_two_case_patterns_in_sentence(self): chunk0 = Chunk([Morph(surface='我輩', base='我輩', pos='名詞', pos1='代名詞'), Morph(surface='は', base='は', pos='助詞', pos1='係助詞')], dst=5) chunk1 = Chunk([Morph(surface='ここ', base='ここ', pos='名詞', pos1='代名詞'), Morph(surface='で', base='で', pos='助詞', pos1='格助詞')], dst=2) chunk2 = Chunk([Morph(surface='始め', base='始める', pos='動詞', pos1='自立'), Morph(surface='て', base='て', pos='助詞', pos1='接続助詞')], dst=3, srcs=[1]) chunk3 = Chunk([Morph(surface='人間', base='人間', pos='名詞', pos1='一般'), Morph(surface='という', base='という', pos='助詞', pos1='格助詞')], dst=4, srcs=[2]) chunk4 = Chunk([Morph(surface='もの', base='もの', pos='名詞', pos1='非自立'), Morph(surface='を', base='を', pos='助詞', pos1='格助詞')], dst=5, srcs=[3]) chunk5 = Chunk([Morph(surface='見た', base='見る', pos='動詞', pos1='自立'), Morph(surface='た', base='た', pos='助動詞', pos1='*')], dst=-1, srcs=[0, 4]) sentence = [chunk0, chunk1, chunk2, chunk3, chunk4, chunk5] case_patterns = extract_case_patterns(sentence) self.assertEqual(case_patterns, ['始める\tで', '見る\tは を'])
def test_two_case_patterns_in_sentence(self): chunk0 = Chunk([ Morph(surface='我輩', base='我輩', pos='名詞', pos1='代名詞'), Morph(surface='は', base='は', pos='助詞', pos1='係助詞') ], dst=5) chunk1 = Chunk([ Morph(surface='ここ', base='ここ', pos='名詞', pos1='代名詞'), Morph(surface='で', base='で', pos='助詞', pos1='格助詞') ], dst=2) chunk2 = Chunk([ Morph(surface='始め', base='始める', pos='動詞', pos1='自立'), Morph(surface='て', base='て', pos='助詞', pos1='接続助詞') ], dst=3, srcs=[1]) chunk3 = Chunk([ Morph(surface='人間', base='人間', pos='名詞', pos1='一般'), Morph(surface='という', base='という', pos='助詞', pos1='格助詞') ], dst=4, srcs=[2]) chunk4 = Chunk([ Morph(surface='もの', base='もの', pos='名詞', pos1='非自立'), Morph(surface='を', base='を', pos='助詞', pos1='格助詞') ], dst=5, srcs=[3]) chunk5 = Chunk([ Morph(surface='見た', base='見る', pos='動詞', pos1='自立'), Morph(surface='た', base='た', pos='助動詞', pos1='*') ], dst=-1, srcs=[0, 4]) sentence = [chunk0, chunk1, chunk2, chunk3, chunk4, chunk5] case_patterns = extract_case_patterns(sentence) self.assertEqual(case_patterns, ['始める\tで', '見る\tは を'])
def main(): sentences = read_and_make_chunks() for sentence in sentences: case_patterns = extract_case_patterns(sentence) if case_patterns: print('\n'.join(case_patterns))