为什么带方法“ cosine”的textstat_simil()返回NA

问题描述 投票:2回答:1

我正在计算两个dfm对象的余弦相似度。一个是我的参考对象,其尺寸为5 x 4,728,而第二个dfm是我的目标对象,尺寸为2,325,329 x 40,595。

我不明白的是为什么textstat_simil()返回NA。我尝试重现“问题”,但到目前为止还没有运气。您可以在以下Dropbox链接中找到数据。请注意,目标dfm仅包含第一个文档。

  1. Reference dfm
  2. Target dfm

这是我正在使用的代码。 dfm_match()扩充了我的参考dfm以匹配目标对象的特征数量。

library(quanteda)

# make sure you load the two required dfms

reference_dfm = dfm_match(reference_dfm, featnames(target_dfm))
textstat_simil( target_dfm, reference_dfm, method = "cosine")

#> textstat_simil object; method = "cosine"
#>         negative slightly_negative neutral slightly_positive positive
#> text1.1       NA                NA      NA                NA       NA

任何想法?

r cosine-similarity quanteda
1个回答
0
投票

您的target_dfm完全稀疏(全0)。

target_df <- convert(target_dfm, "data.frame")
sum(target_df[,2:ncol(target_df)] > 0)
#> 0

您还可以注意到,当您打印dfm进行控制台显示时,它表示“ 100.0%稀疏”。这里是dfm 1稀疏值,计算有效。

test_dfm <- dfm(corpus("adds"))
test_dfm <- dfm_match(test_dfm, featnames(target_dfm))
textstat_simil(test_dfm, reference_dfm2, method = "cosine")
#> textstat_simil object; method = "cosine"
#>         negative slightly_negative neutral slightly_positive positive
#> text1.1        0                 0       0                 0        0
© www.soinside.com 2019 - 2024. All rights reserved.