2016-06-13 6 views
1

ich einen Absatz habe:Ein seltsames Wort erscheint mit Themenanalyse in r

ekelhaft sie auf entsetzliche war, dass wir übernachtet haben um Sie auf Fotos von Reisenden ironisch i jeweils diejenigen erlebt habe schreiben Sie uns alles, was in Bildern gab Faust frei dann zog uns in die Zimmer waren besser, wir schliefen mit Kleidung auf der gesamten dort nie einmal auszog Schuhe zu Fuß auf Teppich Dusche usw. Löcher in Wandflecken auf Bettwäsche Vorhänge Couch Stuhl keine Arbeit elektrisch in Lampen Kabel nichts konnte angeschlossen werden, wenn wir angerufen nach unten, um es zu reparieren, so dass wir keine Beleuchtung außer Badezimmer Licht TV Toiletten ständig verstopfte Dusche Drain.

Das scheint ein wenig grammatikalisch komisch zu sein, seit ich den Absatz gereinigt habe. Und ich verwende den folgenden Code, um Arbeitsfrequenzen zu extrahieren.

# create corpus 
docs<-Corpus(VectorSource(example)) 

# stem document 
docs<-tm_map(docs,stemDocument) 

# create document-term matrix 
dtm<-DocumentTermMatrix(docs) 

# convert row names 
rownames(dtm)<-"example" 

# collapse matrix by summing over columns 
freq<-colSums(as.matrix(dtm)) 

# length should be total number of terms 
length(freq) 

# create sort order (descending) 
ord<-order(freq,decreasing=TRUE) 

# list all terms in decreasing order of freq and write to disk 
freq[ord] 

Dann wird der freq[ord] ist:

freq[ord]

Ich frage mich, warum es ein Wort ani hier ist offenbar ani nicht in meinem Absatz erscheint. Vielen Dank.

Nur das Problem, der folgende Code überträgt any zu ani, weiß jemand, wie man das vermeidet?

docs<-tm_map(docs,stemDocument) 

Antwort

2

Es ist das Wort "any", nachdem es stemmed wurde. Die (in diesem Fall fehlerhafte) Logik der zugrundeliegenden Funktion wordStem, die den Stammalgorithmus von Dr. Martin Porter und die von Snowball erzeugte Bibliothek C libstemmer verwendet, änderte die y in eine i.

+0

Danke. Gibt es einen anderen vernünftigen Weg, um ein Dokument zu vereiteln? Es scheint, dass ich eindringen muss. –

+0

@ AegeanT.Wu Sicher, du kannst es immer manuell mit 'gsub' oder' grep' eindämmen. Alternativ könnten Sie in die zugrunde liegende 'wordStem' Datei gehen und sie optimieren. Ich denke, du könntest auch versuchen, "porter" und "porter2" umzuschalten, um zu sehen, ob es geändert wird. OTOH, du kannst es einfach so lassen, wie es jetzt ist, denn solange du verstehst, was vor sich geht, sollte es nicht zu problematisch sein. –

+0

@ AegeanT.Wu Fast hätte ich vergessen, Sie können 'RWeka' auch zum Stemmen verwenden –

Verwandte Themen