【发布时间】:2018-08-02 19:03:59
【问题描述】:
使用 R 访问 Twitter 搜索 API 的结果似乎不遵循布尔逻辑。搜索 red AND ball 获得 13,127 次点击。
tw1 = rtweet::search_tweets('red ball', n = 1e4, retryonratelimit = TRUE)
red AND cat 获得 9,799 次点击。 red AND cat AND ball 获得 19 次点击。到目前为止一切顺利。
现在,(red AND cat) OR (red AND ball) 仅获得 1 次命中。不管我如何构建它,或者我使用twitteR 还是rtweet,所以我认为问题在于搜索 API。
tw2 = rtweet::search_tweets('red (ball or cat)', n = 1e4, retryonratelimit = TRUE)
或
tw3 = rtweet::search_tweets('red ball or cat', n = 1e4, retryonratelimit = TRUE)
或
tw4 = twitteR::searchTwitter('red ball or cat', n = 1e4, retryOnRateLimit = 1e3)
总的来说,令我惊讶的是,搜索 API 的文档记录如此之差、故障多多,以及关于使用它的问题很少。
【问题讨论】:
-
出于好奇:您是如何提出
AND并使用括号进行分组的?我会选择"red cat OR red ball"、"red ball OR red cat"等等。文档似乎在这里:developer.twitter.com/en/docs/tweets/search/guides/… -
好问题,特别是考虑到 Twitter 提供的文档很差。这家第 3 方搜索公司说语法是
"a b OR c"等同于"a (b OR c)",后者应该等同于您的两种表述。 link然而, -
然而,Twitter 开发者网站link 表示对于“高级”搜索
"a b OR c"被评估为"(a b) OR c",这是非常不同的。无论哪种方式,它都不应该受到 1 次命中。 -
也许更重要的是,如果标准搜索太长或太复杂,API 往往会“中断”,所以我试图通过利用语法。
标签: r search twitter logical-operators