さて、私はちょっと混乱しています。しかしこれは単純な直接的な質問であるべきです。TF-IDF簡単な使い方 - NLTK/Scikit Learn
コーパス全体に対する文書のTF-IDF行列を算出した後、私はこれに非常に類似した結果を得る:
array([[ 0.85..., 0. ..., 0.52...],
[ 1. ..., 0. ..., 0. ...],
[ 1. ..., 0. ..., 0. ...],
[ 1. ..., 0. ..., 0. ...],
[ 0.55..., 0.83..., 0. ...],
[ 0.63..., 0. ..., 0.77...]])
はどのようにして、検索に対する最も類似した文書を取得するには、この結果を使用しますクエリ?基本的に私はWikipediaの検索バーを再作成しようとしています。検索クエリに基づいて、私はWikipediaから最も関連性の高い記事を返したいと思います。このシナリオでは、6つの記事(行)があり、検索クエリには3つの単語(列)が含まれています。
すべての結果を列に追加するか、すべての行を追加しますか?より大きな価値が最も関連性が高いのか、最も低い価値が最も関連性が高いのか?
私は実際にこのチュートリアルに従っています:http://pyevolve.sourceforge.net/wordpress/?p = 1589 ...元の記事と検索クエリの間にTF-IDF Vectorsを使用する方法。 – tabchas
重み付けスキームとしてtf-idfを使用している場合は、依然としてクエリを正規化するだけです。あなたのマトリックスには3つの用語が含まれています。これらの用語はすべてクエリに表示されます。クエリの生の周波数ベクトルは(1,1,1)である。 sqrt((1^2)+(1^2)+(1^2))= 1.73,1/1.73 = 0.57となる。したがって、クエリベクトルは(0.57,0.57,0.57)です。これで、クエリを別のドキュメントとして扱うことができます。この照会ベクトルといくつかの他の文書ベクトルとのコサイン類似度は、その内積である。最初の記事について:(.57 * .85)+(.57 * 0)+(.57 * .52))= 0.2964。すべての記事と最高得点でこれを繰り返します。 – verbsintransit
なので、ある種の分類器を訓練する必要はありませんか? – tabchas