centos mecab に wikipedia はてなキーワード 辞書登録

2014年4月11日更新 view: 36 view
photoBy: http://www.kagoya.jp/_cms_/file/img/webalizer_blo…

mecab に 辞書を登録しよう

そのままmecabを使っても性能が低く、うまく解析してくれない。
mecabをパワーアップしてみよう。

参考
http://d.hatena.ne.jp/hirokan55/20100210/p1

naist 辞書をインストール

naist辞書とは、初期の辞書より多少性能が良い辞書。
メインとしてこれを使うことにする。

ダウンロード

http://iij.dl.sourceforge.jp/naist-jdic/ より辞書をダウンロード

wget 'http://sourceforge.jp/frs/redir.php?m=jaist&f=%2Fnaist-jdic%2F53500%2Fmecab-naist-jdic-0.6.3b-20111013.tar.gz'

sourceforge.jp でダウンロードする場合は、 ' でくくらないとうまくダウンロードできないので、くくること。

インストール

ダウンロードしてきたファイル名が長ったらしいので、リネーム、解凍、インストール。

mv 'redir.php?m=jaist&f=%2Fnaist-jdic%2F53500%2Fmecab-naist-jdic-0.6.3b-20111013.tar.gz' mecab-naist-jdic-0.6.3b-20111013.tar.gz

tar zxf mecab-naist-jdic-x.x.x-xxxxxxxx
cd mecab-naist-jdic-x.x.x-xxxxxxxx
./configure --with-charset=utf8
make
sudo make install

To enable dictionary, rewrite /etc/mecabrc as "dicdir = /usr/lib64/mecab/dic/naist-jdic"
と表示されるので、/etc/mecabrc を vim で開き、 dicdir を上記に変更。

使う

$ echo '涼宮ハルヒの消失' | mecab
涼    形容詞,自立,*,*,形容詞・イ段,文語基本形,涼い,スズシ,スズシ,すずし/涼/涼し,
宮    名詞,一般,*,*,*,*,宮,ミヤ,ミヤ,,
ハルヒ    感動詞,*,*,*,*,*,*
の    助詞,格助詞,一般,*,*,*,の,ノ,ノ,,
消失    動詞,自立,*,*,一段,連用形,消失る,キエウセ,キエウセ,きえうせ/消うせ/消えうせ/消え失/消え失せ/消失,
EOS

この結果ならOK。
ただうまく解析できていないので、続いてwikipediaをインストールします。

wikipedia 辞書をインストール

まずは辞書ファイルへ移動。辞書へのパスは

find / -name '*mecab-naist*' -print

で探そう。

あとで絶対パスのが便利になるので絶対パスで移動。

cd /home/hideki/mecab-naist-jdic-x.x.x-xxxxxxxx

makedic.rb を作成

vim makedic.rb

# -*- encoding: UTF-8 -*-
open($*[0]).each do |title|
    title.strip!
    # 登録したくないものをスキップ
    next if title =~ /[\+\-\.\$\(\)\?\*!"'_,]+/
    # タイトルの長さ
    len = title.split(//u).length
    # スコアのロジックはネットで見つけたものそのまま使用
    score = [-36000.0 ,-400 *(len**1.5)].max.to_i
    # 3文字より大きい場合だけ
    if len > 3
        print "#{title},0,0,#{score},名詞,固有名詞,*,*,*,*,#{title},*,*,wikipedia,\n"
    end
end

sh を作成

vim /var/shell/wikipedia_dic_update.sh

#!/bin/sh
cd /home/hideki/mecab-naist-jdic-x.x.x-xxxxxxxx
wget 'http://download.wikimedia.org/jawiki/latest/jawiki-latest-all-titles-in-ns0.gz'
gunzip -f jawiki-latest-all-titles-in-ns0.gz
ruby makedic.rb jawiki-latest-all-titles-in-ns0 | nkf -e > wikipedia.csv
make clean && make && make install

オーナー権変更

chown -R hideki /usr/lib64/mecab/dic/naist-jdic

インストール実行

sh /var/shell/wikipedia_dic_update.sh

cd /home/hideki/mecab-naist-jdic-x.x.x-xxxxxxxx の naist-jdic 以外の場所でmakeするとエラーになる。
必ず、cd /home/hideki/mecab-naist-jdic-x.x.x-xxxxxxxx で入ってやること。

使う

スポンサードリンク
$ echo '涼宮ハルヒの消失' | mecab
涼宮ハルヒの消失        名詞,固有名詞,*,*,*,*,涼宮ハルヒの消失,*,*,wikipedia,
EOS

はてなキーワード辞書をインストール

まずは移動。

cd /home/hideki/mecab-naist-jdic-x.x.x-xxxxxxxx

vim makedic-hatena.rb

# -*- encoding: UTF-8 -*-
open($*[0]).each do |line|
    title_list = line.split("\t")
    next if title_list.length < 2
    title = title_list[1]
    title.strip!
    # 登録したくないものをスキップ
    next if title =~ /[\+\-\.\$\(\)\?\*!"'_,]+/
    next if title =~ /^[0-9\-]+$/
    next if title =~ /^h?ttp/
    # タイトルの長さ
    len = title.split(//u).length
    # スコアのロジックはネットで見つけたものそのまま使用
    score = [-36000.0 ,-400 *(len**1.5)].max.to_i
    # 3文字より大きい場合だけ
    if len > 3
        print "#{title},0,0,#{score},名詞,固有名詞,*,*,*,*,#{title},*,*,はてなキーワード,\n"
    end
end

sh を作成

vim /var/shell/hatena_dic_update.sh

#!/bin/sh
cd /home/hideki/mecab-naist-jdic-x.x.x-xxxxxxxx
wget http://d.hatena.ne.jp/images/keyword/keywordlist_furigana.csv -O hatena.txt
nkf -w --overwrite hatena.txt
ruby makedic-hatena.rb hatena.txt | nkf -e > hatena.csv
make clean && make && make install

インストール実行

sh /var/shell/wikipedia_dic_update.sh

使う

$ echo "google先生" | mecab
google先生    名詞,固有名詞,*,*,*,*,google先生,*,*,はてなキーワード,
EOS

以上で完了です。
sh を cron にしかておけば定期的に辞書を最新版にアップしてくれます。

スポンサードリンク

関連記事

関連カテゴリ

コロ助

web関連の記事や制作系の記事をどんどんまとめていきます。 宜しくお願いします!

ピックアップ

パソコン・ソフトウェア ランキング

10月16日 ( 水 ) にアクセスが多かった記事はこちら!