類似性スコアは、doc2vec埋め込みを使用するとかなり離れています

Bitswazsky

最近作成したNY-Timesコーパスでドキュメントの重複排除を試しています金融詐欺に関連するデータが含まれています。

まず、記事のスニペットをTaggedDocumentオブジェクトのリストに変換します。

nlp = spacy.load("en_core_web_sm")

def create_tagged_doc(doc, nlp):        
    toks = nlp(doc)
    lemmatized_toks = [tok.lemma_ for tok in toks if not tok.is_stop]
    return lemmatized_toks

df_fraud = pd.read_csv('...local_path...')
df_fraud_list = df_fraud['snippet'].to_list()
documents = [TaggedDocument(create_tagged_doc(doc, nlp), [i]) for i, doc in enumerate(df_fraud_list)]

サンプルTaggedDocumentは次のようになります。

TaggedDocument(words=['Chicago', 'woman', 'fall', 'mortgage', 'payment', 
'victim', 'common', 'fraud', 'know', 'equity', 'strip', '.'], tags=[1])

次に、Doc2Vecモデルをコンパイルしてトレーニングします。

cores = multiprocessing.cpu_count()
model_dbow = Doc2Vec(dm=0, vector_size=100, negative=5, hs=0, min_count=2, sample = 0, workers=cores)
model_dbow.build_vocab(documents)
model_dbow.train(documents, 
                total_examples=model_dbow.corpus_count, 
                epochs=model_dbow.epochs)

コサイン類似度を定義しましょう:

cosine_sim = lambda x, y: np.inner(x, y) / (norm(x) * norm(y))

さて、問題は、ほぼ類似している2つの文を定義し、それらのコサイン類似性スコアを取得すると、非常に低くなることです。例えば

a = model_dbow.infer_vector(create_tagged_doc('That was a fradulent transaction.', nlp))
b = model_dbow.infer_vector(create_tagged_doc('That transaction was fradulant.', nlp))

print(cosine_sim(a, b)) # 0.07102317

念のため、まったく同じベクトルを繰り返して確認しましたが、これは適切です。

a = model_dbow.infer_vector(create_tagged_doc('That was a fradulent transaction.', nlp))
b = model_dbow.infer_vector(create_tagged_doc('That was a fradulent transaction.', nlp))

print(cosine_sim(a, b)) # 0.9980062

ここで何が問題になっていますか?

Bitswazsky

エポック数の問題のようです。エポック数を指定せずにDoc2Vecインスタンスを作成する場合、たとえばmodel_dbow = Doc2Vec(dm=0, vector_size=100, negative=5, hs=0, min_count=2, sample = 0, workers=cores)、デフォルトでは5に設定されています。どうやらそれは私のコーパスにとって十分ではありませんでした。エポックを50に設定し、モデルを再トレーニングしました。機能した。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

doc2vecモデルを使用して、ドキュメントと比較した1つの単語またはいくつかの単語の類似性を計算するにはどうすればよいですか?

分類Dev

Gensim Doc2vecモデル:事前にトレーニングされたdoc2vecモデルを使用して取得されたコーパスの類似性を計算する方法は?

分類Dev

Doc2Vecを使用して2つのドキュメント間の類似性を測定します

分類Dev

Doc2Vecとの類似性

分類Dev

BERTからの埋め込みを使用して文の類似性を比較する方法

分類Dev

Python word2vec、doc2vecを使用して2つのドキュメント間の類似性を計算する

分類Dev

doc2vec埋め込みをトレーニングするための学習曲線を作成する

分類Dev

word2vecのようなdoc2vecとの類似性を見つける

分類Dev

gensim doc2vec埋め込みを別のファイルにエクスポートして、後でkeras埋め込みレイヤーで使用します

分類Dev

gensim doc2vec埋め込みを別のファイルにエクスポートして、後でkeras埋め込みレイヤーで使用します

分類Dev

すべてのモデルで使用されるとは限らないことがわかっている個別のコレクションまたは埋め込みフィールドを使用する必要があります。MongoDB

分類Dev

gensimでDoc2vecをトレーニングするためにマルチコアCPUを効率的に使用することはできません

分類Dev

Pythonでの2つの辞書の類似性に基づいて「類似スコア」を返しますか?

分類Dev

gensimライブラリを使用したdoc2vecによる不正確な類似性の結果

分類Dev

discord.pyを使用して、埋め込みを読み取り、埋め込みの一部を変数として保存する方法はありますか?

分類Dev

Doc2Vec:コード化されたドキュメントと見えないドキュメントの類似性

分類Dev

dbow_wordsが1または0に設定されている場合、doc2vecモデル間で何が異なりますか?

分類Dev

PHPを使用してPHPエコーに埋め込まれているHTML要素にアクセスするにはどうすればよいですか?

分類Dev

Gensim doc2vecモデルをプレーンテキスト(.txt)として保存する方法はありますか?

分類Dev

Doc2Vecは感情分析に適していますか?

分類Dev

コマンドを使用して埋め込み画像を送信する方法はありますか?

分類Dev

私のiOSアプリとWatchKitアプリは完全にSwiftです。「埋め込みコンテンツにSwiftが含まれています」を変更する必要がありますか?

分類Dev

doc2vecとのドキュメントの類似性

分類Dev

言語機能(Sense2Vecなど)を使用した単語の埋め込みが使用されないのはなぜですか?

分類Dev

gensim word2vecまたはdoc2vecを使用してvocaburayを2回ビルドできますか?

分類Dev

gensim word2vecの出力埋め込み(出力ベクトル)にアクセスするにはどうすればよいですか?

分類Dev

ウィンドウ分類でTensorflowを使用すると、埋め込みベクトルが更新されない

分類Dev

製品レビューを分析するとき、Doc2VecとWord2Vecの間で何を使用する必要がありますか?

分類Dev

text2vec単語の埋め込み:すべてではないがいくつかのトークンを合成する

Related 関連記事

  1. 1

    doc2vecモデルを使用して、ドキュメントと比較した1つの単語またはいくつかの単語の類似性を計算するにはどうすればよいですか?

  2. 2

    Gensim Doc2vecモデル:事前にトレーニングされたdoc2vecモデルを使用して取得されたコーパスの類似性を計算する方法は?

  3. 3

    Doc2Vecを使用して2つのドキュメント間の類似性を測定します

  4. 4

    Doc2Vecとの類似性

  5. 5

    BERTからの埋め込みを使用して文の類似性を比較する方法

  6. 6

    Python word2vec、doc2vecを使用して2つのドキュメント間の類似性を計算する

  7. 7

    doc2vec埋め込みをトレーニングするための学習曲線を作成する

  8. 8

    word2vecのようなdoc2vecとの類似性を見つける

  9. 9

    gensim doc2vec埋め込みを別のファイルにエクスポートして、後でkeras埋め込みレイヤーで使用します

  10. 10

    gensim doc2vec埋め込みを別のファイルにエクスポートして、後でkeras埋め込みレイヤーで使用します

  11. 11

    すべてのモデルで使用されるとは限らないことがわかっている個別のコレクションまたは埋め込みフィールドを使用する必要があります。MongoDB

  12. 12

    gensimでDoc2vecをトレーニングするためにマルチコアCPUを効率的に使用することはできません

  13. 13

    Pythonでの2つの辞書の類似性に基づいて「類似スコア」を返しますか?

  14. 14

    gensimライブラリを使用したdoc2vecによる不正確な類似性の結果

  15. 15

    discord.pyを使用して、埋め込みを読み取り、埋め込みの一部を変数として保存する方法はありますか?

  16. 16

    Doc2Vec:コード化されたドキュメントと見えないドキュメントの類似性

  17. 17

    dbow_wordsが1または0に設定されている場合、doc2vecモデル間で何が異なりますか?

  18. 18

    PHPを使用してPHPエコーに埋め込まれているHTML要素にアクセスするにはどうすればよいですか?

  19. 19

    Gensim doc2vecモデルをプレーンテキスト(.txt)として保存する方法はありますか?

  20. 20

    Doc2Vecは感情分析に適していますか?

  21. 21

    コマンドを使用して埋め込み画像を送信する方法はありますか?

  22. 22

    私のiOSアプリとWatchKitアプリは完全にSwiftです。「埋め込みコンテンツにSwiftが含まれています」を変更する必要がありますか?

  23. 23

    doc2vecとのドキュメントの類似性

  24. 24

    言語機能(Sense2Vecなど)を使用した単語の埋め込みが使用されないのはなぜですか?

  25. 25

    gensim word2vecまたはdoc2vecを使用してvocaburayを2回ビルドできますか?

  26. 26

    gensim word2vecの出力埋め込み(出力ベクトル)にアクセスするにはどうすればよいですか?

  27. 27

    ウィンドウ分類でTensorflowを使用すると、埋め込みベクトルが更新されない

  28. 28

    製品レビューを分析するとき、Doc2VecとWord2Vecの間で何を使用する必要がありますか?

  29. 29

    text2vec単語の埋め込み:すべてではないがいくつかのトークンを合成する

ホットタグ

アーカイブ