如何通过R语言Twitter API调整代码仅爬取英文推文
仅爬取英文推文的实现方法
rtweet包的search_tweets()函数原生支持在API请求阶段指定语言过滤规则,不需要等全量数据爬取后再本地筛选,不会浪费请求配额。
推荐方案:请求时直接限定语言
Twitter搜索API支持通过ISO 639-1语种编码过滤结果,你只需要在search_tweets()中传入lang = "en"参数,即可直接获取英文推文,修改后的完整代码如下:
library(lubridate) library(tidyverse) library(rtweet) library(igraph) library(here) get_token() # 连接Twitter API # 新增lang参数,限定返回英文结果 Uber <- search_tweets("uber", n = 50, lang = "en")
备选方案:本地二次过滤
如果你已经爬取了全语种的推文数据集,也可以利用返回结果中自带的lang字段做本地筛选,代码如下:
# 从已有的全语种数据中筛选英文推文 Uber_en <- Uber %>% filter(lang == "en")
注意:该方案会浪费API请求额度——比如你设置
n=50时,返回的50条结果里可能包含大量非英文内容,筛选后实际得到的英文推文数量会远小于预期值,非必要不推荐使用。
如果对语种识别准确率要求极高,可以在拿到API返回的英文结果后,再用cld2/cld3这类语种检测R包对推文文本做二次校验,剔除平台识别错误的非英文内容。
内容的提问来源于stack exchange,提问作者M. Talha Bin Asif
相关产品推荐
相关产品推荐

