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

如何用Pandas在文本中查找所有匹配的指定词汇

用Pandas在带时间戳的短文本中匹配特定词汇列表

作为NLP新手,用Pandas来处理带时间戳的短文本集合确实是个聪明的选择——既能规整带时间维度的数据,又能轻松实现批量词汇匹配。下面我一步步给你演示怎么实现你想要的效果:

1. 先准备示例数据

先模拟你的场景:一个带时间戳的推特数据框,加上汽车制造商的词汇列表,方便你直接复刻测试:

import pandas as pd

# 模拟带时间戳的推特数据
tweets_data = {
    "timestamp": ["2024-05-01 08:30", "2024-05-01 09:15", "2024-05-01 10:00", "2024-05-01 10:45"],
    "text": [
        "Just bought a new Tesla Model Y, love it!",
        "Ford's new electric truck is game-changing",
        "Can't decide between Honda and Toyota",
        "My morning commute was terrible today"
    ]
}
df = pd.DataFrame(tweets_data)

# 你的目标词汇列表:汽车制造商
car_brands = ["Tesla", "Ford", "Honda", "Toyota", "BMW", "Mercedes"]

2. 方法一:提取每行出现的目标词汇(合并成一列)

这个方法会把每行文本中匹配到的品牌提取出来,合并成单独一列,完全符合你想要的输出格式:

# 把词汇列表转成正则匹配模式,\b是单词边界,避免误匹配(比如不会把"Hond"当成"Honda")
pattern = r'\b(' + '|'.join(car_brands) + r')\b'

# 提取所有匹配的词汇,并整理格式
matches = df['text'].str.extractall(pattern).reset_index()
matches.columns = ['行索引', '匹配序号', '品牌']

# 把同一行的多个品牌用逗号分隔
matched_brands = matches.groupby('行索引')['品牌'].apply(', '.join).reset_index()

# 合并回原数据框,没有匹配的内容填充为"无"
result_df = df.merge(matched_brands, left_index=True, right_on='行索引', how='left').fillna("无")
result_df = result_df.drop(columns=['行索引'])

运行后你会得到这样的结果:

timestamptextbrand
2024-05-01 08:30Just bought a new Tesla Model Y, love it!Tesla
2024-05-01 09:15Ford's new electric truck is game-changingFord
2024-05-01 10:00Can't decide between Honda and ToyotaHonda, Toyota
2024-05-01 10:45My morning commute was terrible today无

3. 方法二:给每个品牌单独做标记列

如果你想更细致地统计每个品牌的提及情况,可以给每个品牌单独生成一列,标记该行是否包含这个品牌:

for brand in car_brands:
    # case=False 表示忽略大小写,比如能匹配到"tesla"和"Tesla"
    df[brand] = df['text'].str.contains(r'\b' + brand + r'\b', case=False, na=False)

这样数据框会新增Tesla、Ford等列,值为True或False,方便你后续按时间统计不同品牌的提及频率。

4. 新手友好的注意事项

  • 正则里的\b一定要加上,不然会出现误匹配(比如把"Fordson"当成"Ford")
  • 如果你的文本有大小写混合的情况,记得在str.contains里加case=False
  • 要是处理非英语文本,可能需要搭配分词工具,但对于英文品牌名,上面的方法完全够用

内容的提问来源于stack exchange,提问作者Arnold Klein

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:22:06