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

Python中如何基于自定义字典实现文档的规则分类标注?

基于关键词字典的文档分类标注实现

直接按下面的步骤写代码就能实现需求:

  • 先把分类和关键词的对应关系整理为Python字典结构
  • 遍历每个文档,将文档下的所有句子拼接为完整文本做统一匹配
  • 逐分类检查关键词命中情况,只要分类下任意一个关键词在文档中出现,就给文档打上对应分类标签

完整可运行代码示例:

# 分类关键词映射,可根据实际需求扩充
category_keywords = {
    "Reg": ["A", "B", "C"],
    "Gov": ["D", "E", "F", "G"]
}

# 待标注文档,和你给出的存储结构完全一致
Document1 = ["Sentence contains keyword A", "Normal sentence without keyword"]
Document2 = ["Sentence with D", "Sentence mentions G"]
doc_set = {
    "Document1": Document1,
    "Document2": Document2
}

def get_doc_tags(doc_sentence_list, keyword_map):
    # 拼接文档所有内容为单个字符串,降低匹配逻辑复杂度
    full_content = " ".join(doc_sentence_list)
    tags = []
    for cat, kw_list in keyword_map.items():
        for kw in kw_list:
            if kw in full_content:
                tags.append(cat)
                # 命中当前分类任意一个关键词就终止匹配,避免重复打标
                break
    return tags

# 批量生成标注结果
annotation_result = {}
for doc_name, sentences in doc_set.items():
    annotation_result[doc_name] = get_doc_tags(sentences, category_keywords)

# 打印结果验证
print(annotation_result)
# 输出: {'Document1': ['Reg'], 'Document2': ['Gov']}

适配特殊场景的调整说明

  • 如果需要忽略大小写匹配,只需要把拼接后的全文和所有关键词都转为小写再比对即可,比如将full_content赋值改为full_content = " ".join(doc_sentence_list).lower(),关键词字典里的关键词也统一存为小写格式
  • 如果需要避免子串误匹配(比如关键词"AI"不想匹配到"said"里的"ai"片段),可以引入正则的单词边界匹配替换原有简单的in判断逻辑
  • 如果文档同时命中多个分类的关键词,代码会自动返回多个分类标签,支持多分类标注场景

内容的提问来源于stack exchange,提问作者Diep Tran

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 04:21:13