//このページが表示される方は、URLから「action=SOURCE&」を削除してみてください [[R備忘録 - 記事一覧]] !!!RMeCabとか *投稿者: みゅ *カテゴリ: なし *優先度: 普通 *状態: 完了 *日時: 2008年12月31日 09時26分19秒 //{{bugstate}} !!内容 RMeCabの情報とかインストールとか !!!リンク *[金明哲さんのpdf|http://mjin.doshisha.ac.jp/R/200808_61.pdf] **[ローカルに保存したpdf|http://phoenixx.sakura.ne.jp/R/wiki.cgi?action=ATTACH&page=BugTrack%2D%A3%D2%C8%F7%CB%BA%CF%BF%2F18&file=200808%5F61%2Epdf] *[石田さんのところ|http://rmecab.jp/wiki/] **[RMeCab の使い方(pdf)|http://cms.ias.tokushima-u.ac.jp/index.php?plugin=attach&refer=RMeCab&openfile=manual.pdf] **[同じものだがローカルに保存したもの(pdf)|http://phoenixx.sakura.ne.jp/R/wiki.cgi?action=ATTACH&page=BugTrack%2D%A3%D2%C8%F7%CB%BA%CF%BF%2F18&file=index%2Epdf] *もちろん「Rによるテキストマイニング入門」はゲット! {{include_html banner_html, "!amazon3"}} !!!インストール *家のパソコンのVMWare上で動いてるLinuxで *LinuxはGentoo Linux *まず「MeCab」のインストール.GentooのportageにMeCabがあった! emerge -v app-text/mecab *これでMeCabと辞書をインストールしてくれる.らくちん. *次に「RMeCab」のインストール.石田さんのところから[Linux版のRMeCab|http://cms.ias.tokushima-u.ac.jp/index.php?plugin=attach&refer=SoftArchive&openfile=RMeCab_0.67.tar.gz]をダウンロードしてくる *Rへのインストールは R CMD INSTALL RMeCab_0.67.tar.gz *これでOK.なんとらくちん !!!動作確認 *おっと注意点.文字コードはutf-8じゃないと、なんかうまくいかない.MeCabがutf-8の文字コードで解析してるんでしょう.MeCabのサイト読めばわかるんでしょうけど、そのうち読みます(汗. *なのでteratermでSSHでGentoo Linuxにつないでますから、teratermの文字コードをutf-8にセット *あと、Rを起動する環境で「.bash_profile」とかに、以下のように書いておきましょう. export LANG=ja_JP.UTF-8 *あるいはRを起動するときに、教えてあげるとか. LANG=ja_JP.UTF-8 R !MeCabの動作確認 $ echo "すもも" | mecab すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ EOS $ *うまくいってます $ echo "すももも桃も桃のうち" | mecab すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ も 助詞,係助詞,*,*,*,*,も,モ,モ 桃 名詞,一般,*,*,*,*,桃,モモ,モモ も 助詞,係助詞,*,*,*,*,も,モ,モ 桃 名詞,一般,*,*,*,*,桃,モモ,モモ の 助詞,連体化,*,*,*,*,の,ノ,ノ うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ EOS $ !RMeCabの動作確認 > library(RMeCab) > RMeCabC("すももも桃も桃のうち") [[1]] 名詞 "すもも" [[2]] 助詞 "も" [[3]] 名詞 "桃" [[4]] 助詞 "も" [[5]] 名詞 "桃" [[6]] 助詞 "の" [[7]] 名詞 "うち" *いい感じ > RMeCabC("すもももももももものうち") [[1]] 名詞 "すもも" [[2]] 助詞 "も" [[3]] 名詞 "もも" [[4]] 助詞 "も" [[5]] 名詞 "もも" [[6]] 助詞 "の" [[7]] 名詞 "うち" !!MeCab *辞書登録 /usr/libexec/mecab/mecab-dict-index -d /usr/lib/mecab/dic/ipadic -u zzz.dic -f utf-8 -t utf-8 zzz.csv /usr/libexec/mecab/mecab-dict-index -d /usr/lib/mecab/dic/ipadic -u qr.dic -f euc-jp -t utf-8 stockName.csv *はてな wget http://d.hatena.ne.jp/images/keyword/keywordlist_furigana.csv -O hatena.txt nkf -Ew hatena.txt | python createDict.py > hatenakeyword.csv /usr/libexec/mecab/mecab-dict-index -d /usr/lib/mecab/dic/ipadic -u hatena.dic -f utf-8 -t utf-8 hatenakeyword.csv **[MeCabの辞書にはてなキーワードを追加しよう|http://d.hatena.ne.jp/code46/20090531/p1] **createDict.py # -*- encoding: utf-8 -*- import sys import re #数字四桁が入ったキーワードは役に立ちませんので検出して飛ばします。 year = re.compile("[0-9]{4}") #驚くべきことにはてなキーワードには%00というキーワードがありますが、 #これがcsvとして提供されているダンプではヌル文字になっているのでシステム制御文字を非許可にします。 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() #MeCabはケースセンシティブなので小文字に統一して辞書作成 cost = int(max(-36000, -400 * len(k)**1.5)) #コストについては後述 print "%s,0,0,%s,名詞,一般,*,*,*,*,%s,*,*,はてなキーワード," % (k,cost,k) #0については後述 if __name__ == '__main__': main() *左文脈ID、右文脈IDは「-1」ではエラーになるように 仕様が変わった模様?「0」でOKかも? !!その他 *ユーザー辞書登録で、なんだろう、文字コード関連でうまくいかないときがある *「・」が入るときのコストは【-30000】くらいがいいのかもしれない !!コメント //{{comment}}