Python构建新闻热点聚合系统的文本聚类模型设计方法【指导】

直接用TF-IDF+KMeans可跑通基础聚类,但支撑真实热点聚合需在预处理(过滤新闻冗余词、实体保留、数字归一化)、向量化(同义词合并、标题加权、多模型融合)和评估(动态选K、新词增强、簇间合并)三环节针对性设计。

直接用TF-IDF + KMeans就能跑通基础聚类,但要支撑真实热点聚合,得在预处理、向量化和评估三个环节做针对性设计。

中文预处理必须过滤干扰信息

新闻标题和正文常含时间戳、来源标签、广告短语(如“点击查看”“独家爆料”),这些词高频出现却无语义价值。建议:

  • 自定义停用词表,除常规词外,加入“本报讯”“记者获悉”“截至发稿”等新闻特有冗余词
  • 保留名词、动词、地名(ns)、人名(nr)等实体性词性,过滤纯修饰性副词和助词
  • 对数字、年份、股票代码等统一归一化(如“2025年”→“YEAR”,“600519”→“STOCK_CODE”),避免因格式差异割裂同一事件

向量化要兼顾时效与主题区分度

单纯TF-IDF容易让“人工智能”“AI”“大模型”被拆成不同维度,削弱聚类效果。可考虑:

  • 用jieba分词后,手动合并同义词(如将“AI”“人工智能”映射为统一词根)
  • 对标题单独加权(例如TF-IDF中提升标题词权重1.5倍),因为标题更凝练、更具判别性
  • 不依赖单一向量方法:可并行生成TF-IDF向量和Sentence-BERT嵌入,用加权平均融合,提升语义一致性

聚类过程需适配新闻场景特性

新闻数据稀疏、突发性强,KMeans默认假设球形簇,易把“天府智能港运营”和“人工智能+龙头企业”误归一类。建议:

  • K值不固定:用轮廓系数或CH指数在K=3~15区间自动选最优,避免主观设定
  • 对低频但高热度的新词(如“小米YU7 OTA”),用关键词先验增强其向量权重,防止被淹没
  • 聚类后做二次合并:计算簇间中心余弦相似度,若>0.85则人工判定是否应合并(例如“vivo新机发布”和“iQOO电竞手机”可归为“vivo系新品”大类)

基本上就这些。不复杂但容易忽略的是——聚类不是终点,而是给人工运营提供初筛结果。真正好用的热点聚合系统,一定留了人工修正入口和热度衰减机制。