我正在计算两个dfm
对象的余弦相似度。一个是我的参考对象,其尺寸为5 x 4,728,而第二个dfm
是我的目标对象,尺寸为2,325,329 x 40,595。
我不明白的是为什么textstat_simil()
返回NA。我尝试重现“问题”,但到目前为止还没有运气。您可以在以下Dropbox链接中找到数据。请注意,目标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
任何想法?
您的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