EnsekiTT Blog

EnsekiTTが書くブログです。

ツイッタラーの日本語に対してマシな結果が出るかと思ってJUMAN++を試したら興味深い違いが出た話

つまりなにしたの?

先日やったツイッタラーのツイートからエンジニア:非エンジニアを分類する要素は何なのか決定木に判別してもらう。のMeCabによる形態素解析だとツイッタラーの度し難い日本語に歯が立たなかったのでJUMAN++に切り替えてやってみた。
こないだまでの記事はこちら
ensekitt.hatenablog.com
ensekitt.hatenablog.com

f:id:ensekitt:20171013000633j:plain


*1

JUMAN++について

JUMAN++をMacOSで使うための準備はこちら
ensekitt.hatenablog.com

早速結果

結果に対して:決定木が乱数に依存していることから単純に比較は出来ないけど一応両方の結果を載せておく。
複雑になっても困るので3層程度にしておいた。

JUMAN++を使った場合の決定木

f:id:ensekitt:20171013022754p:plain
確かにエンジニアって「便利だ」とか言ってるイメージ。

MeCabを使った場合の決定木

f:id:ensekitt:20171013023150p:plain
恋人について言及していないほうがエンジニアって残酷すぎませんかね。
ensekitt.hatenablog.com
のコードをそのまま使った。

比べてみて

これは狙ったわけじゃないけど、JUMAN++側で「便利だ」がトップに出たのはちょっと面白いと思ってる。
何故かと言うと、MeCabだと「便利」と「だ」の名詞と助動詞に分解されるが、JUMAN++は「便利だ」で一つの形容詞として扱っている。
この違いが出た上でGini係数最大の単語になってくれたのは今回の実験としてはかなり嬉しい結果だった。

% mecab                                                [~]
6億口座に振り込まれるの便利だ。
6	名詞,数,*,*,*,*,*
億	名詞,数,*,*,*,*,億,オク,オク
口座	名詞,一般,*,*,*,*,口座,コウザ,コーザ
に	助詞,格助詞,一般,*,*,*,に,ニ,ニ
振り込ま	動詞,自立,*,*,五段・マ行,未然形,振り込む,フリコマ,フリコマ
れる	動詞,接尾,*,*,一段,基本形,れる,レル,レル
の	助詞,連体化,*,*,*,*,の,ノ,ノ
便利	名詞,形容動詞語幹,*,*,*,*,便利,ベンリ,ベンリ
だ	助動詞,*,*,*,特殊・ダ,基本形,だ,ダ,ダ
。	記号,句点,*,*,*,*,。,。,。
EOS
% jumanpp                                              [~]
6億口座に振り込まれるの便利だ。
6億 6億 6億 名詞 6 数詞 7 * 0 * 0 "カテゴリ:数量"
口座 こうざ 口座 名詞 6 普通名詞 1 * 0 * 0 "代表表記:口座/こうざ カテゴリ:人工物-金銭 ドメイン:ビジネス"
に に に 助詞 9 格助詞 1 * 0 * 0 NIL
振り込ま ふりこま 振り込む 動詞 2 * 0 子音動詞マ行 9 未然形 3 "代表表記:振り込む/ふりこむ ドメイン:ビジネス"
れる れる れる 接尾辞 14 動詞性接尾辞 7 母音動詞 1 基本形 2 "代表表記:れる/れる"
の の のだ 助動詞 5 * 0 ナ形容詞 21 語幹 1 NIL
便利だ べんりだ 便利だ 形容詞 3 * 0 ナ形容詞 21 基本形 2 "代表表記:便利だ/べんりだ 反義:形容詞:不便だ/ふべんだ"
。 。 。 特殊 1 句点 1 * 0 * 0 NIL
EOS

ただ、JUMAN++はちょっと不安定と言うか中でShellを叩きまくってるので標準出力のFlushで止まることがあって色々工夫がされている。
JUMAN++のインスタンスを都度生成したり、含まれるとエラーが出る文字も違うみたいなのでストップ文字も増やしたりしている。
工夫の部分が切り出せるように工夫前・工夫後でGISTにアップしたけどJupyter Notebookの文字列でちょっと見にくくなった。
Revisions · http://ensekitt.hatenablog.com/entry/tree2 はMeCabでやったのでJUMAN++でもやってみようと思ったコード。 · GitHub

まとめ

ただ一発の施行とはいえ、実装していく中で形態素解析後の文字列を眺めていると、形態素に詳しくはないけど比較的しっくり来る分解をしてくれるのはJUMAN++だなという感想をもった。
先日のブログを共有してくださった方も言ってたけど、Twitterは日本語として解析するにはスラングが多すぎる。