You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Twitter中使用正则表达式匹配诊断语句搜索推文

嘿,我明白你想要精准捕获那些包含诊断声明的推文的需求——之前用TwitterSearch只能做关键词匹配,没法锁定I was diagnosed with X today这类特定句式对吧?别担心,我们可以结合**Tweepy(Twitter官方推荐的Python库)**和正则表达式来完美解决这个问题,灵活性比TwitterSearch高得多。

解决方案步骤

1. 切换到Tweepy库

TwitterSearch的功能比较受限,Tweepy支持完整的Twitter API操作,还能轻松处理后续的文本匹配逻辑。先安装它:

pip install tweepy

2. 用高级搜索缩小范围

先通过Twitter的高级搜索语法过滤出包含核心关键词的推文,减少后续正则匹配的工作量。比如我们可以先锁定包含diagnosed和目标病症(比如depression)的英文推文,同时排除转发(避免重复内容)。

3. 编写正则匹配目标句式

考虑到推文的口语化特性,我们需要编写兼容变体的正则——比如大小写差异、时态变化(was/got)、时间表述(today/this week)等,精准捕获类似I was diagnosed with X today的结构。

完整可运行代码

import tweepy
import re

# 替换成你的Twitter API凭证
consumer_key = 'x'
consumer_secret = 'y'
access_token = 'z'
access_token_secret = 't'

# 完成API认证
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth, wait_on_rate_limit=True)  # 自动处理速率限制

# 定义正则表达式:匹配诊断声明的核心结构,兼容多种变体
diagnosis_pattern = re.compile(
    r'\b(?:i was|i got) diagnosed with (\w+(?: \w+)*) (?:today|this week|recently)\b',
    re.IGNORECASE
)

# 高级搜索查询:包含diagnosed和depression、英文、排除转发
search_query = 'diagnosed depression lang:en -filter:retweets'

# 遍历搜索结果,匹配正则并输出
for tweet in tweepy.Cursor(api.search_tweets, q=search_query, tweet_mode='extended').items(100):
    full_tweet_text = tweet.full_text  # 获取完整推文,避免截断
    match_result = diagnosis_pattern.search(full_tweet_text)
    
    if match_result:
        diagnosed_condition = match_result.group(1)  # 提取匹配到的病症(X)
        print(f"用户@{tweet.user.screen_name} 发布:{full_tweet_text}")
        print(f"匹配到的诊断病症:{diagnosed_condition}\n")
关键细节说明
  • 正则灵活性:re.IGNORECASE忽略大小写,(?:...)是非捕获组避免多余匹配结果,\w+(?: \w+)*支持匹配多单词的病症名称(比如major depression)。
  • API参数优化:tweet_mode='extended'确保获取完整推文内容(默认会截断长推文);wait_on_rate_limit=True让程序自动处理Twitter的API速率限制,不会因为请求过多报错。
  • 搜索过滤:-filter:retweets排除转发内容,减少重复数据;lang:en限定只搜索英文推文,符合你的数据集需求。
额外提示

如果需要匹配更多诊断句式(比如I received a diagnosis of X),可以扩展正则表达式,或者添加多个正则模式依次匹配。另外,如果你需要抓取大量数据,建议在循环中加入短暂延迟,避免触发API的严格限制。

内容的提问来源于stack exchange,提问作者Shideh Hm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:29:43