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

如何用Python实现单词与句子匹配并将结果导出至CSV?

Python实现单词与句子的匹配并写入CSV

核心匹配逻辑设计

  • 遍历句子列表,逐个检查每个句子是否包含单词列表中的任意单词
  • 用正则表达式的单词边界(\b)确保匹配完整单词,避免部分匹配(比如避免把"cat"误匹配到"category")
  • 每找到一组匹配的句子与单词,就存入结果列表
  • 最后将结果列表写入新的CSV文件

代码实现

基础版(使用内置csv模块)

假设你已经获取了两个列表:words_list(存储提取的单词)、sentences_list(存储提取的句子)

import csv
import re

# 示例导入后的列表(实际使用时替换为你的数据)
words_list = ["apple", "banana", "orange"]
sentences_list = ["I ate an apple today.", "Banana is my favorite fruit.", "I like drinking orange juice.", "This is a test sentence."]

# 存储匹配结果
match_results = []

# 遍历所有句子和单词,完成匹配
for sentence in sentences_list:
    for word in words_list:
        # 匹配完整单词,忽略大小写;若需区分大小写,去掉flags参数
        if re.search(rf"\b{re.escape(word)}\b", sentence, flags=re.IGNORECASE):
            match_results.append({"sentence": sentence, "matched_word": word})

# 写入CSV文件
with open("matched_results.csv", "w", newline="", encoding="utf-8") as f:
    writer = csv.DictWriter(f, fieldnames=["sentence", "matched_word"])
    writer.writeheader()
    writer.writerows(match_results)

高效版(使用pandas,适合大数据量)

如果处理的数据量较大,用pandas会更高效:

import pandas as pd
import re

# 示例导入后的列表(实际使用时替换为你的数据)
words_list = ["apple", "banana", "orange"]
sentences_list = ["I ate an apple today.", "Banana is my favorite fruit.", "I like drinking orange juice.", "This is a test sentence."]

# 转换为DataFrame格式
df = pd.DataFrame({"sentence": sentences_list})

# 生成匹配正则模式,匹配任意目标单词的完整形式
pattern = r"\b(" + "|".join(re.escape(word) for word in words_list) + r")\b"

# 提取匹配的单词
df["matched_word"] = df["sentence"].str.extract(pattern, flags=re.IGNORECASE)

# 过滤无匹配的行并重置索引
matched_df = df.dropna().reset_index(drop=True)

# 写入CSV文件
matched_df.to_csv("matched_results_pandas.csv", index=False, encoding="utf-8")

注意事项

  • 单词匹配精度:如果不需要严格匹配完整单词(比如允许匹配"apples"中的"apple"),可以去掉正则表达式中的\b
  • 大小写处理:代码默认忽略大小写,若需区分大小写,删除re.IGNORECASE参数即可
  • 特殊字符兼容:用re.escape(word)处理单词中的正则特殊字符(如.、*),避免正则解析报错
  • 多匹配场景:基础版会为一个句子中的每个匹配单词生成单独记录;若需在一条记录中显示所有匹配单词,可改用re.findall提取所有匹配项后拼接

内容的提问来源于stack exchange,提问作者Georg Wildmoser

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 03:05:46