使用tm包在R中删除表情符号

3
我使用tm包来清理Twitter语料库。但是,该包无法清除表情符号。
以下是复制的代码:
July4th_clean <- tm_map(July4th_clean, content_transformer(tolower))
Error in FUN(content(x), ...) : invalid input 'RT ElleJohnson Love of country is encircling the globes ������������������ july4thweekend July4th FourthOfJuly IndependenceDay NotAvailableOnIn' in 'utf8towcs'

有人能指导我如何使用tm包删除表情符号吗?

谢谢,

Luis


从你的示例中不清楚你想要消除什么。你是想消除包含多个连续标点符号的子字符串,比如 :-) 和 (-_-),还是试图消除像☺和❀这样的奇怪Unicode字符? - G5W
你是对的。我假设它是一个“或者类似的东西”。 - Luis
我是一个 R 新手。你知道我怎么能检查那条特定的推文吗?我想你使用 [] 但不确定是函数还是代码的其他部分。 - Luis
嗨 G5W,这个表情符号是一个桃子和美国国旗。 - Luis
我正在尝试消除奇怪的Unicode字符。 - Luis
3个回答

7
你可以使用gsub来去除所有的非ASCII字符。
Texts = c("Let the stormy clouds chase, everyone from the place ☁  ♪ ♬",
    "See you soon brother ☮ ",
    "A boring old-fashioned message" ) 

gsub("[^\x01-\x7F]", "", Texts)
[1] "Let the stormy clouds chase, everyone from the place    "
[2] "See you soon brother  "                                  
[3] "A boring old-fashioned message"

详情: 你可以在正则表达式中使用[ ]来指定字符类。当类描述以^开头时,它表示除了这些字符之外的所有字符。在这里,我已经指定了除了1-127字符之外的所有字符,即除了标准ASCII之外的所有字符,并指定它们应该被替换为空字符串。


如果您想保留带有重音符号的字符怎么办?例如,é和È。 - Will M
1
@WillM gsub("[^\x01-\xFF]", "", Texts)会保留简单的重音字符。 - G5W

1
你可以尝试这个函数。
iconv(July4th_clean, "latin1", "ASCII", sub="")

重复问题,请查看帖子

嗨,Zeyad,我看到了那个,但犹豫是否使用它,因为代码与我正在使用的tm代码不同。我正在使用<- tm_map函数。 - Luis
在使用tm包之前,您应该运行此程序。 - zdeeb

0

我正在使用 qdapRegex 包中的 rm_non_words,因为它可以让我在保留不同欧洲语言字符的同时删除表情符号和表情符号。

e.g.:

x1<-"Ελληνικά :), български, français ✅ "
x2<-rm_non_words(x1)
print(x2)
[1]"Ελληνικά български français"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接