[Senna-dev 628] Re: セクションを用いた検索のスコア

アーカイブの一覧に戻る

morit****@razil***** morit****@razil*****
2007年 7月 5日 (木) 14:57:30 JST


こんにちは。森です。

>>> kousa****@nttda***** さんは書きました:
> こんにちは、幸坂です。
> 
> 「セクションを用いた場合と用いない場合の、検索のスコアが異なる。」
> という疑問が生じましたので、質問させていただきます。

その通りでした!!

現状のコードでは、セクション毎の重みが指定されると、そちらが優先され、
他の重みパラメータは無視されるようになっています。

修正可能かどうか検討してみます。

> 環境:
> Senna1.0.7
> 
> 擬似コード:
> インデックス構築時
> index = sen_index_create(path, KEY_SIZE,
>           SEN_INDEX_NGRAM|SEN_INDEX_NORMALIZE, 512, enc);
> 
> c1 = "testtesttestこんにちはこんにちは"
> sen_values *newvalues = sen_values_open();
> rc = sen_values_add(newvalues, c1, strlen(c1), 0);
> rc = sen_index_update(index, (void *)tid, 1, NULL, newvalues);
> rc = sen_values_close(newvalues);
> 
> 検索時
> c2 = "*W1:5 testtesttest";
> q = sen_query_open(c2, strlen(c2), sen_sel_or, 16, enc);
> sen_query_exec(index, q, record, op);
> 
> 上記のように、セクションを用いた検索を行うと、
> セクションを用いない場合と同様の検索スコア「5」を取得できます。
> しかし、検索キーワードのc2を変えると
> c2 = "test"; → スコア「3」 (正しい)
> c2 = "*W1:5 test"; → スコア「5」(おかしい)
> 上記のようにおかしなスコアになってしまいます。
> 部分一致検索であるため、スコア3が正しいと思うのですが・・・。
> 
> また、「~」などを用いた場合も*W1:5を付けたときと付けない場合で、
> スコアが異なります。
> c2 = "こんにちは ~testtesttest"; → スコア「9(=5+5-1)」(正しい)
> c2 = "*W1:5 こんにちは ~testtesttest"; → スコア「15」(おかしい。
> 「~」が解釈されていない?)
> 
> 
> なにかしら間違った使用をしているかもしれません。
> セクションを用いた場合は、スコア計算方法が異なるのかもしれません。
> アドバイス頂けないでしょうか。
> よろしくお願いします。
> 
> _______________________________________________
> Senna-dev mailing list
> Senna****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/senna-dev
> 
--
morita




Senna-dev メーリングリストの案内
アーカイブの一覧に戻る