[groonga-dev,02582] Re: 中黒「・」を含む単語の存在する文章の検索について

Back to archive index

FMK devel****@fmk*****
2014年 8月 7日 (木) 18:40:52 JST


村上様、須藤様

こんばんは、中村です。
もろもろご助言頂きありがとうございます。

その後の進捗です。

|IPAdicは、デフォルトだと正直、全文検索にはあまり向いていない
|区切られ方されていると思います。特にカタカナ、未知語周り。

MeCab用の辞書をNAIST-jdic に変更して試しましたところ、
「アル・カポネ」を含む例文2つともヒットするようになりました。

○ gronnga のログ
# tail -f /var/lib/mysql/groonga.log
2014-08-06 19:04:48.977616|n|3583b700|log level changed from 'NOTICE' to
'DEBUG'
2014-08-06 19:06:24.871988|i|3583b700|grn_ii_sel > (アル・カポネ)
2014-08-06 19:06:24.872813|i|3583b700|n=1 (アル・カポネ)
2014-08-06 19:06:24.885579|i|3583b700|exact: 2
2014-08-06 19:06:24.885691|i|3583b700|hits=2


○ 環境
$ rpm -qa | grep mecab
mecab-0.996-1.el6.x86_64
groonga-tokenizer-mecab-4.0.4-1.el6.x86_64
mecab-naist-jdic-0.6.3b-20111013-1.x86_64
mecab-ipadic-2.7.0.20070801-8.el6.1.x86_64
mecab-devel-0.996-1.el6.x86_64

○ 設定
$ cat /etc/mecabrc | grep dicdir
;dicdir = /usr/lib64/mecab/dic/ipadic
dicdir = /usr/lib64/mecab/dic/naist-jdic

※ 設定変更後、どうやらMySQLの再起動が必要なようです。


|あえてデフォルトのTokenBigramではなく、MeCabを選んでいるので
|おそらくそちらを好んでいるのでしょうが、

おっしゃるとおり、形態素解析へのこだわりが若干ございますので、
しばらくNAIST-jdic使用で検討を進めたく存じます。


よろしくお願いします。

中村


-----Original Message-----
From: groon****@lists*****
[mailto:groon****@lists*****] On Behalf Of Naoya
Murakami
Sent: Wednesday, July 30, 2014 7:57 PM
To: 全文検索エンジンGroonga開発メーリングリスト
Subject: [groonga-dev,02556] Re: 中黒「・」を含む単語の存在する文章の検索に
ついて

村上です。


昨日、ゆらぎの吸収と申したのは、「アル・カポネ」でも「アルカポネ」でも検索が
できることでした。
>
> ただし、単純に中黒「・」を除去しただけの場合、例えば、
> 「イネ・ムギ・ブナ・アカマツ」のように同格の名詞を列挙した場合、
> 単純な中黒抜きだと「ムギ」では検索できなくなるという悪影響があります。→末
尾
>

「イネムギブナアカマツ」、たしかにIPAdicだとひとまとまりになりますね。
アル・カポネもですがIPAdicはデフォルトでは知らない文脈でのカタカナの
まとめ方がいまいちぽいですね。

IPAdicは、デフォルトだと正直、全文検索にはあまり向いていない
区切られ方されていると思います。特にカタカナ、未知語周り。

ちなみにNAIST-jdicやUniDicであれば、 「イネムギブナアカマツ」は、
デフォルトで「イネ/ムギ/ブナ/アカマツ」になります。

まずは何より検索漏れを防ぎたい、というのがございますので、
>

あえてデフォルトのTokenBigramではなく、MeCabを選んでいるので
おそらくそちらを好んでいるのでしょうが、Ngram系のトークナイザ
(TokenBigram等)では、検索漏れはなくなります。辞書の調整も不要です。
ただし、検索ノイズが増えるのと転置索引のサイズが増えるというのと
トレードオフです。

Ngramであれば、「・」等を除去しても特に問題はないはずです。

(ちなみにSymbolフィルター相当の機能があれば、自動で除去できたり
するのですが、今のMroongaにはないので、すでにやられているような
手法で頑張るか、自前でC言語でトークナイザもしくはノーマライザ側を
カスタマイズして除去してやるしかありません。)

以上、ご参考まで。
_______________________________________________
groonga-dev mailing list
groon****@lists*****
http://lists.sourceforge.jp/mailman/listinfo/groonga-dev




groonga-dev メーリングリストの案内
Back to archive index