Daily programming #0032
言語処理100本ノック 2015の#30をやっていく。
第4章: 形態素解析の前提
夏目漱石の小説『吾輩は猫である』の文章(neko.txt)をMeCabを使って形態素解析し,その結果をneko.txt.mecabというファイルに保存せよ.このファイルを用いて,以下の問に対応するプログラムを実装せよ.
なお,問題37, 38, 39はmatplotlibもしくはGnuplotを用いるとよい.
このあたりの記述を参考にMeCab、およびmecab-ipadic-NEologdをインストールし、neko.txt.mecabを作成する。
neko.txt.mecabのサイズが大きいためglot.ioではそのまま実行できないため、第4章は実行結果を記載する方針とする。
30. 形態素解析結果の読み込み[Golang]
Question
形態素解析結果(neko.txt.mecab)を読み込むプログラムを実装せよ.ただし,各形態素は表層形(surface),基本形(base),品詞(pos),品詞細分類1(pos1)をキーとするマッピング型に格納し,1文を形態素(マッピング型)のリストとして表現せよ.第4章の残りの問題では,ここで作ったプログラムを活用せよ.
Code
Output
$ ./main ../neko.txt.mecab [map[surface:名前 base:名前 pos:名詞 pos1:一般] map[surface:は base:は pos:助詞 pos1:係助詞] map[surface:まだ base:まだ pos:副詞 pos1:助詞類接続] map[pos:形容詞 pos1:自立 surface:無い base:無い] map[pos:記号 pos1:句点 surface:。 base:。]]
例として名前はまだ無い
の形態素解析結果を出力した。
Comment
先人のコードを参考にした。
mecabが生成する形態素解析結果は以下の(原型=基本形)順になっている。1
表層形\t品詞,品詞細分類1,品詞細分類2,品詞細分類3,活用型,活用形,原形,読み,発音
これを分割してmapに格納した。