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

アールメカブ


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

[[RMeCab]]

#contents

* MeCabへの辞書追加 [#q468c95c]

[[こちら:http://mecab.sourceforge.net/dic.html]]を参照してください

例えば 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 上で辞書を指定できる仕様を追加する予定です(RMeCab_0.89 から実装予定).
なお RMeCab 上で辞書を指定するには関数で dic 引数を指定します


* Mac で辞書を作成し,RMeCab で利用する [#va34eef1]

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