quanteda:2つのDFM間の行ごとにテキストの類似性を計算します

カルボ

コメントとメイン投稿の2つのテキストフィールドを持つデータフレームがあります

基本的にこれは構造です

         id  comment                        post_text
          1   "I think that blabla.."        "Why is blabla.."
          2   "Well, you should blabla.."    "okay, blabla.."
          3    ...

行1のコメントのテキストと行1のpost_textのテキストの類似性を計算し、これをすべての行に対して実行します。私の知る限り、2種類のテキスト用に別々のdfmオブジェクトを作成する必要があります

          corp1 <- corpus(r , text_field= "comment")
          corp2 <- corpus(r , text_field= "post_text")
          dfm1 <- dfm(corp1)
          dfm2 <- dfm(corp2)

最後に、私はこのようなものを取得したいと思います:

id  comment                     post_text          similarity
1   "I think that blabla.."     "Why is blabla.."  *similarity between comment1 and post_text1
2   "Well, you should blabla.." "okay, blabla.."  *similarity between comment2 and post_text2
3    ...

続行する方法がわかりません。これは、ドキュメント間のStackOverflowペアワイズ距離で見つかりましたが、行ごとの類似性が必要な間、dfm間の相互類似性を計算しています。

だから基本的に私が思ったのは次のことをすることでした:

      dtm <- rbind(dfm(corp1), dfm(corp2))
      d2 <- textstat_simil(dtm, method = "cosine", diag = TRUE)
      matrixsim<- as.matrix(d2)[docnames(corp1), docnames(corp2)]
      diagonale <- diag(matrixsim)

しかし、対角線は1 1 11のリストにすぎません。

この問題をどのように解決できるかについてのアイデアはありますか?よろしくお願いします。

カルロ

ケン・ブノワ

ドキュメントの単一の列を作成することでそれを行いますが、ドキュメントのタイプを示すdocnameを使用してそれらを区別します。

df <- data.frame(
  id = c(1, 2),
  comment = c(
    "I think that blabla..",
    "Well, you should blabla"
  ),
  post_text = c(
    "Why is blabla",
    "okay, blabla"
  ),
  stringsAsFactors = FALSE
)

# stack these into a single "document" column, plus a docvar
# identifying the document type
df <- tidyr::gather(df, "source", "text", -id)
df
##   id    source                    text
## 1  1   comment   I think that blabla..
## 2  2   comment Well, you should blabla
## 3  1 post_text           Why is blabla
## 4  2 post_text            okay, blabla

library("quanteda")
## Package version: 1.4.3
## Parallel computing: 2 of 12 threads used.
## See https://quanteda.io for tutorials and examples.
## 
## Attaching package: 'quanteda'
## The following object is masked from 'package:utils':
## 
##     View

corp <- corpus(df)
docnames(corp) <- paste(df$id, df$source, sep = "_")
dfm(corp) %>%
  textstat_simil()
##               1_comment   2_comment 1_post_text
## 2_comment   -0.39279220                        
## 1_post_text -0.14907120 -0.09759001            
## 2_post_text -0.14907120  0.29277002  0.11111111

これで、マトリックスサブセットを使用して必要なものを切り取ることができます。as.matrix()からの出力をtextstat_simil()行列に変換するために使用します。)

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

2つのテキストドキュメント間の類似性を計算する方法は?

分類Dev

テキスト間の類似性を計算するアルゴリズム

分類Dev

行の類似性のパーセンテージをペアごとに計算し、それを新しい列として追加します

分類Dev

Xとyの2つのカップル間の類似性を計算するためのベストプラクティスは何ですか

分類Dev

類似性のパーセンテージを計算するか、3つ以上のオブジェクト間の相関を計算します

分類Dev

ドキュメントのクラスターが与えられた場合、コーパスとクラスター間の類似性を計算します

分類Dev

単語リスト間の類似性を計算する

分類Dev

データフレームの行間の類似性を計算します(共通のカウント値)

分類Dev

Python-時間情報(インスタント、間隔)に基づいてアイテム間の類似性を計算します

分類Dev

JavaScriptで2つのリストの類似性を計算する方法

分類Dev

python-リストの単語間の正書法の類似性を計算します

分類Dev

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

分類Dev

2つのアレイ間の類似性を計算する方法は?

分類Dev

リストPythonを行列の類似性に計算する方法

分類Dev

2つのベクトルの各単語間のJaccard類似度を計算します

分類Dev

nltkを使用した2つの文/文字列/テキスト間の構文の類似性/距離

分類Dev

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

分類Dev

行ごとに2つのデータフレーム間の類似性を見つける

分類Dev

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

分類Dev

Javaの類似性について2つのテキストドキュメントを比較する

分類Dev

Prolog:類似性について2つのリストをテストする

分類Dev

同じ期間内にWMDを使用したテキストの類似性

分類Dev

日ごとに平均した2つの行の差を計算します

分類Dev

RapidMiner:ドキュメントの類似性を計算する

分類Dev

2 つのベクトル間の類似度を計算する

分類Dev

特徴ベクトルを使用して2つの画像間の類似度スコアを計算するにはどうすればよいですか?

分類Dev

forループとbreakまたはcontinueステートメントを使用して、非類似性の前に2つの読み取り文字列の類似性の数を識別します:python

分類Dev

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

分類Dev

リストの2つの辞書間の類似性を計算する最も効率的な方法は何ですか?

Related 関連記事

  1. 1

    2つのテキストドキュメント間の類似性を計算する方法は?

  2. 2

    テキスト間の類似性を計算するアルゴリズム

  3. 3

    行の類似性のパーセンテージをペアごとに計算し、それを新しい列として追加します

  4. 4

    Xとyの2つのカップル間の類似性を計算するためのベストプラクティスは何ですか

  5. 5

    類似性のパーセンテージを計算するか、3つ以上のオブジェクト間の相関を計算します

  6. 6

    ドキュメントのクラスターが与えられた場合、コーパスとクラスター間の類似性を計算します

  7. 7

    単語リスト間の類似性を計算する

  8. 8

    データフレームの行間の類似性を計算します(共通のカウント値)

  9. 9

    Python-時間情報(インスタント、間隔)に基づいてアイテム間の類似性を計算します

  10. 10

    JavaScriptで2つのリストの類似性を計算する方法

  11. 11

    python-リストの単語間の正書法の類似性を計算します

  12. 12

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

  13. 13

    2つのアレイ間の類似性を計算する方法は?

  14. 14

    リストPythonを行列の類似性に計算する方法

  15. 15

    2つのベクトルの各単語間のJaccard類似度を計算します

  16. 16

    nltkを使用した2つの文/文字列/テキスト間の構文の類似性/距離

  17. 17

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

  18. 18

    行ごとに2つのデータフレーム間の類似性を見つける

  19. 19

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

  20. 20

    Javaの類似性について2つのテキストドキュメントを比較する

  21. 21

    Prolog:類似性について2つのリストをテストする

  22. 22

    同じ期間内にWMDを使用したテキストの類似性

  23. 23

    日ごとに平均した2つの行の差を計算します

  24. 24

    RapidMiner:ドキュメントの類似性を計算する

  25. 25

    2 つのベクトル間の類似度を計算する

  26. 26

    特徴ベクトルを使用して2つの画像間の類似度スコアを計算するにはどうすればよいですか?

  27. 27

    forループとbreakまたはcontinueステートメントを使用して、非類似性の前に2つの読み取り文字列の類似性の数を識別します:python

  28. 28

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

  29. 29

    リストの2つの辞書間の類似性を計算する最も効率的な方法は何ですか?

ホットタグ

アーカイブ