namazu-dev(ring)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to get tf value?



小松です。

On Sun, 24 Oct 1999 00:37:17 +0900
Mr. Rei FURUKAWA <furukawa@xxxxxxxxxxxx> wrote:

Rei> 古川です。
Rei> 
Rei> From: Hiroshi KOMATSU <sui_feng@xxxxxxxxxxxxx>
Rei> Subject: [namazu-dev 674] Re: How to get tf value?
Rei> Date: Thu, 21 Oct 1999 10:34:23 +0900
Rei> Message-ID: <199910210134.KAA22194@xxxxxxxxxxxxxx>
Rei> sui_feng> # 2.0 のインデックス構造を勉強しなくちゃ
Rei> 
Rei> 最新のソースを入手なさったならば、pl というディレクトリに、nmzidx.pl
Rei> というものがあります。ここでは、2.0 のインデックスの読み書き用の、
Rei> アクセス関数群を用意しています。
Rei> 
Rei> また、src ディレクトリには、これを使った、
Rei> 
Rei>     kwnmz       文書から、キーワードを tf/idf 的に抜き出して、
Rei>                 NMZ.field.keywords に書き出します
Rei> 
Rei>     gcnmz       欠番を詰めてインデックスを作り直します。
Rei>                 従って、これを実行した後ならば、「NMZ.t のサイズ / 4」
Rei>                 で全文書数は求められます。
Rei> 
Rei> といったものがあります。
Rei> 

 ありがとうございます。ソースを読みます。

Rei> # 書きかけですが、ドキュメントは手もとにあります。

 リリースお待ちします。Perl流の SYNOPSIS と EXAMPLE があるだけでも
助かります。

Rei> 基本的には、
Rei> 
Rei>     while (defined($handle->read(\$word, \%list))){
Rei>         ...
Rei>     }
Rei> 
Rei> のような感じで、[単語]、[文書番号 -> スコア]のリストを読み出すことが
Rei> できます。

 1.3.x 用のgnmzでは、転置ファイルを、また転置しなおして、

	$hash{$document_number}{$word} = $score;

いうデータ構造に読み込んで使っていますので、  1.3.x 用のソースを少し改良
するだけで 2.0 に対応できそうです。

Rei> また、どんな関数を用意するか、も検討中です。
Rei> 小松さんに必要な関数 (のうち、汎用的に使えそうなもの) は、用意したい
Rei> と思っておりますので、「どんな関数が必要か」を是非教えて下さい。

 上記のような「再転置データのハッシュ」を出力していただけると、
助かります。あと、テキスト吐き出しのほかに、Data::Dumper 吐き出し
もご検討いただけると助かります。

 ひとつ、悩んでいるのが、'stop words'の排除です。

 1.3.x 用gnmzでは、インデックスを読み取った後に、$word がストップワード
かどうかを判定し、「あたり」であれば、next; します。このため、1.3.x 用に
用意されたインデックス読み取り関数は、そのまま使いまわしができず、車輪を発明
してしまいました。kwnmz では too many を排除という形のようですが、たとえ
ば「第」と「条」というのは、法律文では too many で、検索の役にはあまり
立ちませんが、法律条文と、そうでないものを分類するときには、非常に役に
立ちます。stop words を場合によって使い分けたいわけです。

 英文用の検索エンジンとしては、いずれストップ・ワード排除の問題は、
避けて通れないだろうと思いますので、ご検討いただければ幸いです。

*-------------------------------------------------------
  Hiroshi Komatsu <sui_feng@xxxxxxxxxxxxx>
  URL  http://home2.highway.ne.jp/sui_feng/index.html