Я использую пакет R quanteda (версия 1.4.3, система Windows), чтобы найти почти дословное повторное использование текста в нескольких документах. В конце я хочу сравнить относительное влияние исходных документов, плюс хочу иметь возможность отображать экземпляры почти дословных совпадений. До сих пор я делал следующее:
- собирать корпус из текстовых файлов
- преобразовывать его в предложения для сравнения
- разбивать его на токеныслова
- построить матрицу признаков документа из слов ngrams
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. Я прав, что это «include_docvars» в tokens (), но «use_docvars» в corpus_reshape ()? Я, кажется, получил это из справочных документов в Интернете.