morit****@razil*****
morit****@razil*****
2014年 9月 24日 (水) 18:14:42 JST
こんにちは。森です。 Boolean Modeではクエリに指定されたトークンの隣接関係をきちんとチェックしているのに対して、 Natural Language Modeですとトークンの出現順序は無視しています。 日本語ですとbigramでもトークンの種類が多いですから、 TF*IDFで選別されてそれほど不自然な結果にはならないと思います。 字種の少ない言語では、bigram索引とNatural Language Modeの組み合わせでは精度が出ないと思います。 2014-09-24 18:02 GMT+09:00 Kazuhiko <kazuh****@fdiar*****>: > こんにちは、かずひこです。 > > TokenBigramSplitSymbolAlphaDigit を使うと、Natural Language Modeでの検索 > 結果が、英単語の場合はgramごとの隣接関係を無視しているようで、こんな結果 > になります。 > > MariaDB [erp5_test]> SELECT *, MATCH (content) AGAINST ("bell") AS score > FROM diaries2; > +----+--------------------------------------------------+--------+ > | id | content | score | > +----+--------------------------------------------------+--------+ > | 1 | It'll be fine tomorrow as well. | 299594 | > | 2 | It'll rain tomorrow. | 149797 | > | 3 | It's fine today. It'll be fine tomorrow as well. | 299594 | > | 4 | It's fine today. But it'll rain tomorrow. | 149797 | > | 5 | Ring the bell. | 149797 | > | 6 | I love dumbbells. | 131073 | > +----+--------------------------------------------------+--------+ > > bellで検索すると、bellそのものが含まれるid=5よりも、llとかbeとかelとかの > 含まれるid=1やid=3がスコアが高くなり、実用的でなさそうです。日本語での使 > 用だと、TokenBigramとnatural language modeの組み合わせでも、それほど不自 > 然な結果にはならないのでしょうか? > > 一方、boolean modeだと、 > > MariaDB [erp5_test]> SELECT *, MATCH (content) AGAINST ("bell" in > boolean mode) AS score FROM diaries2; > +----+--------------------------------------------------+-------+ > | id | content | score | > +----+--------------------------------------------------+-------+ > | 1 | It'll be fine tomorrow as well. | 0 | > | 2 | It'll rain tomorrow. | 0 | > | 3 | It's fine today. It'll be fine tomorrow as well. | 0 | > | 4 | It's fine today. But it'll rain tomorrow. | 0 | > | 5 | Ring the bell. | 1 | > | 6 | I love dumbbells. | 1 | > +----+--------------------------------------------------+-------+ > > このように、'bell' と連続して出現するid=5とid=6のみにヒットします。 > > このあたりの挙動はドキュメントに無さそうですが、具体的にはどのようになっ > ていますか? > > よろしくお願いします。 > > かずひこ > > _______________________________________________ > groonga-dev mailing list > groon****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/groonga-dev >