2016-05-19 4 views
0

Hier sind die Dinge, die ich auf meinem Korpus tat -Wie man verrückte Zeichen wie 002 ÿþ | | "â from von Text in R entfernen?

CorpusX = tm_map(CorpusX, content_transformer(tolower)) 
CorpusX = tm_map(CorpusX, removeWords, c("X", stopwords("english"))) 
CorpusX = tm_map(CorpusX, removePunctuation) 
CorpusX = tm_map(CorpusX, stripWhitespace) 
CorpusX = tm_map(CorpusX, removeNumbers) 
CorpusX = tm_map(CorpusX, stemDocument) 

CorpusX = tm_map(CorpusX, PlainTextDocument) 

Danach ich ein Dokument-Begriff-Matrix hergestellt und dann Wortwolke. Wenn ich durch diesen Fluss gehe und keine Versuche mache, die Zeichen wie die in der Frage erwähnten zu entfernen, funktioniert alles gut. Aber wenn ich versuche, diese Zeichen zu entfernen, bekomme ich Fehler wie unten -

>Error in UseMethod("TermDocumentMatrix", x) : no applicable method 
> for 'TermDocumentMatrix' applied to an object of class 
> "c('DocumentTermMatrix', 'simple_triplet_matrix')" 

ich für eine effiziente Methode suchen mit solchen Zeichen zu behandeln.

PS- Ich habe die Beschreibung der Frage komplett geändert, weil die Leute verwirrt wurden (meine Schuld). Danke für die Hilfe!

+0

Die Fehlermeldung scheint etwas anderes zu sagen, nämlich, dass das Objekt in die falsche Klasse hat ... – Frank

+0

Eigentlich mit ich beide (dtm und TDM-) versucht, aber der Fehler war gleich. Ich denke, ich muss die Beschreibung der Frage ändern. – Sunny

Antwort

0

@Frank scheint auf etwas zu sein, nämlich dass Sie scheinbar eine Funktion verwenden, die für ein Objekt der Klasse TermDocumentMatrix statt DocumentTermMatrix vorgesehen ist. Das tm-Paket hat Funktionen zum Umwandeln von Textkorpora in beide, die als TermDocumentMatrix und DocumentTermMatrix bezeichnet werden.

Um auf Ihre Frage zu kommen, R is generally not great at handling Unicode. Ich gehe oft zu Python, um solche Probleme zu beheben, aber der Link scheint einige Lösungen zu haben.

0

Haben Sie bei der Bearbeitung Ihres Textes nicht-englische Zeichen entfernt?

Wenn Sie nicht, hier ist ein Beispiel dafür, wie es geht. Hier haben wir Nummern, Puncutation und nicht-englische Zeichen entfernt.

removeNumPunct <- function(x) gsub("[^[:alpha:][:space:]]*","",x) 
myCorpus <- tm_map(myCorpus, content_transformer(removeNumPunct), lazy = TRUE) 
+0

sollten Sie Ihre Code-Beispiele formatieren, um die Lesbarkeit zu verbessern – ozren1983