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

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

100本ノック 第53問目

言語処理100本ノック 2015 の49問目を終えて、これで半分まできた。一休みに英語の構文解析係り受け解析のソフトはないかとあれこれ調べ、いくつか試してみてこりゃ面白いと唸っていた。そのまま興味の矛先が100本ノックに戻り、50問目以降はどうなっていると開いてみればあらステキ!50〜59問目が英語の構文解析の問題になっている!自然な思考・関心の流れに沿って問題が進むよう設計されているのは流石。

 

第53問目は以下に参照するサイトで勉強しながら行った。

 

問:

Stanford Core NLPを用い,入力テキストの解析結果をXML形式で得よ.
また,このXMLファイルを読み込み,入力テキストを1行1単語の形式で出力せよ.

 

答:

前提1 Stanford Core NLPをパソコンに入れる。

前提2 nlp.txtを言語処理100本ノック 2015 のサイトから落としておく。

前提3 正直これは弱い前提だが、50〜52問目を解いておく。

1.以下のURLを参照する
https://stanfordnlp.github.io/CoreNLP/cmdline.html

2.ここのQuick Startにあるコマンドラインを加工して以下を作る:
java -cp "*" -Xmx2g edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators tokenize,ssplit,pos,lemma,ner,parse,dcoref -file nlp.txt

3.stanford coreNLPのあるディレクトリ(/usr/local/lib/stanford-corenlp-full-2013-06-20)に移動する。
nlp.txtもこのディレクトリに移動させる。

4.上記のコマンドラインを入力して実行する。すると、当該のディレクトリにnlp.txt.xmlファイルを得る。

5.4のファイルを「100本ノック」のフォルダに移動させたりさせなかったりした上で、
以下のスクリプトを実行する。
(参照URL: https://docs.python.jp/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.XMLPullParser)

 

f:id:DWJEqxs2G0:20170918231124p:plain

 

(実行結果の一部)

f:id:DWJEqxs2G0:20170918231236p:plain