問題タブ [tf-idf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - 進化するデータ ストリームをクラスタ化する方法
データ ストリームとして読み取るテキスト ドキュメントを段階的にクラスター化したいのですが、問題があるようです。用語の重み付けオプションのほとんどは、TF-IDF をフィーチャの重みとして使用するベクトル空間モデルに基づいています。ただし、この場合、既存の属性のIDFは新しいデータポイントごとに変化するため、以前のクラスタリングは有効ではなくなり、固定次元の静的データを想定するCluStream、CURE、BIRCHなどの一般的なアルゴリズムは適用できません。これに関連する既存の研究に私をリダイレクトしたり、提案をしたりできますか? ありがとう !
search - tf-idf: それを使用すると、用語を共有する文書をそうでない文書よりも高く評価するのに役立ちますか?
Web サイトのカスタマイズされた検索機能に取り組んでいます。また、tf-idf のみを使用してコーパス内のドキュメントをランク付けすることで、検索語が 1 つだけのドキュメントよりも複数の検索語を含むドキュメントを重み付けするのにも役立つかどうかに興味がありました。
例: Search = "poland spring water" 理論的には、ドキュメントに「poland」が 100 回含まれ、「water」が 0 回含まれている場合、上記のクエリは (従来の tf-idf を使用して) ドキュメントの重み付けを高くします。あるいは、「ポーランド」が 10 回、「水」が 10 回含まれていると、ドキュメントの重さは重くなります。
すべてが「ポーランド」と「水」の tf-idf 値に依存することは承知していますが、理論的には公平な条件で、複数の用語が含まれている場合、アルゴリズムはドキュメントを結果の一番上に表示するのに役立ちますか?ドキュメント、またはそれは本当に用語に依存していませんか?
search - solr/lucene スコアを正規化するにはどうすればよいですか?
solr 検索結果のスコアリングを改善する方法を考え出そうとしています。私のアプリケーションは、solr の結果からスコアを取得し、クエリに対する結果の良さに応じて、いくつかの「星」を表示する必要があります。星 5 個 = 星 0 個までのほぼ/正確な値は、検索にあまり一致しないことを意味します。たとえば、1 つの要素しかヒットしません。しかし、私は 1.4 から 0.8660254 までのスコアを取得しており、どちらも 5 つ星を与える結果を返しています。私がする必要があるのは、これらの結果をパーセンテージに変換して、正しい数の星でこれらの結果をマークできるようにすることです.
1.4 スコアを得るために実行したクエリは次のとおりです。
euallowed:true AND(グレード:"2:1")
0.8660254 スコアを与えるクエリは次のとおりです。
euallowed:true AND(グレード:"2:1" OR グレード:"1st")
ドキュメント内の用語の数ではなく、ドキュメントに用語がある場合にのみ関心があるため、tf と idf が 1.0 を返すように、Similarity を既に更新しました。これは私の類似コードがどのように見えるかです:
だから私は私の質問は次のとおりだと思います:
「星」の数を計算できるように、スコアを正規化するにはどうすればよいですか?
結果を採点する別の方法はありますか?
ありがとう
許す
r - Rを使用したテキスト検索
私はRのテキストマイニングパッケージとその本当に素晴らしいツールを使用してきました。検索サポートが見つからないか、不足している機能がある可能性があります。Rのテキストマイニングパッケージを使用して、単純なVSMモデルをどのように実装できますか?
php - TF を計算するために、結果のドキュメントの単語数を返すにはどうすればよいですか
私は非常に限られた時間で基本的なテキスト ファイル検索エンジンを PHP で作成するという課題を課されました。これまでのプログラミングの知識はほとんどまたはまったくなく、かなりの作業でした。
これまでのところ、単語の出現回数が最も多いドキュメントを返すことができます。
問題は、TF-IDF スコアを計算できない (少なくとも簡単ではない) 方法です。IDF は完了しましたが、返されたドキュメント内の単語の総数を取得して TF を計算する必要があり、これに問題があります。もう 1 つの問題は、最も高いドキュメントのみが返されることです。ドキュメントのリストとそれぞれのスコアを返すことはできません。つまり、1 つのドキュメントには「airline」という単語が 3 回含まれており、他の 2 つのドキュメントには 1 回含まれています。それらは忘れられ、最初のものだけが返されます...
(シンボルの削除にもいくつかの問題がありましたが、引き出された方法ではありますが、それを回避しました...)
これが私たちが持っているものです:
terminology - ドキュメント内のテキスト頻度とコーパス内の頻度の比較
文字、バイグラム、単語などの項目についてドキュメントを分析し、ドキュメント内でのそれらの頻度と、ドキュメントの大規模なコーパスでの頻度を比較したいと考えています。
「if」、「and」、「the」などの単語はすべてのドキュメントで共通ですが、一部の単語はこのドキュメントではコーパスの典型よりもはるかに一般的です。
これはかなり標準的なはずです。それはなんと呼ばれていますか?明白な方法でそれを行うと、文書内の新しい単語に常に問題がありましたが、コーパスの評価では無限に重要ではありませんでした。これはどのように処理されますか?
java - Java オブジェクトからデータを抽出するにはどうすればよいですか?
私は C プログラマーで、現在は Java に移行しています。CプログラムをJavaプログラムに変換しようとしています。C プログラムは、単純に用語頻度と逆文書頻度 ( tf/idf ) を計算します。
1 つのデータ クラスを作成しました
このクラスは、ファイル名、ファイル テキスト、および値 (tf 値または idf 値) を格納します。
次のクラスは、データを格納する責任があります。
マップを印刷すると、奇妙な値が表示されます。私は、データクラスの配列を宣言する必要があると思いますか? ファイルの数がわからないため、静的配列番号を入れることはできません。
また、このデータ構造に基づいて TF と IDF を計算するにはどうすればよいですか?
C プログラムでは、単純にファイルを読み取り、単語を合計単語数で割って TF を取得し、単語をすべてのファイル内のその単語の合計出現回数で割って IDF を取得します。上記のデータ構造を使用してそれを行う方法がわかりません。
私は奇妙な値を取得します。多分これらはオブジェクトです:
getFileName
etc. 関数を使用して Data クラスから特定の値を取得する方法はありますか?
information-retrieval - IDF を使用しない場所は?
Inverse Document Frequency が情報検索に役立たないのはどのような場合ですか?
lucene - Lucene。term-docマトリックスを作成する方法
その行列を作成する必要がありますが、各セルの正規化されたtf-idfを計算する方法が見つかりません。私が実行する正規化は、 1 / sqrt(列のsumOfSquaredtf-idf)ごとにtf-idf( DefaultSimilarityを使用して計算)を除算する正弦正規化です。
誰かがそれを実行する方法を知っていますか?
よろしくお願いします
アントニオ
information-retrieval - 複数のドキュメントで IDF が異なるのはなぜですか?
LETORを使って情報検索システムを作っています。TF と IDF を使用します。TFはクエリに依存していると確信しています。しかし、IDF はする必要がありますが、:
「IDF はドキュメントに依存しないため、クエリの下のすべてのドキュメントは同じ IDF 値を持つことに注意してください。」
しかし、IDF は機能リストの一部であるため、これは意味がありません。各ドキュメントの IDF はどのように計算されますか?