Ubuntu14.04にmecabの辞書に、Wikipediaとはてなの単語を追加する。
以下のサイトを参考にさせていただきました。
(ぶっちゃけ以下のサイトだけで完結します・・・)
MeCabのユーザー辞書にWikipediaとはてなの単語を追加する
目次
- CSV変換用のスクリプトの用意
- Vagrantへの割当メモリを増やす
1. CSV変換用のスクリプトの用意
ココらへんは上のサイトをそのまま進める。
まずは辞書に追加するデータを取得。
# Wikipedia wget http://dumps.wikimedia.org/jawiki/latest/jawiki-latest-all-titles-in-ns0.gz gunzip jawiki-latest-all-titles-in-ns0.gz
# はてな wget http://d.hatena.ne.jp/images/keyword/keywordlist_furigana.csv nkf -w --overwrite keywordlist_furigana.csv
このデータをCSVに変換するスクリプトを作成し、実行する。
スクリプトは参考サイトを丸ごと・・・
vim makedic.rb
ruby makedic.rb
すると、以下のエラーが出た。
invalid multibyte char (US-ASCII)
日本語のような非ASCII文字が入ってる出るエラーらしい。
元のスクリプトの最初に以下の行を追加。
# encoding: utf-8
再度実行するとCSVファイルが作成された(Pythonで作った場合)。
このCSVを辞書に登録する。
mecabの辞書登録は本家サイト見るといいかも。
medabのインストール先は以下のコマンドで検索。
locate mecab-dict-index locate mecab/dic/ipadic
以下のコマンドで辞書を追加。
/usr/lib/mecab/mecab-dict-index -d /usr/share/mecab/dic/ipadic -u custom.dic -f utf-8 -t utf-8 custom.csv # 以下が表示された reading onomasticon.csv ... 1694597 terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc Aborted (core dumped)
メモリが足りないらしい・・・
2. Vagrantへの割当メモリを増やす
Vagrantへの割当メモリを増やす前に、現在のメモリを見てみる。
free -m # 以下が表示された。 total used free shared buffers cached Mem: 489 135 354 0 2 26 -/+ buffers/cache: 106 383 Swap: 0 0 0
一度仮想環境からログアウトし、Vagrantfileを修正する。
vim Vagrantfile
以下のようにvb.customizeを追記した(config.vm.providerも)。
Vagrant.configure(2) do |config| config.vm.box = "ubuntu1404" config.vm.provider :virtualbox do |vb| vb.customize ["modifyvm", :id, "--memory", 1024] end end
設定を再読み込み。
vagrant reload
再度仮想環境へログイン。
メモリを確認する。増えてる増えてる。
free -m # 以下が表示された total used free shared buffers cached Mem: 993 193 800 0 11 67 -/+ buffers/cache: 113 879
再度辞書を追加する。
今度は上手くいった!
/usr/lib/mecab/mecab-dict-index -d /usr/share/mecab/dic/ipadic -u custom.dic -f utf-8 -t utf-8 custom.csv # 以下が表示された reading onomasticon.csv ... 1694597 emitting double-array: 100% |###########################################|
done!
使ってみよう!
mecab 人工無脳 人工 名詞,一般,*,*,*,*,人工,ジンコウ,ジンコー 無 接頭詞,名詞接続,*,*,*,*,無,ム,ム 脳 名詞,一般,*,*,*,*,脳,ノウ,ノー EOS
mecab -u onomasticon.dic 人工無脳 人工無脳 名詞,一般,*,*,*,*,人工無脳,*,* EOS
できた!
参考
MeCabのユーザー辞書にWikipediaとはてなの単語を追加する
mecab – 形態素解析のために Wikipedia とはてなキーワードからユーザー辞書を生成し利用する – Qiita
コメント