我正在使用 R quanteda 包(版本 1.4.3,windows 系统)在几个文档中找到几乎逐字的文本重用。最后,我想比较源文档的相对影响,另外我希望能够显示接近逐字匹配的实例。到目前为止,我一直在做的是:
- 从文本文件构建语料库
- 将其重新塑造成要比较的句子
- 将其标记为单词
- 从单词 ngram 构建文档特征矩阵
library(magrittr)
library(readtext)
library(quanteda)
corpus <- readtext("data/*.txt",
docvarsfrom = "filenames",
dvsep = "_-_",
docvarnames = c("country"),
encoding = "UTF-8"
) %>%
corpus()
sentences <- corpus_reshape(corpus,
to = "sentences",
use_docvars = TRUE
)
mytokens <- tokens(sentences,
what = "word",
include_docvars = TRUE
) %>%
tokens_ngrams(n = 3:5)
mydfm <- dfm(mytokens, tolower = TRUE)
检查结果,到目前为止,它们似乎还不错。
但是,当我尝试从目标文本中计算“文档”(即句子)与“文档”的相似度时,出现错误:
simil <- textstat_simil(mydfm,
dfm_subset(mydfm, country == "USA"),
margin = "documents",
method = "simple matching"
)
Error in selection[is.na(i)] :
invalid or not-yet-implemented 'Matrix' subsetting
- 我怎样才能避免这个错误?
- 我一开始就采取了好的方法吗?
PS。我是对的,它是 tokens() 中的“include_docvars”,而 corpus_reshape() 中的“use_docvars”?我似乎从在线参考文档中得到了这个。