vidhya - comprehensive hands on guide to twitter sentiment analysis with dataset and code
Emoticonos en Twitter Sentiment Analysis en r (2)
Esto debería deshacerse de los emoticones, usando iconv
como lo sugiere ndoogan.
Algunos datos reproducibles:
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 & /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
Aquí está la línea clave que eliminará los emoticones:
# Clean text to remove odd characters
df$text <- sapply(df$text,function(row) iconv(row, "latin1", "ASCII", sub=""))
Ahora inspeccione nuevamente, para ver si los caracteres impares se han ido (vea la fila 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 & /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
¿Cómo manejo / elimino los emoticones para poder ordenar los tweets para el análisis de sentimientos?
Obteniendo: Error en sort.list (y): entrada inválida
Gracias
y así es como salen los emoticones mirando desde twitter y hacia r:
/xed��/xed�/u0083/xed��/xed��
/xed��/xed�/u008d/xed��/xed�/u0089
Puede usar expresiones regulares para detectar caracteres que no pertenecen al alfabeto y eliminarlos. Código de muestra:
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
}