2013-04-01 6 views
17

Wie gehe ich mit Emoticons um, damit ich Tweets für die Sentimentanalyse sortieren kann?Emoticons in Twitter Sentiment Analysis in r

Anfahrt: Fehler in sort.list (y): ungültige Eingabe

Dank

und das ist, wie die Emoticons von twitter suchen kommen und in r:

\xed��\xed�\u0083\xed��\xed�� 
\xed��\xed�\u008d\xed��\xed�\u0089 
+3

versuchen mit iconv Arbeits() – ndoogan

+0

Und Blick auf 'Encodings' –

+1

Darf ich vorschlagen, dass Sie herausfinden, was diese Codierungen bedeuten?. Das Emoticon ist eine Form der Sprache, die eine Bedeutung vermittelt, die möglicherweise nicht in der formalen Textsprache erfasst wird. Nicht sicher, was Sie suchen, aber diese Emoticons sind Sentiment, eine Art, Gestik/Gesichtsausdruck in einer Weise darzustellen, wie es sich die typische formale Sprache nicht leisten kann. Verwenden Sie die Kommentare/Lösungen hier erneut, um die Emoticons nicht zu eliminieren, sondern um herauszufinden, welche Bedeutung das Emoticon vermittelt. –

Antwort

20

Dies sollte die Emoticons loswerden, mit wie von Ndoogan vorgeschlagen.

Einige reproduzierbare Daten:

require(twitteR) 
# note that I had to register my twitter credentials first 
# here's the method: http://stackoverflow.com/q/9916283/1036500 
s <- searchTwitter('#emoticons', cainfo="cacert.pem") 

# convert to data frame 
df <- do.call("rbind", lapply(s, as.data.frame)) 

# inspect, yes there are some odd characters in row five 
head(df) 

                                       text 
1                  ROFLOL: echte #emoticons [humor] http://t.co/0d6fA7RJsY via @tweetsmania ;-) 
2 “@teeLARGE: when tmobile get the iphone in 2 wks im killin everybody w/ emoticons &amp; \nall the other stuff i cant see on android!" \n#Emoticons 
3      E poi ricevi dei messaggi del genere da tua mamma xD #crazymum #iloveyou #emoticons #aiutooo #bestlike http://t.co/Yee1LB9ZQa 
4            #emoticons I want to change my name to an #emoticon. Is it too soon? #prince http://t.co/AgmR5Lnhrk 
5 I use emoticons too much. #addicted #admittingit #emoticons <ed><U+00A0><U+00BD><ed><U+00B8><U+00AC><ed><U+00A0><U+00BD><ed><U+00B8><U+0081> haha 
6                       What you text What I see #Emoticons http://t.co/BKowBSLJ0s 

Hier ist der Schlüssel Linie, die die Emoticons entfernen wird:

# Clean text to remove odd characters 
df$text <- sapply(df$text,function(row) iconv(row, "latin1", "ASCII", sub="")) 

nun wieder prüfen, um zu sehen, ob die ungeraden Zeichen verschwunden sind (siehe Zeile 5)

head(df)  
                                   text 
1                  ROFLOL: echte #emoticons [humor] http://t.co/0d6fA7RJsY via @tweetsmania ;-) 
2 @teeLARGE: when tmobile get the iphone in 2 wks im killin everybody w/ emoticons &amp; \nall the other stuff i cant see on android!" \n#Emoticons 
3      E poi ricevi dei messaggi del genere da tua mamma xD #crazymum #iloveyou #emoticons #aiutooo #bestlike http://t.co/Yee1LB9ZQa 
4            #emoticons I want to change my name to an #emoticon. Is it too soon? #prince http://t.co/AgmR5Lnhrk 
5                     I use emoticons too much. #addicted #admittingit #emoticons haha 
6                      What you text What I see #Emoticons http://t.co/BKowBSLJ0s 
+0

Ben- Vielen Dank- das hat es aufgeräumt- Endlich! – Rhodo

+0

Gern geschehen! Für den Fall, dass Sie nicht vertraut sind, sollten Sie die Antwort aufheben, wenn die Antwort für Sie nützlich ist (das ist der bevorzugte Weg, um hier Danke zu sagen) und klicken Sie auf das Häkchen (unter den Pfeilen), um anzuzeigen, dass es die beste Antwort für Sie war Frage. Das wird für andere Leute hilfreich sein, die die gleiche Frage haben wie Sie (dieser Prozess ist relevanter, wenn es mehrere Antworten gibt, in diesem Fall ist es mehr für den Spaß daran). – Ben

+0

Danke nochmal- Ich bin so ein Neuling, dass ich eine 15 zu upvote brauche. – Rhodo

0

Sie können regulären Ausdruck verwenden, um zu erkennen ct Nicht-Alphabet-Zeichen und entfernen Sie sie. Beispielcode:

rmNonAlphabet <- function(str) { 
    words <- unlist(strsplit(str, " ")) 
    in.alphabet <- grep(words, pattern = "[a-z|0-9]", ignore.case = T) 
    nice.str <- paste(words[in.alphabet], collapse = " ") 
    nice.str 
} 
Verwandte Themen