2009/08/30

MeCabと辞書のインストールメモ

Mac OS Xで。辞書は、naist-jdilc, はてなキーワード、Wikipediaのタイトルのを使います。

MeCabをtar ballからインストールする。ここからダウンロードする。http://sourceforge.net/projects/mecab/files/
<<<
tar zxvf mecab-0.98pre3.tar.gz
cd mecab-0.98pre3
../configure
make
sudo make install
>>>

辞書 naist-jdic を入れる。
<<<
curl -O http://iij.dl.sourceforge.jp/naist-jdic/40865/mecab-naist-jdic-0.6.1-20090630.tar.gz
tar zxvf mecab-naist-jdic-0.6.1-20090630.tar.gz
cd mecab-naist-jdic-0.6.1-20090630
../configure --with-charset=utf8
make
sudo make
sudo make install
>>>

辞書を設定する。
<<<
sudo jed /usr/local/etc/mecabrc
dicdir = /usr/local/lib/mecab/dic/naist-jdic/
>>>

はてなキーワードを入手する。
<<<
wget http://d.hatena.ne.jp/images/keyword/keywordlist_furigana.csv -O hatena.txt
emacs createDict.py
>>>

http://deepneko.dyndns.org/kokotech/2009/06/mecabwikipedia.html より引用。ありがとうございます。
<<<
import sys
import re

year = re.compile("[0-9]{4}")

ng = [chr(i) for i in range(0,32)]

def main():
for x in sys.stdin:
if re.search(year,x):
continue
k = x.split("\t")[1].strip()
if len(k) < 2:
continue
for word in ng:
if word in k:
continue
k = k.lower()
cost = int(max(-36000, -400 * len(k)**1.5))
print "%s,0,0,%s,名詞,一般,*,*,*,*,%s,*,*,はてなキーワード," % (k,cost,k)
if __name__ == '__main__':
main()
>>>

はてなキーワードから辞書を作る。
<<<
nkf -Ew hatena.txt | python createDict.py | nkf -e > hatenakeyword.csv
userdic = /Users/itoshi/Sources/dict/hatenakeyword.dic,/Users/itoshi/Sources/dict/jawikipedia.dic
/usr/local/libexec/mecab/mecab-dict-index -d /usr/local/lib/mecab/dic/naist-jdic -u /Users/itoshi/Sources/dict/hatenakeyword.dic -f utf-8 -t utf-8 hatenakeyword.csv
>>>

日本語の Wikipedia のタイトルをゲットする。
<<<
wget http://download.wikimedia.org/jawiki/latest/jawiki-latest-all-titles-in-ns0.gz
gunzip jawiki-latest-all-titles-in-ns0.gz
emacs -nw makedic.rb
>>>

http://neta.pg-feed.com/data/frame_292734.html より引用。ありがとうございます。
<<<
#!/usr/bin/ruby

open($*[0]).each do |line|
title = line.strip

next if title =~ /^\./
next if title =~ /[0-9]{4}/
next if title =~ /^[-.0-9]+$/

score = [-36000.0 ,-400 *(title.size**1.5)].max.to_i
print "#{title},0,0,#{score},名詞,一般,*,*,*,*,#{title},*,*,wikipedia_keyword,\n" if title.size > 9
end
>>>

Wikipedia のタイトルを mecab 辞書へ変換する。
<<<
chmod +x makedic.rb
../makedic.rb jawiki-latest-all-titles-in-ns0 > jawikipedia.csv
/usr/local/libexec/mecab/mecab-dict-index -d /usr/local/lib/mecab/dic/naist-jdic -u /Users/itoshi/Sources/dict/jawikipedia.dic -f utf-8 -t utf-8 jawikipedia.csv
>>>