MeCab_Dictionary のバックアップ(No.2) - アールメカブ

アールメカブ


MeCab_Dictionary のバックアップ(No.2)


RMeCab

_ MeCab?への辞書追加

こちらを参照してください

例えば Ubuntu であれば

基広,-1,-1,1000,名詞,固有名詞,人名,名,*,*,基広,モトヒロ,モトヒロ

を ishida.csv として作成し,以下を実行. \\ は改行を表しますが, 改行せず, 1 行にまとめて実行してください

$ /usr/local/libexec/mecab/mecab-dict-index \\
 -d/usr/local/lib/mecab/dic/ipadic -u ishida.dic \\
   -f utf-8 -t utf-8 ishida.csv

作成された ishida.dic を利用できるか, まずコマンドラインで試し

$ mecab -u ishida.dic
石田基広
石田	名詞,固有名詞,人名,姓,*,*,石田,イシダ,イシダ
基広	名詞,固有名詞,人名,名,*,*,基広,モトヒロ,モトヒロ
EOS

うまく行っているようだったら,

$ cp /usr/local/etc/mecabrc  ~/.mecabrc

として ishida.dic を以下のように追加する

$ vi ~/.mecabrc

;
; Configuration file of MeCab
;
; $Id: mecabrc.in,v 1.3 2006/05/29 15:36:08 taku-ku Exp $;
;
dicdir =  /usr/local/lib/mecab/dic/ipadic

userdic = /home/ishida/git/Document/ishida.dic

; output-format-type = wakati
; input-buffer-size = 8192 

; node-format = %m\n
; bos-format = %S\n
; eos-format = EOS\n

なお RMeCab? 上で辞書を指定するには関数で dic 引数を指定します

_ Mac で辞書を作成し,RMeCab? で利用する

64Bit R on Snow Leopard で 実行してみました.

MacBook:~ ishida$ mecab
石田基広
石田      名詞,固有名詞,人名,姓,*,*,石田,イシダ,イシダ
基       名詞,固有名詞,人名,名,*,*,基,ハジメ,ハジメ
広       形容詞,自立,*,*,形容詞・アウオ段,ガル接続,広い,ヒロ,ヒロ
EOS
^C
MacBook:data ishida$ vi ishida.csv

基広,-1,-1,1000,名詞,固有名詞,人名,名,*,*,基広,モトヒロ,モトヒロ
MacBook:data ishida$ /usr/local/libexec/mecab/mecab-dict-index
-d/usr/local/lib/mecab/dic/ipadic -u ishida2.dic -f utf-8 -t utf-8
ishida.csv
reading ishida.csv ... 1
emitting double-array: 100% |###########################################|

done!
MacBook:data ishida$ mecab -u ishida2.dic
石田基広
石田      名詞,固有名詞,人名,姓,*,*,石田,イシダ,イシダ
基広      名詞,固有名詞,人名,名,*,*,基広,モトヒロ,モトヒロ
EOS
MacBook:~ ishida$ R

 R version 2.13.0 (2011-04-13)
 Copyright (C) 2011 The R Foundation for Statistical Computing
 ISBN 3-900051-07-0
 Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
 > library(RMeCab)
 > x <- docMatrix("/Users/ishida/tmp", dic = "/Users/ishida/R/data/ishida2.dic")
 file = /Users/ishida/tmp/test.txt
 file = /Users/ishida/tmp/test2.txt
 Term Document Matrix includes 2 information rows!
 whose names are [[LESS-THAN-1]] and [[TOTAL-TOKENS]]
 if you remove these rows, run
 result[ row.names(result) !=  "[[LESS-THAN-1]]" , ]
 result[ row.names(result) !=  "[[TOTAL-TOKENS]]" , ]
 > x
                docs
terms              test.txt test2.txt
 [[LESS-THAN-1]]         0         0
 [[TOTAL-TOKENS]]        7         6
 基広                    1         1
 石田                    1         1
 大学                    1         0
 出張                    0         1
 明日                    0         1