1

我正在使用 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”?我似乎从在线参考文档中得到了这个。

4

0 回答 0