MeCabの辞書にWikipediaの単語を登録してみる

自然言語処理MeCab

前の記事で、MeCabの辞書に自分の好きな単語を登録して、解析の精度を上げるというようなことをしました。今回は、Wikipedia(以降 うぃきさん)で公開されている膨大な記事のタイトルを、名詞と言い張り、これを辞書に登録することで、精度向上に挑戦してみます。


OS : Ubuntu14.04 LTE版
MeCab : ver0.996



1. wikipediaのオープンデータからタイトル一覧を入手
兎にも角にも、登録するためのデータが無くては何もできません。今回は、うぃきさんの記事タイトルということで、うぃきさんが公開している全記事のタイトル一覧のテキストファイルを貰ってきます。
テキストのおき場所はこちら(他にも色々なオープンデータがあるみたい)です。ここのページから「jawiki-latest-all-titles-in-ns0.gz」というファイルをダウンロードしてください。公式のオープンデータなので、常に最新の情報が登録されているそうです。
ちなみに、うぃきさんは記事に対するクローリングを明確に拒否しているらしいので、やっちゃだめですよ。

2. タイトル一覧からMeCab辞書用のCSVを作成
ダウンロードしたファイルを解凍すると、「jawiki-latest-all-titles-in-ns0」というテキストファイルが出てきます(このファイルはものすごく大きいので、catコマンドとかで見るとグワーってなるので注意)。
実際にこのファイルを見ると分かるのですが、「(曖昧さ回避)」や「~一覧」といったうぃきさん独特のタイトルも登録されている事が分かります。また、タイトル内のスペースはアンダーバーになっているようです。
なので、これらに対策を討ちつつ、csvファイルに整形していきます。
ほとんど参考元サイトさんのプログラムのままですが、そのままでは、エラーを吐いて動かなかったため、訂正したものを載せておきます。

コードを読んでもらえれば分かるかと思いますが、タイトル一覧から、西暦っぽいもの(4桁の数字)、文頭が記号のもの、括弧を含んでいるもの、一文字のもの、「,」「_」「一覧」を含んでいるものを削除した上で、残ったものをcsvに出力しています。
ちなみに、Pythonのバージョンは2.7です。また、実行コマンドは以下のようになります。

3. 辞書のコンパイル
さて、仕上げに参りましょう。あとは、コンパイルして設定ファイルに参照するだけ。この後は前の記事と全く同じなので、簡単に書きます。
まずは、コンパイル用のコマンド

そして、編集する設定ファイル(/etc/mecabrc)の編集です。

これにて、終わりです。
お疲れ様でした。


人工知能に関する断創録

2016-08-16自然言語処理MeCab