【发布时间】:2013-05-12 05:37:51
【问题描述】:
我有 N 个要跟踪的不同关键字(为简单起见,设 N=3)。所以在 GET statuses/filter 中,我会在“track”参数中给出 3 个关键字。
现在我将收到的推文可以来自我提到的 3 个关键字中的任何一个。 问题是我想解决哪个推文对应哪个关键字。 即推文和关键字之间的映射(在“track”参数中提到)。
显然,如果不对收到的推文进行任何处理,就无法做到这一点。
所以我想知道进行此处理的最佳方法是什么? 在推文的文本中搜索关键字?不区分大小写怎么办?如果同一关键字中有多个单词,例如:“Katrina Kaif”,该怎么办?
我目前正在尝试制定一些正则表达式...
我认为最好的方法是使用与最初使用状态/过滤器 API 相同的逻辑(正则表达式等)。如何知道 Twitter API 状态/过滤器本身使用什么逻辑来将推文与关键字匹配?
建议?帮忙?
P.S.:我正在使用 Python、Tweepy、Regex、MongoDb/Apache S4(用于分布式计算)
【问题讨论】:
-
对于较大的 N 正则表达式可能会很痛苦。最简单的方法是将文本转换为小写,并为每个关键字检查推文是否存在。如果您想检查精确匹配,那么您可以标记您的推文并获取关键字集和标记集的交集。交集将是与推文匹配的关键字。
-
@cubbuk : 目前,我有 N = 100。最好只在推文的“文本”部分搜索关键字,对吧?
-
是的,据我所知,twitter 只匹配推文的文本部分,所以检查文本部分会更适合你。
-
@user1599964 我有同样的用例。你确定解决方案了吗?如果是这样,您介意分享您的方法吗?
标签: python twitter tweepy tweetstream