読者です 読者をやめる 読者になる 読者になる

Mecabのインストールメモ (n回目)

Mecabのインストール

MeCab本体と辞書のダウンロード

wget https://googledrive.com/host/0B4y35FiV1wh7cENtOXlicTFaRUE -O mecab-0.996.tar.gz
wget https://googledrive.com/host/0B4y35FiV1wh7MWVlSDBCSXZMTXM -O mecab-ipadic-2.7.0-20070801.tar.gz

MeCab本体のインストール

tar zxfv mecab-0.996.tar.gz
cd mecab-0.996
./configure 
make
make check
sudo make install

辞書のインストール

tar zxfv mecab-ipadic-2.7.0-20070801.tar.gz
cd mecab-ipadic-2.7.0-20070801
./configure --with-charset=utf8 --enable-utf8-only
make
sudo make install

libmecab.so.2: cannot open shared object fileって出る場合はsudo ldconfigしてもう一回

Rubyで使えるようにする

nattoを導入する

nattoのインストールはGemfileに一行足すだけ

gem 'natto'
require 'natto'

text = "悪質な業者によるトラブルが全国で急増している。"

mecab = Natto::MeCab.new
mecab.parse(text) do |n|
  puts "#{n.surface}\t#{n.feature}"
end

はてなキーワードの項目を辞書化

以下の作業は**/tmp等、適当な場所ですること

wget http://d.hatena.ne.jp/images/keyword/keywordlist_furigana.csv
#何故かEUC-JPなのでUTF-8に変更
nkf -w --overwrite keywordlist_furigana.csv

以下を実行

require 'csv'
CSV.open("hatena.csv", 'w') do |csv|
    open("keywordlist_furigana.csv").each do |line|
        yomi, word = line.split("\t")
        next if word=~ /[12]\d{3}-\d{2}-\d{2}/
        next if word=~ /::/
        next if word =~ / /
        word = word.strip
        csv << [word, nil, nil, nil, '名詞', '一般', '*', '*', '*', '*', yomi, '*', '*', "hatena"]
    end
end

システム辞書に統合するには再コンパイルとなる。どうも単純に単語を足していくだけではダメでもう1作業必要である。それに関してはここのサイトが詳しい。

以下の作業はmecab-ipadic-2.7.0-20070801内とし、さっき作ったhatena.csvをコピーしておく

学習モデルのダウンロード

wget https://mecab.googlecode.com/files/mecab-ipadic-2.7.0-20070801.model.bz2
bunzip2 mecab-ipadic-2.7.0-20070801.model.bz2

mecab-ipadic-2.7.0-20070801.model.bz2の6行目、charset: euc-jpcharset: utf-8に変更

コストの算出

/usr/local/libexec/mecab/mecab-dict-index -m mecab-ipadic-2.7.0-20070801.model -d /usr/local/lib/mecab/dic/ipadic -u hatena_mod.csv -f utf8 -t utf8 -a hatena.csv

no such file or directory: /usr/local/lib/mecab/dic/ipadic/feature.defって言われたらsudo cp feature.def /usr/local/lib/mecab/dic/ipadic/feature.defをコピーすればおk

  • -m:コスト自動推定の機能を使うデータ(いわゆるmecab-ipadic-2.7.0-20070801.model)
  • -d:システム辞書のディレクトリパス
  • -u:オリジナル辞書出力先
  • -f:システム辞書の文字コード
  • -t:csv文字コード
  • -a:オリジナル辞書を作成する元のcsv

hatena.csvは削除しておく

/usr/local/libexec/mecab/mecab-dict-index -f utf8 -t utf8
sudo make install