mecabにwikipediaとhatenaキーワードのユーザ辞書を適用する(ついでに、辞書にない場合はそれもわかるようにするオプション付き)
mecabのインストール
$ brew install mecab $ brew install mecab-ipadic
wikipediaとhatenaのキーワードファイルの取得
$ curl -L http://d.hatena.ne.jp/images/keyword/keywordlist_furigana.csv | iconv -f euc-jp -t utf-8 > keywordlist_furigana.csv $ curl -L http://dumps.wikimedia.org/jawiki/latest/jawiki-latest-all-titles-in-ns0.gz | gunzip > jawiki-latest-all-titles-in-ns0
辞書作成コードを用意する(make_dict.rb)
$ ruby make_dict.rb
辞書を作成する
$ /usr/local/Cellar/mecab/0.996/libexec/mecab/mecab-dict-index -d /usr/local/Cellar/mecab/0.996/lib/mecab/dic/ipadic -u onomasticon.dic -f utf-8 -t utf-8 onomasticon.csv
試してみる
作成したユーザ辞書を -u
で指定すると、有効になる。ちなみに、 --unk-feature
を指定すると、判定できなかった言葉に対して指定した文言を割り付けることができる
$ echo 'レーベンシュタイン距離' | mecab --unk-feature "未知語" レーベンシュタイン 未知語 距離 名詞,一般,*,*,*,*,距離,キョリ,キョリ EOS $ echo 'レーベンシュタイン距離' | mecab -u onomasticon.dic --unk-feature "未知語" レーベンシュタイン距離 名詞,一般,*,*,*,*,レーベンシュタイン距離,*,*,wikipedia EOS
前者では レーベンシュタイン
を未知語として判定しているのに対し、後者では レーベンシュタイン距離
で一語として判定していて、かつwikipediaに登録されているデータということもわかる。