問題タブ [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.

0 投票する
2 に答える
502 参照

java - GAE で「逆ドキュメント頻度」を実装するための提案はありますか?

Google アプリ エンジンで「逆ドキュメント頻度」を実装する必要があります。効率を改善するための提案を探しています。今、私は基本的なルーチンを

Webページを解析するとき、次のように各ペアをデータストアに保存します

後でIDFを計算するとき、データストアからフレーズの出現をフェッチします。

ただし、速度は満足のいくものではなく、30 秒のタイムアウトが頻繁に発生します。このシナリオでは、追加の課題があります。

-多言語入力(ウェブページ)。そのため、フレーズも異なる言語で書かれているため、キャッシュするのが難しくなっています。

- Web ページやランキング フレーズの解析にも時間がかかります。全体のプロセスは、charset_detect -> language_detect -> 異なる言語による解析 -> ランキングのようなものです。

GAE では常に有効になっています。

提案をお待ちしております!前もって感謝します!

0 投票する
6 に答える
60792 参照

information-retrieval - コサイン類似度とtf-idf

TF-IDFコサイン類似性についての次のコメントに混乱しています。

私は両方を読んでいて、ウィキのコサイン類似性の下でこの文を見つけました。「情報検索の場合、2つのドキュメントのコサイン類似性は0から1の範囲になります。これは、用語の頻度(tf-idfの重み)が負。2つの項の頻度ベクトル間の角度は90を超えることはできません。」

今、私は疑問に思っています....彼らは2つの異なるものではありませんか?

tf-idfはすでにコサイン類似性の中にありますか?もしそうなら、一体何なのか-私は内側の内積とユークリッドの長さしか見ることができません。

tf-idfは、テキストでコサイン類似性を実行する前にできることだと思いました。私は何か見落としてますか?

0 投票する
1 に答える
2683 参照

bayesian - Naive Bayes を使用して TF_IDF 機能の重み付けを実装する方法

感情分析のために単純ベイズ分類器を実装しようとしています。TF-IDF 重み付けメジャーを使用する予定です。私は今ちょっと立ち往生しています。NB は通常、単語 (機能) の頻度を使用して最尤法を見つけます。では、ナイーブ ベイズに TF-IDF 重み付け測定を導入するにはどうすればよいでしょうか。

0 投票する
2 に答える
1080 参照

cluster-analysis - ベクトル空間モデルで表現された類似文書を返すためのアルゴリズム

約 30,000 ドキュメントの tf-idf ベクトルを含む DB があります。

特定のドキュメントに対して、類似したドキュメントのセット (約 4 つ) を返したいと考えています。

データに K-Means (クラスタリング アルゴリズム) を (コサイン類似度を使用して) 実装することを考えましたが、多くの不確実性があるため、それが最良の選択であるかどうかはわかりません。作成するクラスターの数がわからない、クラスターのバランスが崩れすぎるのではないかと心配している、結果の品質が良いかどうかわからない、など。

経験豊富なユーザーからのアドバイスやヘルプは大歓迎です。

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

ケイティ

0 投票する
1 に答える
1816 参照

perl - Perl における N-Gram、tf-idf、および Cosine の類似性

各行の複数の単語でパターン「マイニング」を実行しようとしています。Perl の Text::Ngrams モジュールを使用して N-gram 分析を行いました。これにより、各単語の頻度がわかります。しかし、私はこのテキストでパターンを見つけることについてかなり混乱しています.

tf-idf も頻度を見つけますが、これは私が行った Ngram 分析とどのように異なり、類似度の測定もどのように役立ちますか。

この概念の一部を理解できるようになる perl モジュールまたはコードのスニペットはありますか?

私は物理学のバックグラウンドを持っていますが、いくつかのパターン認識を行う必要があるため、これらのいくつかに少し慣れていないため、このトピックに関する良いリファレンスをいただければ幸いです。

0 投票する
0 に答える
1330 参照

tf-idf - TF-IDF 重みを使用して関連性をランク付けするにはどうすればよいですか?

キー タームのセットがあり、TF-IDF の重みを、各タームのタグ頻度とターム カウントと共に計算し、データベースに保存しました。

これらの DB 値を使用して、単一の用語が与えられた場合に関連する用語のセットを生成するにはどうすればよいですか?

私は TF-IDF のウィキペディアのページを読み、コサインの類似性や n-gram アルゴリズムなどに関係する多くの Google 検索結果を消費しました。私の得意分野は、線形代数、IR、または微積分ではありません。そのため、これらのドキュメントを理解するのに苦労しています。

TF-IDF の重みと関連性との関係について知りたいです。これらの値をランク付けする方法はありますか? 事前定義された用語の重みに関連してそれらをランク付けする必要がありますか?

これらの番号を取得した後、これらの番号をどのように使用できますか?

0 投票する
2 に答える
5074 参照

python - Python と tfidf アルゴリズム、高速化しますか?

Python を使用して Web アプリケーションにtf-idfアルゴリズムを実装していますが、動作が非常に遅くなります。私が基本的にしていることは次のとおりです。

1) 2 つの辞書を作成します。

  • 最初の辞書: キー (ドキュメント ID)、値 (ドキュメント内で見つかったすべての単語 (繰り返しを含む) のリスト)
  • 2 番目の辞書。キー (ドキュメント ID)、値 (ドキュメントの一意の単語を含むセット)

ここで、ドキュメント d の tfidf 結果を取得するようユーザーから請願があります。私がすることは:

2) ドキュメント d の 2 番目の辞書の一意の単語をループし、一意の単語 w ごとに次を取得します。

2.1) tf スコア (d に w が出現する回数: ドキュメントの最初の辞書の単語のリストをループ)

2.2) df スコア (w を含むドキュメントの数: すべてのドキュメント (2 番目の辞書) の単語のセットをループし、w が含まれているかどうかを確認します)。リストと比較して、セットに単語が含まれているかどうかを確認する方が速いように見えるため、セットを使用しています。

ステップ 2.2 は非常に遅いです。たとえば、1000 個のドキュメントがあり、2313 個の一意の単語を含むドキュメントの場合、結果を出力するのに約 5 分かかります。

ステップ 2.2 を高速化する他の方法はありますか? 反復処理が遅い辞書はありますか?

0 投票する
1 に答える
2005 参照

lucene - Lucene のクエリとドキュメント間のコサイン類似度

長いクエリとコレクション内のドキュメントの間のコサイン類似度を取得したかったのです。Lucence を使用してコレクションのインデックスを作成し、クエリを送信してドキュメントを取得しています。

ただし、一部のクエリで次のエラーが発生します。

重みを上げるために、クエリ内のいくつかの用語を複製しました。しかし、lucene は、ドキュメントとクエリの両方に tf-idf を使用してコサイン類似度を計算する代わりに、単純なブール検索を行っているようです。

誰でもこれを確認できますか?

0 投票する
1 に答える
1638 参照

java - WEKA-Javaからの新しいデータの分類-IDF変換

Javaプログラム内からWEKA分類子を実装しようとしています。これまでのところ、すべてがうまく機能していますが、Weka GUIのトレーニングセットから分類器を構築する場合、分類の精度を向上させるためにStringToWordVectorIDF変換を使用しました。

新しいインスタンスのJava内から、インスタンスを分類子に渡す前に、新しいインスタンスの各トークン値に設定するIDF変換を計算するにはどうすればよいですか?

基本的なコードは次のようになります。

では、分類したい新しいインスタンスに正しい値を入れるように、これをコーディングするにはどうすればよいですか?

明確にするために、行をIDF変換番号にinst.setValue(unlabeled.attribute(tmp), 1.0);変更する必要があります...1.0

0 投票する
1 に答える
500 参照

text - すべてのドキュメントと比較して上位の単語を見つける

100.000 以上のテキスト ドキュメントがあります。この(ややあいまいな)質問に答える方法を見つけたいと思います:

ドキュメントの特定のサブセットについて、ドキュメントの完全なセットに関連するn 個の最も頻繁な単語は?

トレンドを提示したいと思います。「これらは、特定の日付範囲で特にホットなトピックです」のようなものを示すワード クラウド。(はい、これは単純化しすぎていることは承知しています: 単語 != トピックなど)

すべてのドキュメントのすべての単語の tf-idf値のようなものを計算してから、いくつかの計算を行うことができるようですが、ここで車輪を再発明したくありません。

ドキュメントのインデックス作成にLuceneまたはSolrを使用する予定です。彼らはこの質問に私を助けてくれますか - どのように? または、追加または代わりに他のツールをお勧めしますか?