BERTopic 自定义参数调整指南

参数重要性排序

极高风险
文本向量化参数
高风险
聚类与降维参数
低风险
其他辅助参数

1. 主题数量控制

控制最终生成的主题数量,这是最重要的参数之一

中级

主题数量模式 (topicCountMode)

选择自动发现还是手动指定主题数量

影响: 高
auto
让算法根据数据特征自动确定主题数
fixed
明确指定要生成的主题数量
建议

新手建议使用自动发现,有经验用户可以根据业务需求手动指定

固定主题数量 (fixedTopicCount)

当选择手动指定时,设置具体的主题数量

2-20
影响: 高
注意事项
  • 设置过少(<3):可能丢失重要信息
  • 设置过多(>文档数/5):可能产生碎片化主题
  • 建议范围:文档数的10%-30%
建议

根据文档内容复杂度设置,一般5-15个主题较为合适

2. 文本向量化参数 ⚠️ 极易出错

控制文本特征提取,影响主题词汇的质量和数量

极高风险

词频过滤参数 - 重点关注!

最小文档频率 (min_df)

词汇至少在多少个文档中出现才被保留

1-50
影响: 极高
注意事项
  • 过大:过滤掉重要的低频词汇
  • 与文档数量相关:小数据集用1-3,大数据集用5-10
建议

小数据集用1,大数据集(>1000文档)用3-5

参数验证公式

有效词汇计算:

保留词汇 = 在 [min_df × 文档总数] 范围内出现的词汇

安全检查:

min_df × 文档总数

⚠️ 如果不满足上述条件,将没有词汇被保留,导致空结果!

举例说明:

假设有100个文档,min_df=5

→ 保留在5到90个文档中出现的词汇

→ 过滤掉只在1-4个文档中出现的生僻词

其他向量化参数

向量化类型 (vectorizer_type)

文本特征提取方式

影响: 中等
tfidf
TF-IDF - 考虑词频和逆文档频率,突出重要词汇
count
Count - 简单词频统计
建议

TF-IDF适合大多数场景,能更好识别主题特征词

N-gram范围 (ngram_range)

考虑的词汇组合长度范围

[1,1] 到 [1,5]
影响: 中等
注意事项
  • [1,1]:只考虑单词
  • [1,2]:考虑单词和词组,推荐设置
  • [1,3+]:包含长词组,可能增加噪声
建议

[1,2] 平衡单词和短语信息

3. HDBSCAN聚类参数

控制密度聚类算法的行为,直接决定主题的形成

高级

最小聚类大小 (min_cluster_size)

形成一个主题至少需要的文档数量

2-50
影响: 高
注意事项
  • 过小(<3):产生大量小主题,可能是噪声
  • 过大(>文档数/5):主题过少,信息粗糙
  • 建议:文档数的3%-10%
建议

小数据集用3-5,大数据集用10-20

最小样本数 (min_samples)

核心点周围的最小邻居数,控制聚类密度要求

1-20
影响: 中等

建议设置为null或min_cluster_size的一半

聚类选择方法 (cluster_selection_method)

从聚类层次结构中选择最终聚类的策略

eom/leaf
影响: 中等

EOM适合大多数场景

4. UMAP降维参数

控制高维文档嵌入向量的降维过程,影响主题的空间分布

高级

邻居数量 (n_neighbors)

每个点考虑的邻居数量,控制局部vs全局结构平衡

2-50
影响: 高

• 过小(<5):保留局部结构,可能产生孤立簇

• 过大(>30):关注全局结构,可能丢失细节

建议:10-20,小数据集用5-10

降维维度 (n_components)

降维后的目标维度数

2-15
影响: 高

• 过小(<3):信息丢失严重

• 过大(>10):降维效果不明显

建议:默认5维适合大多数场景

最小距离 (min_dist)

降维后点之间的最小距离,控制聚集程度

0.001-0.5
影响: 中等

• 过小(<0.01):点过度聚集,难以区分

• 过大(>0.3):点过度分散,失去聚类结构

建议:0.05-0.15适合大多数文本分析任务

其他UMAP参数

spread: 控制降维后点的整体分布范围 (默认1.0即可)
repulsion_strength: 控制点之间的排斥力 (默认1.0即可)
negative_sample_rate: 负采样率 (默认5即可)

5. 距离度量设置

控制不同阶段使用的距离计算方法,影响主题的形成和边界

高级

HDBSCAN距离 (hdbscan_distance)

聚类算法使用的距离度量,直接影响主题划分

影响: 高
euclidean
欧氏距离 - 产生平衡、自然的主题边界 (推荐)
manhattan
曼哈顿距离 - 创建更多细粒度主题
chebyshev
切比雪夫距离 - 基于最突出特征分组
建议

新手建议使用欧氏距离,最稳定且适合大多数场景

嵌入距离 (embedding_distance)

文档嵌入向量间的距离计算方式

推荐:余弦距离(适合文本)

UMAP距离 (umap_distance)

UMAP降维过程中使用的距离度量

推荐:与嵌入距离保持一致

6. 其他设置

影响主题表示和性能的辅助参数

基础

多样性参数 (diversity)

主题词汇的多样性程度,影响主题词的选择

0.0-1.0
影响: 低

• 0:选择最相关的词汇

• 1:最大化词汇多样性

建议:默认0.1适合大多数场景

计算概率 (calculate_probabilities)

是否计算文档属于每个主题的概率

影响: 低

• 开启:提供更丰富信息

• 关闭:信息较少

常见问题与调参建议

常见错误情况

结果为空

通常是min_df设置过大,或者min_cluster_size过大

主题过多

min_cluster_size过小,建议增大到文档数的5-10%

主题质量差

检查n_neighbors和min_dist是否合理

算法崩溃

通常是UMAP参数不兼容,检查n_neighbors是否小于文档数

调参建议流程

  1. 1.
    先用预设策略测试,了解数据特征
  2. 2.
    确定合适的主题数量(手动指定或自动)
  3. 3.
    重点检查min_df,确保参数合理
  4. 4.
    调整min_cluster_size控制主题粒度
  5. 5.
    最后调整UMAP和距离度量参数

参数重要性排序(按出错概率)

极高风险
  • • min_df
  • • min_cluster_size
高风险
  • • n_neighbors
  • • n_components
  • • hdbscan_distance
低风险
  • • diversity
  • • min_dist
  • • calculate_probabilities
  • • max_features
TAT logoText analysis tools
© 2025 tatools.cn 京ICP备2020042889号-2