2016-09-25 44 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