作者samex4x4 (Same)
看板R_Language
标题[问题] Emoji乱码清除
时间Wed Mar 1 10:33:25 2017
[问题类型]:
程式谘询(我想用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://webptt.com/cn.aspx?n=bbs/R_Language/M.1488335608.A.3FF.html
1F:→ Wush978: stringr or stringi 这两个套件找找看有没有相关功能 03/01 11:04
2F:→ Wush978: 例如解决UTF escape 03/01 11:04
3F:→ Wush978: 更正: unicode escape 03/01 11:04
有 stri_escape_unicode这个函数;这个函数的作用是将所有文字转成unicode,
想知道在清除乱码上可以怎麽应用,感谢QQ
※ 编辑: samex4x4 (210.63.206.33), 03/01/2017 13:48:35
4F:→ Wush978: 你看到的乱码应该是unicode escape後的结果吧? 03/01 14:12
5F:→ Wush978: 不然就是 Encoding(x) <- "UTF-8" 03/01 14:14
6F:→ Wush978: 你没有提供让我可重现错误的提示,所以我也只能乱猜 03/01 14:14
7F:→ Wush978: Good luck 03/01 14:14
感谢,第一个乱码现在用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