Контрольный список R DocumentTermMatrix не работает, молча игнорирует неизвестные параметры

У меня есть два следующих DTM:

dtm <- DocumentTermMatrix(t)

dtmImproved <- DocumentTermMatrix(t, 
               control=list(minWordLength = 4, minDocFreq=5))

Когда я реализую это, я вижу два одинаковых DTM, и если я открою dtmImproved, там будут слова с 3 символами. Почему не работает параметр minWordLength? Благодарю вас!

> dtm
A document-term matrix (591 documents, 10533 terms)

Non-/sparse entries: 43058/6181945
Sparsity           : 99%
Maximal term length: 135 
Weighting          : term frequency (tf)
> dtmImproved
A document-term matrix (591 documents, 10533 terms)

Non-/sparse entries: 43058/6181945
Sparsity           : 99%
Maximal term length: 135 
Weighting          : term frequency (tf)

person Artem Sultan    schedule 13.11.2012    source источник
comment
Более того, когда я добавляю что-либо в список (...), ничего не происходит, никаких предупреждений или чего-то еще   -  person Artem Sultan    schedule 13.11.2012


Ответы (2)


dtmImproved <- DocumentTermMatrix(t, control=list(wordLengths=c(4, 15), 
                                   bounds = list(global = c(5,Inf))))

Это решает проблему! Отсутствие надлежащей документации меня действительно бесит (:

person Artem Sultan    schedule 13.11.2012
comment
Какую версию tm вы используете. Справка для TermDocumentMatrix описывает глобальные параметры и дает ссылку на локальные параметры. minWordLength никогда не указывается в качестве опции, но wordLengths подробно описывается. Документация выглядит хорошо написанной и простой для понимания. - person mnel; 14.11.2012
comment
Да, это то, что помогло, к сожалению, не смог найти в гугле, но это больше похоже на мою ошибку ) - person Artem Sultan; 14.11.2012
comment
@mnel: он молча игнорирует любой параметр, который не распознает, даже, например. (control=list( bounds=list(c(0,Inf))) ) вместо (control=list( bounds=list(global=c(0,Inf))) ). Это большая боль. Вы заметили недостающую метку «глобальный»? я не... - person smci; 27.06.2015

Всегда полезно прочитать исходный код, если он доступен. Прочтите исходный код wordcloud function@GitHub, вот что там написано:
# Автор: ianfellows
.....
if(min.freq > max(freq))
min .частота ‹- 0

Таким образом, ваша DocumentTermMatrix вернула установленную вами границу max(freq) ‹ min.freq, т. е. не одно из условий появилось в более чем вашей границе min.freq, которую вы установили.

Надеюсь, это поможет MJJ

person MJJ    schedule 08.07.2015