【问题标题】:Twitter Search API OR operator not working as expectedTwitter Search API OR 运算符未按预期工作
【发布时间】: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


【解决方案1】:

好的,我是个白痴,并没有在代码中大写 OR 运算符。使用大写的 OR 在上面运行 tw2、tw3 或 tw4 会得到 (red AND cat) OR (red AND ball) 的联合,如预期的那样。

我可以传递的一条有用信息是,来自 cmets 中链接的 Twitter 开发人员站点的 ORing 逻辑语法似乎不适用于免费的 Twitter API。那是, "a b OR c" 被评估为 "a (b OR c)" 不像 "(a b) OR c".

【讨论】:

    猜你喜欢
    • 2020-12-24
    • 1970-01-01
    • 2015-05-11
    • 2019-06-20
    • 2021-04-13
    • 1970-01-01
    • 2020-12-29
    • 2021-04-30
    • 2019-12-10
    相关资源
    最近更新 更多