R DocumentTermMatrix теряет результаты менее 100

Я пытаюсь передать корпус в DocumentTermMatrix (сокращенно DTM), чтобы получить частоты терминов, но я заметил, что DTM не сохраняет все термины, и я не знаю, почему! Проверьте это:

A<-c(" 95 94 89 91 90 102 103 100 101 98 99 97 110 108 109 106 107")
B<-c(" 95 94 89 91 90 102 103 100 101 98 99 97 110 108 109 106 107")
C<-Corpus(VectorSource(c(A,B)))
inspect(C)

>A corpus with 2 text documents
>
>The metadata consists of 2 tag-value pairs and a data frame
>Available tags are:
>  create_date creator 
>Available variables in the data frame are:
>  MetaID 
>
>[[1]]
> 95 94 89 91 90 102 103 100 101 98 99 97 110 108 109 106 107
>
>[[2]]
> 95 94 89 91 90 102 103 100 101 98 99 97 110 108 109 106 107

Все идет нормально.

Но теперь я пытаюсь ввести C в DTM, а он не выходит на другом конце! Видеть:

> dtm<-DocumentTermMatrix(C)
> colnames(dtm)
>[1] "100" "101" "102" "103" "106" "107" "108" "109" "110"

Где все результаты меньше 100? Или это как-то 2 символа? Я также пробовал:

dtm<-DocumentTermMatrix(C,control=list(c(1,Inf)))

а также

dtm<-TermDocumentMatrix(C,control=list(c(1,Inf)))

но безрезультатно. Что дает?


person Amit Kohli    schedule 24.06.2014    source источник


Ответы (1)


Если вы прочитаете ?TermDocumentMatrix страницу справки, то увидите, что дополнительные control= параметры перечислены на ?termFreq странице справки.

Существует параметр wordLengths, который фильтрует длину слов, используемых в матрице. По умолчанию он равен c(3,Inf), поэтому он исключает двухсимвольные слова. Попробуйте установить значение control=list(wordLengths=c(2,Inf), чтобы включить эти короткие слова. (Обратите внимание, что при передаче параметров управления вы должны назвать параметры в списке.)

person MrFlick    schedule 24.06.2014
comment
Ага... это решило проблему. Я ПРОВЕРИЛ ?DocumentTermMatrix, но в RStudio вообще ничего не говорится о длине слова! Есть ли способ получить более полную информацию о команде? - person Amit Kohli; 24.06.2014
comment
@AmitKohli Как я уже сказал, у ?DocumentTermMatrix есть описание, которое указывает на страницу ?termFreq. В R часто бывает, когда одна функция верхнего уровня вызывает функцию нижнего уровня не для того, чтобы повторять все параметры этой функции на странице справки, а просто для того, чтобы указать вам на эту страницу. Нужно просто прочитать все разделы и пройти по ссылкам. Тот факт, что вы вообще устанавливали значение control=, говорит мне, что вы, по крайней мере, были близки. - person MrFlick; 24.06.2014
comment
Я вижу это сейчас. Действительно, спасибо... Я не знал, что дополнительная информация спрятана в дополнительных ссылках! - person Amit Kohli; 24.06.2014