from knock30 import load_morphems_iter concatenation_of_nouns = set() count = 0 nouns = '' for m in load_morphems_iter(): if count and m['pos'] != '名詞': if count > 1: concatenation_of_nouns.add(nouns) count = 0 nouns = '' elif not count and m['pos'] == '名詞' or count: count += 1 nouns += m['surface'] if nouns: concatenation_of_nouns.add(nouns) print(concatenation_of_nouns) '''35. 名詞の連接 名詞の連接(連続して出現する名詞)を最長一致で抽出せよ.'''
from knock30 import load_morphems_iter gen1 = load_morphems_iter() gen2 = load_morphems_iter() gen3 = load_morphems_iter() next(gen2) next(gen3) next(gen3) a_no_b = set() for m1, m2, m3 in zip(gen1, gen2, gen3): if m1['pos'] == m3['pos'] == '名詞' and m2['surface'] == 'の': a_no_b.add(m1['surface'] + 'の' + m3['surface']) print(a_no_b) '''34. 「AのB」 2つの名詞が「の」で連結されている名詞句を抽出せよ.'''