2013-04-01 19 views
17

Jak obsługiwać/pozbywać się emotikonów, aby sortować tweety do analizy sentymentów?Emotikony na Twitterze Analiza nastrojów w r

Pierwsze: błąd w sort.list (Y): nieważny wejścia

Dzięki

i to jak emotikony wyjdzie patrząc z Twittera i do R:

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

spróbować pracy z iconv() – ndoogan

+0

I patrzeć na 'Encodings' –

+1

Mogę zaproponować Ci dowiedzieć się, co te kodowania oznacza?. Emotikon jest formą języka, który przekazuje znaczenie, które nie może być uchwycone w formalnym języku tekstowym. Nie jestem pewien, o co ci chodzi, ale te emotikony są sentymentem, sposobem wyrażania gestów/twarzy w sposób, na jaki nie może sobie pozwolić na typowy język formalny. Ponownie użyj komentarzy/rozwiązań tutaj, aby nie eliminować emotikonów, ale aby dowiedzieć się, jakie znaczenie przekazuje emotikon. –

Odpowiedz

20

To powinno pozbyć się emotikonów, używając iconv zgodnie z sugestią ndoogan.

Niektóre powtarzalne dane:

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 

Oto klucz linia, która usunie emotikony:

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

teraz sprawdzić ponownie, aby sprawdzić, czy nieparzyste znaki zostaną usunięte (patrz wiersz 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- Dziękuję bardzo, że to posprzątała - w końcu! – Rhodo

+0

Nie ma za co! Jeśli nie jesteś zaznajomiony, powinieneś wznowić, jeśli odpowiedź była dla ciebie przydatna (to jest preferowany sposób, aby podziękować tutaj) i kliknąć na haczyk (pod strzałkami w górę/w dół), aby wskazać, że jest to najlepsza odpowiedź pytanie. Będzie to pomocne dla innych osób, które mają takie samo pytanie jak ty (ten proces jest bardziej odpowiedni, gdy istnieje wiele odpowiedzi, w tym przypadku bardziej dla zabawy). – Ben

+0

Jeszcze raz dziękuję - jestem takim nowicjuszem, że potrzebuję 15 do przegłosowania. – Rhodo

0

Możesz użyć wyrażenia regularnego do dete ct znaki alfabetyczne i usuń je. Przykładowy kod:

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 
} 
Powiązane problemy