[問題] Emoji亂碼清除

看板R_Language作者 (Same)時間8年前 (2017/03/01 10:33), 8年前編輯推噓0(007)
留言7則, 1人參與, 最新討論串1/1
[問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 請把以下不需要的部份刪除 入門(寫過其他程式,只是對語法不熟悉) [問題敘述]: 我手邊有大概2000筆的FB文章爬文資料 小編會在文章內加上Emoji導致部分亂碼出現 目前檢查了大概會有兩種 一種是 \U3e64653c\U3e30613c\U3e63623c\U3e64653c\U3e63623c\U3e66393c33 另一種是 <U+653C><U+3E64><U+613C><U+3E30><U+623C><U+3E64><U+653C><U+3E64> 就和中文交雜在一起(汗) 因為想要再用結巴分詞做一次文字探勘,想詢問怎麼去除,謝謝 [程式範例]: View的結果 http://imgur.com/a/RxuA2 直接看 http://imgur.com/a/rR8xm 字串如下: [1] "《日本淺草隱藏版甜點店》太強 \U3e64653c\U3e30613c\U3e64623c\U3e64653c\U3e31623c\U3e66383c竟然能征服比利時皇 室的胃不用跑歐洲~日本就能吃到啦!(超級私人的口袋名單XD割愛給大家)內容合作: Matcha與在地人同趣的日本旅遊指南#旅行#東京#淺草#隱藏版甜點店" [2] "【 <U+653C><U+3E64><U+613C><U+3E30><U+623C><U+3E63><U+653C><U+3E64><U+623C><U+3E37><U+623C><U+3E30><U+653C><U+3E64><U+613C><U+3E30><U+623C><U+3E63><U+653C><U+3E64><U+623C><U+3E37><U+623C><U+3E37> 韓國我來了!!】 [環境敘述]: > sessionInfo() R version 3.3.2 (2016-10-31) Platform: x86_64-pc-linux-gnu (64-bit) Running under: Ubuntu 14.04.5 LTS locale: [1] LC_CTYPE=zh_TW.UTF-8 LC_NUMERIC=C LC_TIME=zh_TW.UTF-8 LC_COLLATE=zh_TW.UTF-8 [5] LC_MONETARY=zh_TW.UTF-8 LC_MESSAGES=zh_TW.UTF-8 LC_PAPER=zh_TW.UTF-8 LC_NAME=C [9] LC_ADDRESS=C LC_TELEPHONE=C LC_MEASUREMENT=zh_TW.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] dplyr_0.5.0 jiebaR_0.9.1 jiebaRD_0.1 loaded via a namespace (and not attached): [1] lazyeval_0.2.0 magrittr_1.5 R6_2.2.0 assertthat_0.1 DBI_0.5-1 [關鍵字]: Emoji, facebook, 亂碼 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.63.206.33 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1488335608.A.3FF.html

03/01 11:04, , 1F
stringr or stringi 這兩個套件找找看有沒有相關功能
03/01 11:04, 1F

03/01 11:04, , 2F
例如解決UTF escape
03/01 11:04, 2F

03/01 11:04, , 3F
更正: unicode escape
03/01 11:04, 3F
有 stri_escape_unicode這個函數;這個函數的作用是將所有文字轉成unicode, 想知道在清除亂碼上可以怎麼應用,感謝QQ ※ 編輯: samex4x4 (210.63.206.33), 03/01/2017 13:48:35

03/01 14:12, , 4F
你看到的亂碼應該是unicode escape後的結果吧?
03/01 14:12, 4F

03/01 14:14, , 5F
不然就是 Encoding(x) <- "UTF-8"
03/01 14:14, 5F

03/01 14:14, , 6F
你沒有提供讓我可重現錯誤的提示,所以我也只能亂猜
03/01 14:14, 6F

03/01 14:14, , 7F
Good luck
03/01 14:14, 7F
感謝,第一個亂碼現在用stri_unescape_unicode()再接gsub([[:punct:]],"")解決了 第二個我在想能不能用正規表示式清掉,畢竟格式一定是<U+16位元組成> 只是我還要研究一下怎麼寫XD 真的非常感謝 ~~~ ※ 編輯: samex4x4 (210.63.206.33), 03/01/2017 15:20:59 Ok 寫法是gsub("<U\\+[0-9A-F]{4}>",'',x) \解決啦/ ※ 編輯: samex4x4 (210.63.206.33), 03/01/2017 15:56:02
文章代碼(AID): #1OjZBuF_ (R_Language)
文章代碼(AID): #1OjZBuF_ (R_Language)