豊満な脳みそ←わがままブレーン

ただただ、暗号文をつくりたいがため・・・・・・ 専用の復号プログラムとパスナンバーが9つあれば読めるブログ。さもなければ、ある程度正確に暗号化の仕組みを理解したうえで、総当たり(brute attack)で最大約6,631,300,125,000,000通りの試行が解読に必要です。

100本ノック 第59問目

第6章もとても勉強になった。

 

言語処理100本ノック 2015 の59問目

 

59. S式の解析

Stanford Core NLP句構造解析の結果(S式)を読み込み,文中のすべての名詞句(NP)を表示せよ.入れ子になっている名詞句もすべて表示すること.

 

答:

「S式」とはもちろん以下のような文法樹のことであろう。

(ROOT (S (PP (IN As) (NP (JJ such))) (, ,) (NP (NN NLP)) (VP (VBZ is) (ADJP (VBN related) (PP (TO to) (NP (NP (DT the) (NN area)) (PP (IN of) (NP (JJ humani-computer) (NN interaction))))))) (. .)))

ここからNPを全て、そしてNPだけを英語の形で抜き出すのである。「(NP」を開始条件にして、カッコ左「(」の数とカッコ右「)」の数が一致する(最小の)範囲の文字列をS式からピックアップする。それを元に正規表現のパターンを使って整形すると良いわけだ。

 

f:id:DWJEqxs2G0:20170923021615p:plain

 

出力は図ったように500個になった。ちなみに、課題ファイルの文の数は50個である。ただし、「.」が文と判断されており、NPとカウントされてもいる。(つまり、おかしな判定が存在する。)

以下は出力の一部である。

f:id:DWJEqxs2G0:20170923002936p:plain

 

作業中のBGMは細野晴臣の「Omni Sight Seeing」。変なアルバムだけど、異様に美しい。