问题描述
我有一个数据框,其中包含来自 twitter API 的推文,其中包含英语和非英语推文。在发布这个问题之前,我搜索了堆栈溢出,但似乎没有找到解决我想要的问题的内容。
由于推特有表情符号,我想过滤掉不是英文的推文而不考虑表情符号。我曾尝试使用 stringi::stri_enc_isascii()
,但它似乎无法将带有 Emojis 的英文推文识别为英文。
为了复制目的,这里有一些文字:
"私は、トランプ大統領を信じています???? #America"
"Thank you Nashville"
"?? Bless America"
在最后的语料库中,我应该只有最后两个文本。
谢谢!
解决方法
您可以通过执行以下操作从数据集中删除所有非 ASCII 字符:
# assuming tweets is the field name where you store the tweets text messages
dataset$tweets <- sapply(dataset$tweets,function(x) gsub("[^\x01-\x7F]","",x))
那么您所有的表情符号和非 ASCII 字符都将留空。下一步将仅选择推文字段不为空的行。
dataset <- dataset[dataset$tweets != ""]
现在,如果您想保留表情符号,更好的解决方案是仅出于索引目的执行此过程,然后使用索引过滤未触及的数据。例如:
modified_tweets <- sapply(dataset$tweets,x))
# now filter by condition
dataset <- dataset[modified_tweets != ""]