[Senna-dev 740] Re: 同義語を含む検索について

Back to archive index

morit****@razil***** morit****@razil*****
2007年 12月 27日 (木) 14:17:26 JST


こんにちは。

はい。おっしゃるような処理の流れで良いと思います。

http://lists.sourceforge.jp/mailman/archives/ludia-users/2007-December/000160.html

ここで具体的な方法が紹介されていますね。
この例では全てのカタカナをひらがなに変換していますが、
同義語の場合も同じような考え方で良いと思います。
同義語の表記を正規化する関数を用意していおいて、
インデックス作成時と検索時に同じ関数を適用すれば良いと思います。

検索時に同義語をor条件で付加する方法とくらべてオーバーヘッドが小さいですが、
同義語とみなす条件を検索時に調節できないのが欠点だと思います。

>>> Yoshiteru Negishi さんは書きました:
> 根岸です
> 
> 森様、
> 早々のご回答ありがとうございました。
> 機能追加を検討して頂けるとのこと、大変ありがたく思います。実装の暁には、是非利用させてください。
> 
> ところで
> >- インデックス作成時にヒットさせたい文字列を正規化しておく
> の手法に関しても少しご教示下さい。
> 僕が把握している範囲の技術ですと
> 1) レコードを形態素解析する
> 2) 出力を解析して同義語を付加する
> 3) 空白区切りにして新たに別テーブルにてレコードを生成する
> 4) DELIMITEDでindexを付加する
> という流れになりそうですが、これは手法的に正しいでしょうか。
> 
> ご返信いただければ幸いです。
> よろしくお願いいたします。
> 
> 07/12/26 に morit****@razil*****<morit****@razil*****> さんは書きました:
> >
> > 根岸さん。こんにちは。
> >
> > 森と申します。
> >
> > いまのところ、Senna自身では同義語検索機能を提供していません。
> >
> > 同様の機能を実現するためには、
> >
> > - インデックス作成時にヒットさせたい文字列を正規化しておく
> >
> > - 検索時に同義語をor条件に展開する
> >
> > ぐらいの手段があると思いますが、
> > いずれもエンジンの外部で実装可能だと考え、開発を後回しにしていました。
> >
> > しかし、根岸さんのおっしゃるように、全ての同義語を単純にor条件で結合して
> > 実行するとオーバーヘッドが大き過ぎる場合があるかもしれません。
> >
> > SennaのAPIをいろいろ組み合わせて実行すれば
> > ある程度オーバーヘッドを緩和できると思いますが、
> > SQL越しにそれを制御するのは難しそうです。
> >
> > というわけで、Senna自身での同義語検索機能もそろそろ検討したいと思います。
> > SQLからはSenna queryのプラグマを使って、Tritonn, Ludiaのどちらからでも
> > 同じ書式で使えるようなものにしたいと思います。
> >
> > すぐには出来ないと思いますが‥。
> >
> > 今後ともよろしくお願いします。
> >
> > >>> Yoshiteru Negishi さんは書きました:
> > > 根岸と申します。
> > > このMLへの投稿は初めてになります。
> > > 先日より業務でSenna(Tritonn 1.0.8)を使っておりますが、一点どのように実行すればよいのか分からないものがありましたので、質問させてください。
> > >
> > > 実行したい内容は、例えば
> > > "リンゴ"
> > > で検索したときに、"リンゴ"以外にも
> > > "apple"、"林檎"、"りんご"
> > > などの単語が書かれたレコードもヒットさせたいと言うものです。
> > >
> > > すぐに思いつく方法としては、検索クエリ発生時に同義語を取得して、or検索を行う方法がありますが、そのような手法ではオーバーヘッドが大きいように感じられます。
> > > インデックス作成時にこのような同義語を含むレコードの検索を可能とするような、何かしらの機能は組み込まれているのでしょうか。
> > >
> > > もしよろしければご教示の程、宜しくお願いいたします。
> > >
> > > --
> > > 根岸義輝
> > >
> > > _______________________________________________
> > > Senna-dev mailing list
> > > Senna****@lists*****
> > > http://lists.sourceforge.jp/mailman/listinfo/senna-dev
> > > バグ報告方法:http://qwik.jp/senna/bug_report.html
> > >
> > --
> > morita
> >
> > _______________________________________________
> > Senna-dev mailing list
> > Senna****@lists*****
> > http://lists.sourceforge.jp/mailman/listinfo/senna-dev
> > バグ報告方法:http://qwik.jp/senna/bug_report.html
> >
> 
> 
> -- 
> 根岸義輝
> 
> _______________________________________________
> Senna-dev mailing list
> Senna****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/senna-dev
> バグ報告方法:http://qwik.jp/senna/bug_report.html
> 
--
morita




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