2012-11-13 25 views
7

Tôi có hai sau DTM-s:R DocumentTermMatrix danh sách điều khiển không làm việc, âm thầm bỏ qua tham số chưa biết

dtm <- DocumentTermMatrix(t) 

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

Khi tôi thực hiện điều này, tôi thấy hai bằng DTM-s và nếu tôi mở dtmImproved, có các từ có 3 ký hiệu. Tại sao thông số minWordLength không hoạt động? Cảm ơn bạn!

> 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) 
+0

Hơn nữa, khi tôi thêm bất cứ điều gì vào "danh sách (...)" không có gì xảy ra, không có cảnh báo hoặc sth khác –

Trả lời

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

này giải quyết được vấn đề! Việc thiếu tài liệu thích hợp thực sự khiến tôi thất vọng (:

+1

Phiên bản nào của 'tm' bạn đang sử dụng. Trợ giúp cho 'TermDocumentMatrix' đặt ra các tùy chọn toàn cục và cung cấp một liên kết đến các tùy chọn cục bộ. 'minWordLength' không bao giờ được liệt kê như một tùy chọn, nhưng' wordLengths' được mô tả chi tiết. Các tài liệu xuất hiện tốt bằng văn bản và dễ làm theo. – mnel

+0

Vâng, đó là một trong đó đã giúp, tiếc là không thể tìm thấy bằng cách googling, nhưng nó giống như lỗi của tôi) –

+1

@mnel: nó âm thầm bỏ qua bất kỳ tham số nó không nhận ra, thậm chí ví dụ: '(control = list (bounds = list (c (0, Inf))))' thay vì '(control = list (bounds = list (global = c (0, Inf))))'. Đây là một nỗi đau lớn. Bạn có phát hiện nhãn bị thiếu 'toàn cầu' không? Tôi không ... – smci

0

Đọc mã nguồn của hàm wordcloud @ GitHub luôn là một ý tưởng hay. Đọc mã nguồn của hàm wordcloud @ GitHub, đây là nội dung của nó:
# Author : ianfellows
.....
if (min.freq> max (freq))
min.freq <-0

Vì vậy DocumentTermMatrix của bạn, trả lại một max (freq) < min.freq ràng buộc mà bạn đã đặt, nghĩa là các cụm từ không xuất hiện trong nhiều hơn giới hạn min.freq mà bạn đã đặt mà bạn đã đặt là

Hope this helps MJJ