Masaharu YOSHIOKA
yoshi****@ist*****
2012年 2月 24日 (金) 14:49:23 JST
須藤様 コメントどうも有難うございます。 MeCabでのトークナイズは問題ありません。対象となっているデータは、主に日 本語の1845文字のデータで、途中にエラーを起こすような文字があるのか確認 するために、部分文字列を作成して、登録をしてみました。 その結果、特定の文字を使いするとエラーが起きるという状況ではなく、1380 文字程度より長くなると、エラーが起きるという状況でした。エラーを起こす 文字数が一貫しないのは、UTF-8で、ASCII文字を含むデータであるためではな いか(ある一定のバイト数以上で問題が起きる)とも考えられます。 確認のため、適当な文字列の繰り返しで作成した長い文字列でも問題が起こる ことも確認しています。 なにか、他に、チェックした方が良い点などがございましたら、お教えくださ い。 よろしくお願いします。 >>>>> On Fri, 24 Feb 2012 13:45:00 +0900 (JST) >>>>> kou****@clear*****(Kouhei Sutou) said: > > 須藤です。 > > In <20120****@ist*****> > "[groonga-dev,00703] MeCabとの組合わせについて" on Fri, 24 Feb 2012 12:36:57 +0900 (JST), > Masaharu YOSHIOKA <yoshi****@ist*****> wrote: > > > データベース構築の際に、最新のMeCab0.993を使うとおおむね問題ないのです > > が、Mecab 0.98を使うと、下記のエラーが出ます。 > > > > /usr/local/lib/ruby/gems/1.9.1/gems/rroonga-1.3.1/lib/groonga/record.rb:70:in `[]=': invalid argument: too long key: (5455): #<Groonga::VariableSizeColumn id: <272>, name: <Articles.contents>, path: </home/data/wnews/groonga/wnews.db.0000110>, domain: <Articles>, range: <Text>, flags: <>> (Groonga::InvalidArgument) > > pat.c:751: grn_pat_add() > > うーん、トークナイズした結果が5455バイトの文字列になるのは考 > えづらいのでMeCabがうまくトークナイズできていないような気が > します。とすると、怪しいのが辞書の設定です。 > > おそらく、↑のエラーが発生するときに設定しているテキストは把 > 握していると思いますので、以下のようにmecabコマンドでわかち > 書きできているか確認してもらえますか? > > % echo "問題のあるテキスト" | mecab 北海道大学大学院情報科学研究科コンピュータサイエンス専攻 准教授 〒060-0814 北海道札幌市北区北14条西9丁目 吉岡 真治 e-mail: yoshi****@ist***** URL: http://www-kb.ist.hokudai.ac.jp/~yoshioka/