Тм пакет: stemCompletion не работает
У меня есть простой код для анализа текста. Перед созданием DTM я применяю stemCompletion. Однако, результат этого - кое-что, что я не понимаю, делаю ли я это неправильно, или это единственный способ, которым он ведет себя.
Я ссылался на эту ссылку справки rmy: /questions/13164963/tekstovyij-majning-s-pomoschyu-tm-paketa-slovo-stemming
Проблема, которую я вижу здесь, заключается в том, что после остановки мой DTm сжимается и вообще не возвращает токены (возвращает 'content' 'meta')
Мой код и выводы:
texts <- c("i am member of the XYZ association",
"apply for our open associate position",
"xyz memorial lecture takes place on wednesday",
"vote for the most popular lecturer")
myCorpus <- Corpus(VectorSource(texts))
myCorpus <- tm_map(myCorpus, content_transformer(tolower))
myCorpus <- tm_map(myCorpus, removePunctuation)
myCorpus <- tm_map(myCorpus, removeNumbers)
removeURL <- function(x) gsub("http[[:alnum:]]*", "", x)
myCorpus <- tm_map(myCorpus, content_transformer(removeURL)) #??
myCorpusCopy <- myCorpus
myCorpus <- tm_map(myCorpus, stemDocument)
for (i in 1:4) {
cat(paste("[[", i, "]] ", sep = ""))
writeLines(as.character(myCorpus[[i]]))
}
Output:
[[1]] i am member of the xyz associ
[[2]] appli for our open associ posit
[[3]] xyz memori lectur take place on wednesday
[[4]] vote for the most popular lectur
myCorpus <- tm_map(myCorpus, stemCompletion, dictionary = myCorpusCopy)
for (i in 1:4) {
cat(paste("[[", i, "]] ", sep = ""))
writeLines(as.character(myCorpus[[i]]))
}
Output:
[[1]] content
meta
[[2]] content
meta
[[3]] content
meta
[[4]] content
meta
myCorpus <- tm_map(myCorpus, PlainTextDocument)
dtm <- DocumentTermMatrix(myCorpus, control = list(weighting = weightTf))
dtm
inspect(dtm)
Output:
> inspect(dtm)
<<DocumentTermMatrix (documents: 4, terms: 2)>>
Non-/sparse entries: 8/0
Sparsity : 0%
Maximal term length: 7
Weighting : term frequency (tf)
Terms
Docs content meta
character(0) 1 1
character(0) 1 1
character(0) 1 1
character(0) 1 1
Ожидаемый результат: для успешного запуска стемминга (как стеблдокумент, так и стеблпополнение) Я использую тм 0.6 пакет
1 ответ
Вы используете функцию неправильно. Вот как это работает:
texts <- c("i am member of the XYZ association",
"apply for our open associate position",
"xyz memorial lecture takes place on wednesday",
"vote for the most popular lecturer")
corp <- Corpus(VectorSource(texts))
tdm <- TermDocumentMatrix(corp, control = list(stemming = TRUE))
Terms(tdm)
# [1] "appli" "associ" "for" "lectur" "member" "memori" "most" "open"
# [9] "our" "place" "popular" "posit" "take" "the" "vote" "wednesday"
# [17] "xyz"
stemCompletion(Terms(tdm), corp)
# appli associ for lectur member memori most open
# "" "associate" "for" "lecture" "member" "memorial" "most" "open"
# our place popular posit take the vote wednesday
# "our" "place" "popular" "position" "takes" "the" "vote" "wednesday"
# xyz
# "xyz"