動かざることバグの如し

近づきたいよ 君の理想に

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

Mecabのインストー

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

curl -fsSL 'https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7cENtOXlicTFaRUE' -o mecab-0.996.tar.gz
curl -fsSL 'https://drive.google.com/uc?export=download&id=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してもう一回

echo おはよう|mecab が正しく叩ければ動作インストール完了

mecab-ipadic-neologdを使う

git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
cd mecab-ipadic-neologd

インストー

./bin/install-mecab-ipadic-neologd -n

動作確認は-dをつければOK

echo おはよう|mecab -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd

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