すでに前回 Wikipedia とはてなキーワードからユーザー辞書を生成する話を書きましたから、基本的にはこの内容を真似れば良いです。今回は補足という意味で簡単な例を手順として掲載しておきます。
MeCab 辞書への単語追加方法としては二つの方法があります。
- システム辞書への追加
- ユーザ辞書への追加
システム辞書はあまり変更したくないので、基本的にユーザー辞書を作成し、これに用語を登録していく形で運用します。
CSV ファイルに用語を書き加えていく
次のように 1 行 1 単語として独自用語を書き加えていきます。
On-PreSt
Dr.Cowbell
Ruby で語彙の長さを計算し辞書のソースを作る
前回利用した Ruby スクリプトをそのまま流用すれば良いでしょう。これは単語の長さから自動的に重みを計算してくれます。
require 'csv'
original_data = {
'my.csv'
}
CSV.open("custom.csv", 'w') do |csv|
original_data.each do |type, filename|
next unless File.file? filename
open(filename).each do |title|
title.strip!
next if title =~ %r(^[+-.$()?*/&%!"'_,]+)
next if title =~ /^[-.0-9]+$/
next if title =~ /_\(/
title_length = title.length
if title_length > 3
score = [-36000.0, -400 * (title_length ** 1.5)].max.to_i
csv << [title, nil, nil, score, '名詞', '一般', '*', '*', '*', '*', title, '*', '*', type]
end
end
end
end
他の IT 系キーワードもあわせて利用したいなら、前回のスクリプトに my.csv のみ追加すれば良いかと思います。
辞書のソースから MeCab ユーザー辞書を生成する
生成された custom.csv を見ると次のように行ができているかと思います。
On-PreSt,,,-9050,名詞,一般,*,*,*,*,On-PreSt,*,*,custom
Dr.Cowbell,,,-12649,名詞,一般,*,*,*,*,Dr.Cowbell,*,*,custom
これを元にユーザー辞書を生成します。
/usr/local/libexec/mecab/mecab-dict-index -d /usr/local/lib/mecab/dic/ipadic -u custom.dic -f utf-8 -t utf-8 custom.csv
#=> reading custom.csv ... 1191420
# emitting double-array: 100% |###########################################|
#=> done!
あとはこのユーザー辞書を使えば企業独自の用語なども正確に解析することができるようになります。