Тм пакет: 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"
Другие вопросы по тегам