自然言語処理100本ノック2020から逃げるな「33. 「AのB」」

これは自然言語処理100本ノック2020に挑んだ、とある人間の記録
他の問題はこちら → 自然言語処理100本ノック2020から逃げるな まとめ

33. 「AのB」

2つの名詞が「の」で連結されている名詞句を抽出せよ.

Pythonコード

import re
import NLP100_30

sentence_list = NLP100_30.get_morpheme()

for morpheme_list in sentence_list:
    for i in range(1, len(morpheme_list) - 1):
        prev = morpheme_list[i-1]
        now = morpheme_list[i]
        mnext = morpheme_list[i+1]
        if now['surface'] == 'の':
            if prev['pos'] == '名詞' and mnext['pos'] == '名詞':
                print(prev['surface'] + now['surface'] + mnext['surface'])

30. 形態素解析結果の読み込み で作成したget_morpheme関数を利用しています。

実行結果

長いので冒頭のみ。

彼の掌
掌の上
書生の顔
はずの顔
顔の真中
穴の中
書生の掌
掌の裏
何の事
肝心の母親
藁の上
笹原の中
池の前
池の上
一樹の蔭
垣根の穴
隣家の三
時の通路
一刻の猶予