首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解说问题: Textstat_similarity泉泰达

解说问题: Textstat_similarity泉泰达
EN

Stack Overflow用户
提问于 2020-07-19 12:31:04
回答 1查看 88关注 0票数 0

我有一个310,225条推特的数据集。我想知道有多少推文是相同或相似的。我用全德达的文本统计频率计算了推文之间的相似性。我发现相似度矩阵中距离1和0.9999的频率如下:

代码语言:javascript
复制
0.9999            1 
 2288           162743 

这是我的密码:

代码语言:javascript
复制
dfmat_users <- dfm_data %>% 
dfm_select(min_nchar = 2) %>% 
dfm_trim(min_termfreq = 10) 

dfmat_users <- dfmat_users[ntoken(dfmat_users) > 10,]

tstat_sim <- textstat_simil(dfmat_users, method = "cosine", margin = "documents", min_simil = 0.9998)

table(tstat_sim@x) #result of this code is given above.

我需要找出数据集中的相似或相同的tweet的数量。我应该如何解释上面的结果?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-19 20:40:57

最简单的方法是将textstat_simil()输出转换为唯一对的data.frame,然后过滤余弦值超过阈值的data.frame(这里是.9999)。

为了说明这一点,我们可以将内置的就职演说语料库重组为句子,然后计算这些句子上的相似度矩阵,然后对data.frame进行强制,并使用dplyr来过滤所需的结果。

代码语言:javascript
复制
library("quanteda", warn.conflicts = FALSE)
## Package version: 2.1.0.9000
## Parallel computing: 2 of 8 threads used.
## See https://quanteda.io for tutorials and examples.

sim_df <- data_corpus_inaugural %>%
  corpus_reshape(to = "sentences") %>%
  dfm() %>%
  textstat_simil(method = "cosine") %>%
  as.data.frame()

nrow(sim_df)
## [1] 12508670

您可以为您的数据调整下面的条件为0.9999 -这里我用0.99作为一个例子。

代码语言:javascript
复制
library("dplyr", warn.conflicts = FALSE)
filter(sim_df, cosine > .99)
##            document1       document2 cosine
## 1    1861-Lincoln.69 1861-Lincoln.71      1
## 2    1861-Lincoln.69 1861-Lincoln.73      1
## 3    1861-Lincoln.71 1861-Lincoln.73      1
## 4  1953-Eisenhower.6   1985-Reagan.6      1
## 5  1953-Eisenhower.6    1989-Bush.15      1
## 6      1985-Reagan.6    1989-Bush.15      1
## 7      1989-Bush.140  2009-Obama.108      1
## 8      1989-Bush.140   2013-Obama.87      1
## 9     2009-Obama.108   2013-Obama.87      1
## 10     1989-Bush.140    2017-Trump.9      1
## 11    2009-Obama.108    2017-Trump.9      1
## 12     2013-Obama.87    2017-Trump.9      1

(是的,这是1250万个句子对间余弦相似度的非常快速的计算!)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62980321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档