findAssocs для нескольких терминов в R
В R я использовал[tm package][1]
для построения матрицы термодокументов из совокупности документов.
Моя цель - извлечь словосочетания извсе биграммы в терминах матрицы документов и возвращают для каждой из трех или нескольких лучших. Поэтому я ищу переменную, которая содержит все row.names из матрицы, поэтому функцияfindAssocs()
может сделать свою работу
Это мой код до сих пор:
library(tm)
library(RWeka)
txtData <- read.csv("file.csv", header = T, sep = ",")
txtCorpus <- Corpus(VectorSource(txtData$text))
...further preprocessing
#Tokenizer for n-grams and passed on to the term-document matrix constructor
BigramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min = 2, max = 2))
txtTdmBi <- TermDocumentMatrix(txtCorpus, control = list(tokenize = BigramTokenizer))
#term argument holds two words since the BigramTokenizer extracted all pairs from txtCorpus
findAssocs(txtTdmBi, "cat shop", 0.5)
cat cabi cat scratch ...
0.96 0.91
Я попытался определить переменную со всеми row.names изtxtTdmBi
и скормить егоfindAssocs()
функция. Однако со следующим результатом:
allRows <- c(row.names(txtTdmBi))
findAssocs(txtTdmBi, allRows, 0.5)
Error in which(x[term, ] > corlimit) : subscript out of bounds
In addition: Warning message:
In term == Terms(x) :
longer object length is not a multiple of shorter object length
Поскольку извлечение ассоциаций для термина, потраченного на несколько матриц терминов, уже объясненоВотЯ думаю, можно было бы найти ассоциации для нескольких терминов в одной матрице терминов-документов. Кроме как?
Я надеюсь, что кто-то может объяснить мне, как решить эту проблему. Заранее спасибо за любую поддержку.