2016-09-25 45 views
2

當我在我的語料庫上使用DocumentTermMatrix時,它會降低字數。我想保留駱駝案件。我該怎麼做?使用DocumentTermMatrix時,R tm防止小寫轉換

as.matrix(DocumentTermMatrix(Corpus(VectorSource(c("Hello", "World"))))) 

我想列名是Hello和World,而不是hello和world。

+0

這是否意味着您想將單詞「你好」和「你好」分開處理?因爲這是保存案例所暗示的。 –

+0

是的,這是正確的。我想把你好和你好分開。 –

回答

1

你可以試試下面的技巧:

words <- c("Hello", "World") 
tdm <- as.data.frame(as.matrix(DocumentTermMatrix(Corpus(VectorSource(words))))) 
names(tdm) <- sort(words) # need to sort alphabetically 
tdm 
# Hello World 
#1  1  0 
#2  0  1 

更清潔的方式做同樣的:

words <- c("Hello", "World") 
tdm <- as.data.frame(as.matrix(DocumentTermMatrix(Corpus(VectorSource(factor(words))), 
                 control=list(tolower=FALSE)))) 
tdm 
# Hello World 
#1  1  0 
#2  0  1 
+0

不幸的是,我不能那樣做。上面的例子只是提供一個簡單的例子。我需要能夠通過將某種參數傳遞給DocumentTermMatirx來完成此操作。 –

+0

根據您的要求更新了代碼,我認爲這是您想要的。 –

+0

謝謝!這工作。 –

0

capitalize功能library(Hmisc)做這項工作,我作爲一個初學者。

library(Hmisc) 

terms <- as.matrix(DocumentTermMatrix(Corpus(VectorSource(c("Hello", "World"))))) 

colnames(terms) <- capitalize(colnames(terms)) 

terms 

    Terms 
Docs Hello World 
    1  1  0 
    2  0  1