Skip to content

涉及概念

嵌入模型

  • 将文本转化为语义向量
  • paraphrase-multilingual-MiniLM-L12-v2
  • 将句子/文档编码为稠密向量(如384维)
  • 捕获深层语义(相比传统TF-IDF)
  • 支持多语言文本处理

KeyBERT 表示模型

  • 提升主题关键词质量
  • 基于BERT嵌入计算词-文档相似度
  • 提取与主题最相关的关键词

GPT

  • 生成人类可读的主题标签

向量化器 (CountVectorizer)

  • 构建文本的词汇级特征

UMAP降维模型

  • 将高维的文本嵌入向量(如BERT生成的768维向量)降维到低维空间(如2维或5维),便于后续聚类。
  • n_neighbors:控制局部与全局结构的平衡,值越小越关注局部特征。
  • min_dist=0.0:允许降维后的点重叠,更适合紧密的聚类。
  • metric='cosine':适合文本数据,忽略向量长度,专注方向相似性。

HDBSCAN聚类模型

  • 在降维后的空间中识别密度不同的主题簇,自动发现主题数量
  • min_cluster_size:避免过小主题,值越大主题越通用。
  • eom(Excess of Mass):倾向于选择更稳定的聚类,适合主题建模。
  • min_samples:值越大,聚类越保守(噪声可能增多)。

BERTopic主题建模模型

  • 整合嵌入、降维、聚类流程,生成人类可解释的主题。
  • 端到端流程:从原始文本到主题标签全自动处理。
  • 适用于中文、英文等混合语料。
  • 默认用c-TF-IDF提取关键词,也可用representation_model增强(如GPT生成更自然的主题描述)。
  • 灵活性:允许替换任一组件(如用t-SNE替代UMAP)。

协作流程

img.png

主题的构成

  • 关键词列表:通过算法(如c-TF-IDF或LLM)从属于该主题的文档中提取的代表性词汇。 例如:一个主题的关键词可能是["疫苗", "接种", "副作用", " Pfizer"]。
  • 语义表示:隐含的语义空间(由嵌入模型和降维聚类共同决定),可能无法直接显示,但通过关键词和文档分布反映

关键词如何生成?

BERTopic默认使用 c-TF-IDF(class-based TF-IDF)提取关键词:

  • 原理:将每个主题视为一个“类”(class),计算该类中所有文档的词频,并与全局词频对比,选出区分度高的词。
  • 关键词的权重既考虑主题内频率,也考虑全局罕见性。

主题 ≠ 关键词

  • 主题本质上是语义相似的文档簇,关键词只是对簇内文档的“文字化摘要”。同一主题的文档可能有不同的表面词汇但共享深层语义。
  • 关键词会根据文档分布动态调整。如果新文档加入,关键词可能变化,但主题的语义核心可能不变。
  • 如果用representation_model(如GPT),主题描述可以是自然语言句子,而非单纯关键词列表。 例如:GPT生成的主题描述可能是 “该主题讨论新冠疫苗接种相关话题,包括品牌(如Pfizer)、接种流程和副作用反馈”。

✨ 网站运行时间: 3年11月15天 ❤️ 道阻且长,行则将至 - 微信号: heikedreamer