为过滤流构建规则
目录
创建规则
规则限制
运算符类型:独立版 与 需要使用连词
#hashtag 运算符:
#xapiv2
需要使用连词的运算符不能在规则中单独使用;只有当规则中至少包含一个独立版运算符时,才能使用它们。原因是这些运算符单独使用会过于宽泛,可能匹配到极大量的 Post。
例如,以下规则不受支持,因为它们只包含需要使用连词的运算符:
has:media
has:links OR is:retweet
如果我们加入一个独立版运算符,例如短语 "X data",该规则就可以正常生效。
"X data" has:mentions (has:media OR has:links)
布尔运算符与分组
| AND 逻辑 | 相邻运算符之间以空格分隔将产生布尔 “AND” 逻辑,即只有同时满足两个条件时才会匹配到 Posts。例如,snow day #NoSchool 将匹配包含术语 snow 和 day 以及话题标签 #NoSchool 的 Posts。 |
| OR 逻辑 | 相邻运算符之间使用 OR 将产生 OR 逻辑,即只要满足任一条件就会匹配到 Posts。例如,指定 grumpy OR cat OR #meme 将匹配任何至少包含术语 grumpy 或 cat,或包含话题标签 #meme 的 Posts。 |
| NOT 逻辑(取反) | 在关键字(或任何运算符)前加短横线(-)可将其取反(NOT)。例如,cat #meme -grumpy 将匹配包含话题标签 #meme 和术语 cat 的 Posts,但前提是不包含术语 grumpy。一个常见的规则子句是 -is:retweet,它不会匹配 Retweets,从而仅匹配原始 Posts、Quote Tweets 和回复。所有运算符都可取反,但取反的运算符不能单独使用。 |
| 分组 | 你可以使用括号将运算符分组。例如,(grumpy cat) OR (#meme has:images) 将返回包含术语 grumpy 和 cat 的 Posts,或包含图片且带有话题标签 #meme 的 Posts。注意先应用 AND,再应用 OR。 |
关于取反的说明除
sample: 外,所有运算符都可以取反,并且 -is:nullcast 必须始终为取反形式。取反的运算符不能单独使用。不要对一组用括号分组的运算符整体取反。相反,请对每个运算符分别取反。例如,不要使用 skiing -(snow OR day OR noschool),建议改用 skiing -snow -day -noschool。运算顺序
- 由 AND 逻辑连接的运算符先进行组合
- 然后应用由 OR 逻辑连接的运算符
apple OR iphone ipad将被评估为apple OR (iphone ipad)ipad iphone OR android将被评估为(iphone ipad) OR android
(apple OR iphone) ipadiphone (ipad OR android)
标点符号、变音符号和大小写敏感性
diacrítica 或话题标签 #cumpleaños 的规则会匹配包含 diacrítica 或 #cumpleaños 的 Posts,因为它们包含相应的重音或变音符号。但这些规则不会匹配包含 Diacritica 或 #cumpleanos 且缺少带重音的 í 或字母 ñ 的 Posts。
带有重音或变音符号的字符与普通字符相同对待,并不会被视为词边界。例如,包含关键词 cumpleaños 的规则只会匹配包含单词 cumpleaños 的 Posts,而不会匹配包含 cumplea、cumplean 或 os 的 Posts。
所有运算符的评估均不区分大小写。例如,规则 cat 会匹配以下所有形式:cat、CAT、Cat。
Search Posts 的匹配行为与过滤流不同。在构建 Search Posts 查询时,请注意,包含重音或变音符号的关键词和话题标签会同时匹配带有这些重音或变音符号的术语,以及使用普通字符的术语。例如,包含关键词
Diacrítica 或话题标签 #cumpleaños 的 Search Posts 查询,会匹配 Diacrítica 和 #cumpleaños,也会匹配不带重音 í 或字母 ñ 的 Diacritica 或 #cumpleanos。具体性与效率
- 一般不建议为规则使用宽泛的、独立版的运算符,例如单个关键词或#hashtag,因为这很可能会匹配到海量的Post。创建更完善的规则将得到更具体的一组匹配的Post,并有望减少你在负载中为寻找有价值洞见而需要筛选的噪声。
- 例如,如果你的规则只是关键词
happy,你每天很可能会获得 200,000 - 300,000 条Post。 - 添加更多条件运算符可以缩小搜索结果范围,例如
(happy OR happiness) place_country:GB -birthday -is:retweet
- 例如,如果你的规则只是关键词
- 编写高效的规则还有助于遵守规则长度的字符限制。字符计数包含整个规则字符串,包括空格和运算符。
- 例如,以下规则长度为 59 个字符:
(happy OR happiness) place_country:GB -birthday -is:retweet
- 例如,以下规则长度为 59 个字符:
引用 Tweet 的匹配行为
迭代式构建规则
及早且频繁地测试你的规则
happy OR happiness
使用结果来缩小规则范围
lang: 运算符:
(happy OR happiness) lang:en
测试结果中有不少向他人送上生日祝福的 Posts,因此我们将添加 -birthday 作为否定关键词运算符。我们还只想接收原创的 Posts,所以添加了否定的 -is:retweet 运算符:
(happy OR happiness) lang:en -birthday -is:retweet
在需要的地方扩大包含范围
excited 和 elated。
(happy OR happiness OR excited OR elated) lang:en -birthday -is:retweet
根据所选时间段内的热门趋势/突发热点进行调整
-holidays。
(happy OR happiness OR excited OR elated) lang:en -birthday -is:retweet -holidays
添加与移除规则
add JSON 正文,其中包含一个数组;数组中的对象需包含带有规则的 value 参数,以及可选的 tag 参数。tag 可填写任意文本,便于你识别哪些返回的 Post 匹配该规则。
例如,如果你要向流中添加一组规则,你的 cURL 命令可能如下所示:
delete JSON 正文,其中包含带有 id 参数的数组,列出你要删除的规则 ID。
例如,如果你想从流中删除一组规则,你的 cURL 命令可能如下所示:
规则示例
追踪自然灾害
审视对话的情感
查找与特定 Post 注释相关的 Posts
context: 运算符来利用 Post 注释 功能。我们首先使用 Post 查询 端点,并通过 tweet.fields=context_annotations fields 参数识别需要在查询中使用的 domain.entity ID:
- 与猫相关的 Posts 返回
domain66(兴趣与爱好类别),entity852262932607926273(Cats)。 - 与宠物相关的 Posts 返回
domain65(兴趣与爱好垂直),entity852262932607926273(Pets)。