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

Python项目中跨网站同主题新闻文章聚类实现方法问询

跨网站同主题新闻聚类实现方案

核心思路优化

你的关键词聚类思路方向是对的,但要避免仅靠简单关键词匹配的局限性——比如不同网站对同一事件的表述用词可能不同,单纯关键词重合度容易漏判。需要结合语义层面的相似性和多维度特征来提升聚类准确率。

具体实现步骤

1. 新闻内容预处理

  • 清洗冗余信息:去除抓取到的HTML标签、广告弹窗文本、重复换行等,保留标题和正文核心内容(标题权重可适当提高,因为标题是主题的高度浓缩)
  • 分词与停用词过滤:中文用jieba/pkuseg分词,英文用nltk分词;过滤无意义停用词(如中文“的、了、在”,英文“the、a”),减少干扰特征

2. 特征提取(从关键词到语义向量)

  • 基础版:用TF-IDF算法提取关键词权重,取TOP N高权重词作为文章特征,sklearn的TfidfVectorizer可直接实现
  • 进阶版:用预训练大模型(如BERT中文/英文版本)提取文章语义向量,相比关键词更能捕捉上下文关联,解决不同网站用词差异的问题;也可用LDA主题模型(gensim的LdaModel)提取抽象主题标签

3. 相似性计算与聚类

  • 若用关键词/TF-IDF向量:计算文章间的余弦相似度,设定阈值(如0.7),超过阈值归为同一类;或用K-Means/DBSCAN算法自动聚类,sklearn提供现成实现
  • 若用语义向量:直接基于余弦相似度或欧氏距离计算,DBSCAN更适合无预设聚类数量的场景,能自动识别同主题集群
  • 高效技巧:先通过标题相似度做初步分组,再用正文内容验证,减少全局计算量

4. 聚类后去重与合并

  • 完全重复文章:对正文做MD5哈希,哈希值相同的直接合并
  • 聚类组标签生成:提取每组文章的共同高频关键词或主题词,作为该组的主题标签,方便后续管理

简化代码示例

import jieba
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.cluster import DBSCAN
from sklearn.metrics.pairwise import cosine_similarity

# 文本预处理函数
def preprocess_news(text):
    # 可补充HTML标签清洗逻辑
    seg_words = jieba.cut(text)
    stop_words = {'的', '了', '在', '是', '就'}
    return ' '.join([word for word in seg_words if word not in stop_words])

# 假设news_list为抓取的新闻列表,结构:[{"title": "...", "content": "..."}]
processed_content = [preprocess_news(item['title'] + ' ' + item['content']) for item in news_list]

# 生成TF-IDF向量矩阵
tfidf_vec = TfidfVectorizer()
tfidf_matrix = tfidf_vec.fit_transform(processed_content)

# 计算相似度矩阵,转换为距离矩阵(DBSCAN用距离)
sim_matrix = cosine_similarity(tfidf_matrix)
dist_matrix = 1 - sim_matrix

# DBSCAN聚类
dbscan = DBSCAN(eps=0.3, min_samples=2, metric='precomputed')
cluster_labels = dbscan.fit_predict(dist_matrix)

# 整理聚类结果
cluster_groups = {}
for idx, label in enumerate(cluster_labels):
    if label not in cluster_groups:
        cluster_groups[label] = []
    cluster_groups[label].append(news_list[idx])

关键注意事项

  • 阈值调整:根据新闻类别灵活调整相似度阈值——娱乐新闻用词重复率高,阈值可设为0.75;科技新闻术语独特,阈值可降至0.65
  • 性能优化:大模型语义向量计算成本高,可对长文本做摘要后再提取向量;数据量较大时,用近似最近邻算法(如FAISS)加速相似性计算
  • 时间维度:同一主题新闻的发布时间通常集中,可将发布时间作为辅助特征加入聚类判断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 21:36:30