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

如何用Python的NLTK筛选保留含自定义词典词汇的文本句子?

当然可行!

这个需求实现起来非常直接,核心逻辑就是遍历你已经拆分好的句子列表,筛选出包含关键词词典中任意词汇的句子。我给你用Python写个具体的实现示例,假设你已经完成了句子的tokenize步骤(比如用nltk.sent_tokenize或者spaCy的分句功能):

实现步骤与代码示例

  • 第一步:定义你的关键词集合和已拆分好的句子列表
  • 第二步:遍历每个句子,检查是否包含词典中的任意词汇(可以选择忽略大小写,避免因为大小写差异漏判)
  • 第三步:收集符合条件的句子
# 假设这是你已经tokenize完成的句子列表
tokenized_sentences = [
    "First sentence is not relevant.",
    "Second contains information about KPI I want to keep.",
    "Third is useless.",
    "Fourth mentions topic relevant for me"
]

# 你的关键词词典(用集合更适合快速匹配)
keyword_set = {"KPI", "topic"}

# 筛选符合条件的句子
filtered_sentences = []
for sentence in tokenized_sentences:
    # 统一转小写,避免大小写导致的匹配遗漏
    sentence_lower = sentence.lower()
    # 检查句子是否包含任意一个关键词
    if any(keyword.lower() in sentence_lower for keyword in keyword_set):
        filtered_sentences.append(sentence)

# 输出结果
print(filtered_sentences)

运行这段代码后,会得到你预期的结果:

['Second contains information about KPI I want to keep.', 'Fourth mentions topic relevant for me']

额外优化建议

  • 如果你的关键词是多词短语(比如"customer retention rate"),直接用in判断可能会出现部分匹配的误判,这时候可以用正则表达式的完整单词匹配(比如r"\b" + re.escape(keyword) + r"\b"),避免像"topic"匹配"topical"这类情况。
  • 处理大规模文本时,提前把关键词转成小写集合,能进一步提升匹配效率。

内容的提问来源于stack exchange,提问作者Dmitriy Parparov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 19:09:08