【问题标题】:Complex queries with twitter API- python wrapper使用 twitter API-python 包装器的复杂查询
【发布时间】:2015-09-17 20:12:43
【问题描述】:

是否可以使用 twitter API 进行复杂查询? 例如,在dev site 中显示的示例查询中,我可以让我的查询类似于:

("chocolate" AND "cat") OR ("super ninja" AND "ghost" AND "person" 但是 不是“狗”)

站点中的查询看起来非常简单,我想知道您是否可以同时有多个查询,AND 以及 OR 在查询中还是互斥的?

我尝试用谷歌搜索,但只能找到一个单词的示例查询(没用)。这是否意味着我可以从该站点加入开发人员文档示例,并将它们合并到一个查询中,如下所示:

q="巧克力猫-狗或超级忍者鬼人-狗"

上述查询是否与第一个带有 AND/OR 的语句的结果相同?

我一直在使用 TwitterSearch 库,但我只能执行以下查询:

“巧克力”和“猫”

“巧克力”或“狗”

我可能能够执行以下操作,但尚未测试:

("巧克力" OR "猫") AND "人"

(page 22 TwitterSearch library doc).

库也允许 NOT,但我不知道我是否可以同时使用 AND 和 OR,然后是 NOT。这也在第 22 页的“关键字除外”下

这对我的口味来说还不够复杂,我对任何其他查询搜索更复杂的库/包装器持开放态度,但我不确定 twitter 的 API 中是否有这种复杂性。

谢谢你,如果你有任何链接,我们也将不胜感激。

【问题讨论】:

  • 我可以告诉你,Twitter API 允许与 AND、OR 组合,而不像你所描述的那样,如你提供的第一个链接中所述。我不知道您正在使用的库,但快速查看了您提供的文档,确实似乎使用set_keywords 方法设置关键字的方式阻止了您添加复杂的组合。至于替代品,有很多,这是一个品味问题......twython很好,虽然它没有达到很高的水平。在nltk 很快就会有一个(此时你应该指向 github)。希望对您有所帮助。

标签: python python-3.x twitter python-twitter


【解决方案1】:

是的,您是正确的,您可以以任何符合您条件的方式组合查询运算符。

q="巧克力猫-狗或超级忍者鬼人-狗"

但是,在那一个中​​,您在第一个中专门删除了 dog,但您不在:

("chocolate" AND "cat") OR ("super ninja" AND "ghost" AND "person" but NOT "dog")

你不是想拥有

q="巧克力猫或超级忍者鬼人-狗"

无论如何,是的,这将根据提供的运算符过滤掉推文。

来自您的评论:

你得到的正是你所指定的。

如果我们首先查看“nap cat -dog”句子,您将过滤所有 必须在同一推文中包含 nap 和 cat 的推文,不包括 dog。它们还包含在您的情况下您正在吃早餐的任何其他单词,因为您在“nap cat -dog”过滤器中对此没有任何限制。

第二个过滤器与第一个过滤器分开工作,因此是 OR 语句。在这里,您再次说所有包含时间和早餐的推文,但不包含狗。第二个过滤器可能包含小睡和猫。

如果你想以某种方式链接它们,那么你需要:

q = "午睡猫-狗-时间-早餐或时间早餐-午睡-猫-狗"

该过滤器应该防止推文重叠,我假设你在追求什么。对吗?

【讨论】:

  • 最后一个查询是否意味着 dog 不会出现在包含“chocolate and cat”的推文中,也不会出现在“super AND ninja AND ghost AND person”的推文中?或者这是否意味着狗不只在第二行(“超级和忍者和鬼和人”的部分)?也谢谢!
  • 很高兴为您提供帮助。 q="chocolate cat -dog OR super ninja ghost person -dog" 表示“巧克力与猫”和“超级与忍者与鬼与人”这两个语句中都不存在狗。但是,在q="chocolate cat OR super ninja ghost person -dog" 中,狗可能出现在“巧克力与猫”中,但不存在在“超级与忍者与鬼与人”中。这澄清了吗?
  • 嘿@Leb 我刚刚尝试运行这个查询:“nap cat -dog OR time breakfast -tired”但我正在用一个带有小睡和猫的句子吃早餐。以下是我输出的一些示例:“猫在 530 点把我叫醒吃早餐……我无法重新入睡。我看到未来会打盹……但不是现在。谢谢猫!” “我回来打了一个可爱的长睡……那么谁会好心给我做早餐呢?”谢谢你到目前为止的帮助!
  • 我编辑了我的答案,如果它回答了你的问题,请告诉我。
  • 哦,好吧,我明白你的意思了,我想那是巧合。我在想,不知何故,它认为我的意思是早餐和猫必须在那里,因为当提到早餐时,两个句子都有猫。谢谢!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-26
  • 1970-01-01
  • 1970-01-01
  • 2016-09-07
相关资源
最近更新 更多