2018年1月4日木曜日

KH Coderで新語に対応するためにmecab-ipadic-NEologdを使う

KH Coderでテキストマイニングをするで書いたように、フリーソフトウェアのKH Coderを使ってテキストマイニングができる。テキストマイニングでは形態素解析という、文章を名詞や形容詞などを品詞単位に分解する行程が必要になる。KH Coderでは形態素解析エンジンとしてChaSenかMeCabを選べるが、どちらでもデフォルトの辞書では最近登場した言葉には対応できない。そこで、MeCabのデフォルト辞書の代わりにmecab-ipadic-NEologdを使う。この辞書はWEBサイトをクロールして定期的に新語を追加しているので、最近の言葉にも対応できる。ここではWindows版KH CoderでMeCabの辞書をmecab-ipadic-NEologdに変更する手順をまとめておく。

※この投稿よりも簡略化した手順はこちら(2018/10/17追記)。
もう少し簡単にKH Coderで新語に対応するためにmecab-ipadic-NEologdを使う


環境


Windows10
Windows版 KH Coder Version 3.Alpha.11a
Bash on Ubuntu on Windows(mecab-ipadic-NEologdの作成に使用)



mecab-ipadic-NEologdの作成


mecab-ipadic-NEologdはLinux環境でしか作成できないので、今回はWindows10のBash on Ubuntu on Windowsで作成する。その手順はmecab-ipadic-NEologdで形態素解析を新語に対応させるを参照。

辞書ファイルは/usr/local/lib/mecab/dic/mecab-ipadic-neologdに作成される。mecab-ipadic-neologdディレクトリごとKH CoderがインストールされたWindows環境にコピーしておく。コピーする方法はいくつかあるが、Bash on Ubuntu on WindowsにSSHでアクセスできるようにするにあるようにSSHでアクセスできる状態なら、WinSCPなどでSCP接続してコピーできる。


KH Coderのインストール


KH CoderのダウンロードページからKH Coder3のWindows版をダウンロードする。インストールは、ダウンロードしたファイルをKH CoderをインストールするWindows環境で実行し、開いたポップアップ画面で「unzip」をクリックすると「C:\khcoder3」にファイルが解凍される。kh_coder.exeを実行するとKH Coderが起動する。


MeCabのインストールと動作確認


KH CoderをインストールするとMeCabもいっしょにインストールされるが、別途MeCabをインストールする。まずはMeCab: Yet Another Part-of-Speech and Morphological AnalyzerからBinary package for MS-Windowsをダウンロードする。ダウンロードしたファイルを実行して以下の文字コードを選択する画面で「UTF-8」を選択する。MeCabはC:\Program FilesMeCabにインストールされる。

KH Coderで使うのに必須ではないが、動作確認のためにコマンドラインで使えるようにパスを通しておく。コマンドプロンプトで以下のコマンドを実行。


MeCabの辞書情報を確認。


動作確認のため、テスト用のテキストファイルを作成する。notepadを開いて「東京特許許可局」と入力し、UTF-8でtest.txtというファイルに保存する(MeCabの辞書をUTF-8でインストールしているので、コマンドプロンプトでの入力だと文字化けしてしまう)。


MeCabを実行して形態素解析してみる。結果はout.txtに保存。


結果は以下の通り。



MeCab辞書をmecab-ipadic-NEologdに変更する


デフォルトで「東京特許許可局」はちゃんと形態素解析できているのだが、お決まりの早口言葉なので「東京特許許可局」として認識してほしい。そこで、MeCabの辞書をmecab-ipadic-NEologdに変更する。

まずは、Bash on Ubuntu on Windowsで作成したmecab-ipadic-neologdをディレクトリごとC:\Program Files\MeCab\dicにコピーする。

続いてMeCabの辞書設定を変更する。C:\Program Files\MeCab\etc\mecabrcをデスクトップなどの他の場所にいったんコピーする(元の場所のままだとファイルの変更ができない)。コピーしたmecabrcをテキストエディタで開いて、dicdirを以下のようにmecab-ipadic-neologdのフォルダに変更してファイルを更新。

dicdir = $(rcpath)..\dic\ipadic

dicdir = $(rcpath)..\dic\mecab-ipadic-neologd

mecabrcを元の場所に上書きコピーして、MeCabの辞書設定を確認。辞書がmecab-ipadic-NEologdに変わっている。


再度、形態素解析してみる。


以下のように「東京特許許可局」が分割されずにひとつの語として認識された。



KH Coderの設定


KH CoderでインストールしたMeCabを使えるようにする。メニューの[プロジェクト]-[設定]を開く。

「mecab.exeのパス」をインストールしたMeCabのパス「C:\Program Files\MeCab\bin\mecab.exe」に変更し、「Unicode辞書」にチェックをつける。


mecab-ipadic-NEologdの効果


MeCabの辞書をデフォルトのIPA辞書からmecab-ipadic-NEologdに変更した効果を確認してみる。使うのはRaspberry PiのPython3でMecabを使うのはじめの段落の文章。この文章をテキストファイルに保存してKH Coderで取り込んで抽出語リストを作成する。

プロジェクトの新規作成で保存したテキストファイルを参照するとき、デフォルトの形態素解析エンジンはChaSenなのでMeCabに変更する。

続いて前処理を行う。

前処理が完了したら、抽出語リスト(頻出150語)のExcelファイルを作成する。

以下のような頻出150語の抽出語リストが得られる。

以下はデフォルト辞書での結果。MeCabの辞書をmecab-ipadic-NEologdに変更して「テキストマイニング」「形態素解析」がひとつの語として抽出できるようになった。

ただ、mecab-ipadic-NEologdで形態素解析を新語に対応させるではmecab-ipadic-NEologdで「Raspberry Pi」もひとつの語として抽出できていたがKH Coderではできていない。もしかしたら英語だからかもしれない。

0 件のコメント:

コメントを投稿