GoogleコラボラトリーでMeCab触ってみた

ちいたべあです。

いつか早押しクイズの問題文の自動生成をするAIを作りたいなあって妄想しているので、ちょっとづつ勉強していきます。

できたこと

形態素解析ソフトMeCabがとりあえず動いた。
分かち書きと、リスト化もできた。

手順

インストール

nishipy.com

このサイトを参考にしました。

形態素解析させてみる

qiita.com

このサイトにある以下のコードを実行。

m = MeCab.Tagger ("mecabrc")
print(m.parse ("すもももももももものうち"))

すると、

すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも 名詞,一般,*,*,*,*,もも,モモ,モモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも 名詞,一般,*,*,*,*,もも,モモ,モモ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
EOS

という結果が帰ってきました。
なるほど。

分かち書き

printで出力してるので、上の分析結果はただの文字列。
機械学習にかけるには分かち書きというものが必要らしい。

コードのmecabrcの部分を-Owakatiに変えると、分かち書きで出力できるそうです。

m = MeCab.Tagger ("-Owakati")
print(m.parse ("すもももももももものうち"))

すると

すもも も もも も もも の うち

区切りにスペースが入ったものが出てきました。

  • Ochasenというのもあった。

chasenという別の形態素解析ソフトの形式で出力されると理解。

m = MeCab.Tagger ("-Ochasen")
print(m.parse ("すもももももももものうち"))

これで

すもも スモモ すもも 名詞-一般
も モ も 助詞-係助詞
もも モモ もも 名詞-一般
も モ も 助詞-係助詞
もも モモ もも 名詞-一般
の ノ の 助詞-連体化
うち ウチ うち 名詞-非自立-副詞可能
EOS

こう。さっきのmecabrcとちょっと違う。

別の実行コード

%%bash
mecab
すもももももももものうち

これでもいけた。
%%bashは、いまからシェルスクリプトで指示出しますよ〜という合図??

リスト化

qiita.com

最後にリスト化。
よく分からんけど、とりあえずこんなことができるんやな、という。

今後の勉強

この本で進めていくよ。