データサイエンティストにはなれなかった

システム屋さんの中でひっそりデータ活用について考えていくブログ

MeCabの辞書編集について

MeCabは以前にも紹介しました形態素解析エンジンです。MeCabを使うと文章を単語に切り分けることができます。

デフォルトの辞書でもそこそこ上手く行くのですが、

固有名詞やあまり一般的でない語句などは変な場所で切ってしまったり、単語と単語を切り離しすぎてしまう場合があります。

例えば、「データサイエンティスト」で抽出したいのに

データ  名詞,一般,*,*,*,*,データ,データ,データ
サイエンティスト        名詞,一般,*,*,*,*,サイエンティスト,サイエンティスト,サイエンティスト

の様に分かれて出てしまうなど。

 

そこで、辞書の編集が必要になります。

システム辞書とユーザー辞書があるのですが

今回はユーザー辞書の編集について説明します。

ウェブ上に同じことを説明している資料はたくさんあったのですが、

バージョンの違いなどからそのままでは上手くいかなかったので再編という感じです。

因みに私が使っているMeCabはWindows版、バージョンは0,996で

インストール先はC:\Program Filesです。

 

以下手順を書いていきます。

[1]ユーザー辞書を作成します。

デフォルトの設定ではMeCabの辞書は以下のディレクトリに置かれています。

C:\Program Files\MeCab\dic\ipadic

ここにuser.csvというファイルを作成します。

このファイルに下のフォーマットに従って単語を書きます。

「表層形,左文脈ID,右文脈ID,コスト,品詞,品詞細分類1,品詞細分類2,品詞細分類3,活用形,活用型,原形,読み,発音」

例えばこんな感じです。

データサイエンティスト,-1,-1,1000,名詞,一般,*,*,*,*,データサイエンティスト,データサイエンティスト,データサイエンティスト

 

表層形:文章の中に出てくる形です。

文脈ID、コスト:説明すると長くなるので割愛しますが

 とりあえず-1,-1,1000で書いておいて問題ないです。

品詞:下のリンク先の一番下の部分を参考に入力してください。

 http://mecab.googlecode.com/svn/trunk/mecab/doc/posid.html

活用:名詞などの場合は入力する必要はありませんが、

 動詞など活用がある場合はデフォルトのVerb.csvを参考に

 活用の情報も入力してください。

 

[2]コンパイルします。

辞書があるフォルダへ移動して

>cd C:\Program Files\MeCab\dic\ipadicコンパイルします。

>mecab-dict-index -f SHIFT-JIS -t SHIFT-JIS  -u user.dic user.csv

-f:コンパイル前のファイルの文字コード

-t:コンパイル後のユーザー辞書の文字コード

-u:コンパイル後のユーザー辞書のファイル名

 

done!が表示されれば成功です。

念のため編集した単語が上手く切れる様になっているか確認します。

>mecab -u user.dic
データサイエンティスト
データサイエンティスト  名詞,一般,*,*,*,*,データサイエンティスト,データサイエンティスト,データサイエンティスト

-u:使うユーザー辞書の指定

 

今度は「データサイエンティスト」で抽出できていますね。

 

[3]毎回ユーザー辞書を指定するのが面倒であれば、デフォルトで使う様に登録をします。

同じディレクトリにあるdicrcというファイルに

userdic=C:\Program Files\MeCab\dic\ipadic\user.dic

と、一行書き足します。

 

以上で辞書の編集は終了です。

 

 

(参考)MeCab/CabChaによる 言語解析演習

http://chasen.naist.jp/chaki/t/2008-09-09/doc/mecab-cabocha-nlp-seminar-enshu-2008.ppt