2016-09-25 4 views
2

Wenn ich DocumentTermMatrix auf meinem Korpus verwende, wird es die Wörter kleingeschrieben. Ich möchte den Kamelfall bewahren. Wie mache ich es?R tm verhindert Kleinbuchstaben Konvertierung bei Verwendung von DocumentTermMatrix

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

Ich hätte gerne die Spaltennamen Hallo und Welt statt Hallo und Welt.

+0

Bedeutet das, dass Sie die Wörter "Hello" und "Hallo" als unterschiedlich behandeln wollen? Denn das bedeutet Erhaltungsfall. –

+0

Ja, das ist richtig. Ich möchte Hallo und Hallo als getrennt behandeln. –

Antwort

1

können Sie versuchen, den folgenden Hack:

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 

Reiniger Art und Weise, das gleiche zu tun:

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

Leider kann ich das nicht tun. Das obige Beispiel diente nur dazu, ein einfaches Beispiel zu geben. Ich muss in der Lage sein, dies zu tun, indem ich eine Art von Parameter an DocumentTermMatirx übergebe. –

+0

Aktualisierte den Code gemäß Ihrer Anforderung, ich denke, das ist, was Sie wollen. –

+0

Vielen Dank! Das hat funktioniert. –

0

capitalize Funktion in library(Hmisc) macht den Job für mich als Anfänger.

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 
Verwandte Themen