PythonとMeCabさんで遊びます。
少し前から触れ始めたPythonで遊んで、MeCabを使ってみたのでメモを。
Mac OS XにMeCabをインストールするところから。
以下の記事を参考にさせていただきました。
大切なものは目に見えない - mahataの日記
とりあえず、サンプルコードを動かしてみる。
import sys import MeCab m = MeCab.Tagger ("-Ochasen") print m.parse ("今日もしないとね")
今日 コンニチ 今日 名詞-副詞可能 も モ も 助詞-係助詞 し シ する 動詞-自立 サ変・スル 未然形 ない ナイ ない 助動詞 特殊・ナイ 基本形 と ト と 助詞-接続助詞 ね ネ ね 助詞-終助詞 EOS
無事、解析されましたとさ!
人工知能に関する断想録
こちらの記事で、mecab-pythonの使い方について色々書かれてました。
見つつ「銀河鉄道の夜」にでてくる名詞の数を数えてみました。
# coding: utf-8 # vim: fileencoding=utf-8 import MeCab import codecs def getNoun(text): tagger=MeCab.Tagger("-Ochasen") node=tagger.parseToNode(text.encode('utf-8')) nouns={} while node: noun=node.feature.split(",")[0] if noun==r'名詞': nouns.setdefault(node.surface,0) nouns[node.surface]+=1 node=node.next return nouns text=codecs.open('gingatetsudono_yoru.txt','r','shift_jis').read() nouns=getNoun(text) for k,v in sorted(nouns.items(),key=lambda x:x[1]): if v>40: print k,v
どこ 43 ほんとう 45 鳥 45 何 46 一 47 二 53 たち 53 みんな 54 中 56 それ 58 ぼく 59 方 67 カムパネルラ 101 人 102 ん 102 ジョバンニ 190 の 208 よう 209
ノイズが結構ありますね。
文字列の比較に手惑いました。
u"名詞" と書くと
UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
と怒られてしまう。
r"名詞" と、raw文字列とかいうものに指定してあげると上手くいきました。
本日はここまで、おやすみなさい。