[groonga-dev,01575] Re: groongaのトークナイザの改善について

Back to archive index

Kouhei Sutou kou****@clear*****
2013年 8月 6日 (火) 18:18:34 JST


須藤です。

In <CANM+HhdF+uZ2A-Tknc67SKQ41UB7dnkgeadAF0_dNd88****@mail*****>
  "[groonga-dev,01571] groongaのトークナイザの改善について" on Mon, 5 Aug 2013 18:24:33 +0900,
  Naoya Murakami <visio****@gmail*****> wrote:

> 日本語の場合、漏れのないという観点の利点がありますが、英語のみのテーブルで、
> TokenBigramSplitSymbolAlphaDigitを使うのは、性能の観点からもったいない気がしています。

たしかにそうですね。
SplitXXX系のトークナイザーは検索漏れは少なくなりますが、性能
面の性能低下や誤検出の増加というデメリットがあるため、トレー
ドオフの関係にあります。

> <質問>
> (1)TokenBigram、TokenTrigram等において、4Kbyteの制限以上となる長い記号列が出現した場合に
> 無視または所定の文字数でカットするようトークナイザに実装していただくのは可能でしょうか?
> これにより、長い記号列が出現する文章であっても、原則、空白区切りでトークナイズできるため、
> 英語文書での飛躍的な性能向上につながり、非常にうれしいです。

あぁ、たしかにこれはよさそうな妥協点に思えます。実装も難しく
ないですし。
検討してみます。

> (2)これは、願望なのですが、英文を空白区切りでトークナイズした場合、トークン数が
> 減る一方、複数系等のゆらぎ(These are cars.は、TokenBigramSplitSymbolAlphaの場合、
> carsで検索しないとヒットしない。)に対応できなくなると思います。
> 空白区切りでトークナイズしても複数系や活用形が原型で検索できるよう、ゆらぎを
> 原型にするトークナイザがあると素敵だなと考えました。
> Apache Luceneは、以下のようなフィルタがあるようですが、
> 今後、groongaでこのあたりの機能の実装の展開の予定はないですか?
> http://www.mwsoft.jp/programming/lucene/lucene_filter.html
> http://www.mwsoft.jp/programming/hadoop/mapreduce_with_lucene_filter.html

この機能、あると嬉しいですよね!
やりたいとは思っているのですが、スッキリした実現方法が浮かば
ずにずるずるという感じです。
もう一度検討してみます!

> (3)トークナイザを自作するのは以下のチケットの通り、今も難しいままでしょうか?
> http://redmine.groonga.org/issues/1257

この頃よりは簡単になり、ドキュメントも揃えたのですが、Cの知識
が必要なのは相変わらずなので敷居は高いかなぁという印象です。

参考:
  * トークナイザーを作るために使うAPI
    https://github.com/groonga/groonga/blob/master/include/groonga/tokenizer.h
  * トークナイザーの実装例(TokenMecab)
    https://github.com/groonga/groonga/blob/master/plugins/tokenizers/mecab.c

mrubyという組み込み向けのRuby実装をgroongaに組み込もうという
作業を進めつつ停滞しつつという感じでやっているのですが、それ
ができたらRubyでトークナイザーを書けるようになりさらに敷居が
下がると思っています。

もし、トークナイザーの自作も視野にあるということであれば、
チュートリアルのようなドキュメントを作ろうかと思いますので、
遠慮なく言ってもらえればと思います。

-- 
須藤 功平 <kou****@clear*****>
株式会社クリアコード <http://www.clear-code.com/> (03-6231-7270)

groongaサポート:
  http://groonga.org/ja/support/
パッチ採用はじめました:
  http://www.clear-code.com/recruitment/
コミットへのコメントサービスはじめました:
  http://www.clear-code.com/services/commit-comment.html




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