0

こんにちは、xml コレクションからいくつかのドキュメントのインデックスを作成する小さなプログラムを作成しようとしています。tf-idf メソッドを使用します。私のプログラムがクエリを読み取ると、各ドキュメントの各単語のタプル ('tf-idf','docid') のリストが返されます。

これは例です:

Query: "Dog water"

Documents: [(0.212,1),(0.334,1),(0.111,2),(0,2)]  

この場合、ドキュメント 2 には 1 つの単語しか含まれていません。

ここで私の質問は次のとおりです。これらのドキュメントとクエリの間でドット積を実行する必要があることはわかっていますが、どうすればよいですか? クエリを重みのベクトルに変換するにはどうすればよいですか?

ありがとうございました。

4

1 に答える 1

0

docid: [weight,...]あなたの質問が「このリストから辞書を作成するにはどうすればよいですか」の場合、答えは非常に簡単です。

from collections import defaultdict

def transform(query_results):
     revindex = defaultdict(list)
     for weight, docid in query_results:
         revindex[docid].append(weight)
     return revindex

それ以外の場合は、さらに説明をお願いします。可能であれば、予想される出力例を示してください。

于 2014-09-08T14:48:46.947 に答える