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

アールメカブ


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


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
		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