2013-04-01 41 views
17

Làm cách nào để xử lý/loại bỏ biểu tượng cảm xúc để tôi có thể sắp xếp các tweet cho phân tích tình cảm?Biểu tượng cảm xúc trong Twitter Phân tích tình cảm trong r

Bắt: Lỗi trong sort.list (y): đầu vào không hợp lệ

Cảm ơn

và đây là cách các biểu tượng cảm xúc đi ra tìm kiếm từ twitter và vào r:

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

thử làm việc với iconv() – ndoogan

+0

Và nhìn vào 'Encodings' –

+1

Tôi có thể đề nghị bạn tìm ra những gì các mã hóa nghĩa là gì?. Biểu tượng cảm xúc là một dạng ngôn ngữ truyền tải ý nghĩa có thể không được ghi lại bằng ngôn ngữ văn bản chính thức. Không chắc chắn những gì bạn đang sau nhưng những biểu tượng cảm xúc là tình cảm, một cách để đại diện cho cử chỉ/biểu hiện trên khuôn mặt theo cách điển hình ngôn ngữ chính thức có thể không đủ khả năng. Một lần nữa sử dụng các ý kiến ​​/ giải pháp ở đây không để loại bỏ các biểu tượng cảm xúc nhưng để tìm ra ý nghĩa được truyền tải bởi các biểu tượng cảm xúc. –

Trả lời

20

Điều này sẽ loại bỏ các biểu tượng cảm xúc, sử dụng iconv như được đề xuất bởi ndoogan.

Một số dữ liệu tái sản xuất:

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 

Đây là dòng quan trọng mà sẽ loại bỏ các biểu tượng cảm xúc:

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

Bây giờ kiểm tra một lần nữa, để xem nếu các nhân vật kỳ lạ đã mất hết (xem hàng 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- Cảm ơn bạn rất nhiều - đã làm sạch nó- Cuối cùng! – Rhodo

+0

Bạn được chào đón! Trong trường hợp bạn không quen thuộc, bạn nên upvote nếu câu trả lời là hữu ích cho bạn (đó là cách ưa thích để nói cảm ơn ở đây) và bấm vào đánh dấu (dưới lên/xuống mũi tên) để chỉ ra rằng đó là câu trả lời tốt nhất cho bạn câu hỏi. Điều đó sẽ hữu ích cho những người khác có cùng câu hỏi với bạn (quy trình này có liên quan hơn khi có nhiều câu trả lời, trong trường hợp này, điều đó càng thú vị hơn). – Ben

+0

Cảm ơn một lần nữa- Tôi là một newbie mà tôi cần một 15 để upvote. – Rhodo

0

Bạn có thể sử dụng cụm từ thông dụng để dete ct ký tự không phải bảng chữ cái và xóa chúng. Mẫu mã:

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 
} 
Các vấn đề liên quan