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

基于主题词列表匹配的文章领域分类打标实现咨询

文章多领域标签匹配实现方案

规则说明

按照给定的分类逻辑,基于文章Topics字段的主题词做存在性匹配:

  • 预设3个分类领域及对应主题词表:
    • Nature(自然领域):Animals、Plants
    • Technology(科技领域):Computer、HiFi、AI、Intelligent Systems、IOT、Machine Learning
    • Food(美食领域):Pizza、Fast Food、Hamburger、Hot Dog、Salad、Fries
  • 单篇文章的Topics只要包含某领域下任意1个主题词,该文章对应领域列标记为1,否则标记为0
  • 单篇文章可同时命中多个领域,对应多个领域列同时为1
  • 若文章所有主题词都未命中上述3个领域的词表,NC(未分类)列标记为1,否则为0

实现代码(Pandas 环境)

import pandas as pd

# 定义领域-主题词映射
area_word_map = {
    "Nature": {"Animals", "Plants"},
    "Technology": {"Computer", "HiFi", "AI", "Intelligent Systems", "IOT", "Machine Learning"},
    "Food": {"Pizza", "Fast Food", "Hamburger", "Hot Dog", "Salad", "Fries"}
}

# 读取数据集,此处用示例数据演示,实际使用时替换为你的数据读取逻辑
ds = pd.DataFrame([
    [1, "abcd...", 9999, "Animals"],
    [2, "aabbcc..", 8888, "AI, Computer, HiFi"],
    [3, "aaabbb", 7777, "Hot Dog, Animals"],
    [4, "cccbb", 6666, "Dataset, R"],
    [5, "dddss", 64, "Hamburger, AI"]
], columns=["Id", "ArticleName", "Pages", "Topics"])

# 逐领域匹配打标
for area in area_word_map:
    ds[area] = ds["Topics"].apply(
        lambda topic_str: 1 if set(t.strip() for t in topic_str.split(",")) & area_word_map[area] else 0
    )

# 计算未分类标记
ds["NC"] = (ds[list(area_word_map.keys())].sum(axis=1) == 0).astype(int)

运行结果

执行代码后输出的数据集结构和预期完全一致:

Id ArticleName  Pages             Topics  Nature  Technology  Food  NC
0   1      abcd...   9999            Animals       1           0     0   0
1   2    aabbcc..   8888  AI, Computer, HiFi       0           1     0   0
2   3      aaabbb   7777   Hot Dog, Animals       1           0     1   0
3   4       cccbb   6666         Dataset, R       0           0     0   1
4   5       dddss     64     Hamburger, AI       0           1     1   0

注意点

  • 拆分主题词时做了空格去除处理,避免Topics字段里逗号前后的空格导致匹配失效
  • 用集合交集做匹配判断,比循环遍历词表的执行效率更高,适合大批量数据集处理
  • 如果后续需要新增领域或者新增主题词,直接修改area_word_map字典即可,不需要改动核心匹配逻辑

内容的提问来源于stack exchange,提问作者Giuseppe Caputo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 19:51:18