単語ngramして頻出順に並べる&グラフにする
前回、暇つぶしとしてpythonを使ってある文書の文字単位でngramで切り取りそれを頻出度順に並べたのですが、今回は単語レベルで行いました。単語の切り取りに関しては英語はスペースなどを区切りに、日本語はMeCabを使って行いました。
MeCabと辞書のインストール
mecabと辞書は適当にパッケージからインストールなどすればいいのですが、pythonからmecabへアクセスするバインディングはver2までしか対応していないとのことでしたが、検索するとpython3用のラッパーを公開している方がいたので素直に使わせていただきました。こちらはpipでインストールできます。
python3対応 Mecabの紹介 - Python, web, Algorithm 技術的なメモ
sudo apt-get install mecab mecab-ipadic-utf8 pip3 install mecab-python3
プログラムは以下のような感じで、カウントしたくない単語リストをstop.txtとして用意しました。
英語の文書、日本語の文書それぞれ結果は以下のような感じでした。TF-IDFなどの工夫があれば、もうすこしマシになったかもしれません。ちなみに使った文書はwikipediaの記事です。