2013-04-01 27 views
17

Duygu analizi için tweet'leri sıralayabilmek için ifadeleri nasıl çözerim/kurtulurum?Twitter'da Duygular İfadeleri Analiz et r

Alma: hatası sort.list içinde (y): geçersiz giriş

Teşekkür

ve bu ifadeler heyecan gelen ve r bakarak çıkıp nasıl:

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

iconv ile() – ndoogan

+0

çalışmayı deneyin Ve bakmak 'Encodings' –

+1

Sana bu kodlamalar ne anlama geldiğini önerebilir?. İfade, resmi metin dilinde yakalanamayan bir anlam taşıyan bir dil biçimidir. Neyin peşinde olduğunuzdan emin değilsiniz ama bu ifadeler, tipik resmi dilin karşılayamayacağı şekillerde jest/yüz ifadesini temsil etmenin bir yoludur. Burada ifadeleri/ifadeleri, ifadeleri ortadan kaldırmak için değil, ifade tarafından hangi anlamın aktarıldığını anlamak için kullanın. –

cevap

20

İfadenin önerdiği şekilde iconv kullanarak bu ifadelerden kurtulmalıdır.

Bazı tekrarlanabilir veriler:

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 

Burada ifadeleri kaldıracaktır anahtar çizgi: garip karakterler gitmiş olup olmadığını görmek için, tekrar incelemek Şimdi

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

(satır 5 bkz)

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- Çok teşekkürler - temizledim - Sonunda! – Rhodo

+0

Rica ederim! Eğer aşina olmadığınız bir durumda, cevabın sizin için yararlı olup olmadığını (burada teşekkür etmenin tercih edilen yolu buysa) yanıt vermeli ve en iyi cevap olduğunu belirtmek için (yukarı/aşağı okların altında) kene üzerine tıklayın. soru. Sizinle aynı soruya sahip olan diğer insanlar için bu yararlı olacaktır (birden fazla cevap olduğunda bu süreç daha önemlidir, bu durumda eğlenmek daha fazladır). – Ben

+0

Teşekkürler tekrar ediyorum - Ben 15 için upvote ihtiyacım böyle bir acemi değilim. – Rhodo

0

Dete için normal ifadeyi kullanabilirsiniz. ct olmayan alfabe karakterleri ve bunları kaldırın. Örnek 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 
}