YamChaとかMeCabとか使って顔文字抽出
概要
Ruby,YamCha,MeCabで顔文字抽出を作りました。前に情報特別演習(筑波大学の実践的な授業)でやっていたものより精度が良かったので、こっちを先に公開します。先に言っておくと、残念ながら私のオリジナルではありません。
精度とか
私が勢い良く書いた10分割交差検定が正しければ、8割から9割くらいの精度が出ています。Twitterのsample streamから取得したデータにタグ付けを施したものだけを、教師データとして使っているため、偏りがあるかもしれません。
素性
素性は「さよならー(^_^)/~」を例に取ると、こんなかんじ。
さ 感動詞 __nil__ __nil__ B よ 感動詞 __nil__ __nil__ I な 感動詞 __nil__ __nil__ I ら 感動詞 __nil__ __nil__ E ー 名詞 一般 __nil__ S ( 名詞 サ変接続 __nil__ B ^ 名詞 サ変接続 __nil__ I _ 名詞 サ変接続 __nil__ I ^ 名詞 サ変接続 __nil__ I ) 名詞 サ変接続 __nil__ I / 名詞 サ変接続 __nil__ I ~ 名詞 サ変接続 __nil__ E
各文字、MeCabが出した品詞と、各文字が、その単語の何処の位置に来るかをBIESタグで表したものが素性。BIESタグは、例えば「さよなら」は一単語なので、「さ」はB, 「よ」「な」はI、「ら」はEとなる。例文中には出てこないが、一文字で一単語となる場合はSタグが付与される。
使い方
YamCha, MeCab (IPAdic)、Rubyをインストールしたら、以下のコマンドで抽出できる。
$ ./emext
入力
こんにちは(*^_^*)
出力
こんにちは<em>(*^_^*)</em>
ファイルを入れる
$ ./emext hoge.txt
ダウンロード
参考文献など、詳細はこちらに書いておきましたわ。
http://www.haroperi.info/emoticon/emext.html