rtext-miningterm-document-matrix

The 'dictionary' parameter of TermDocumentMatrix does not work in R


Even though I added the keyword to 'dictionary' as below code, it doesn't extract from the sentence.

Sample code

library(tm)

data = c('a', 'a b', 'c')
keyword = c('a', 'b')

data = VectorSource(data)
corpus = VCorpus(data)
tdm = TermDocumentMatrix(corpus, control = list(dictionary = keyword))

Result of my code above

inspect(tdm)

<<TermDocumentMatrix (terms: 2, documents: 3)>>
Non-/sparse entries: 0/6
Sparsity           : 100%
Maximal term length: 1
Weighting          : term frequency (tf)
Sample             :
Docs
Terms 1 2 3
    a 0 0 0
    b 0 0 0

Normal result should be as follows:

Terms 1 2 3
    a 1 1 0
    b 0 1 0

Solution

  • You have to pass the minimum word length to termFreq control.

    tdm = TermDocumentMatrix(corpus, control = list(dictionary = keyword, wordLengths = c(1, Inf)))
    as.matrix(tdm)
    
         Docs
    Terms 1 2 3
        a 1 1 0
        b 0 1 0