从 Twitter API 过滤数据框以排除 R 中的非英语文本

Filter Dataframe from Twitter API to exclude non-English text in R

我有一个数据框,其中包含来自推特 API 的推文,其中包含英语和非英语推文。在发布这个问题之前,我搜索了堆栈溢出,但似乎没有找到解决我的意图的东西。

由于推特有表情符号,我想过滤掉非英文的推文而不考虑表情符号。我试过使用 stringi::stri_enc_isascii(),但它似乎无法将带有表情符号的英文推文识别为英文。

出于复制目的,这里有一些文本:

"私は、トランプ大統領を信じています #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, function(x) gsub("[^\x01-\x7F]", "", x))

# now filter by condition
dataset <- dataset[modified_tweets != ""]