BERTopic 开源项目教程
项目介绍
BERTopic 是一个基于 🤗 transformers 和 c-TF-IDF 的主题建模技术,能够创建密集的集群,使得主题易于解释,同时保留主题描述中的重要词汇。BERTopic 支持多种主题建模技术,包括引导式、监督式、半监督式、手动、多主题分布、层次化、基于类别、动态、在线/增量、多模态和多方面的文本生成/LLM 零样本(新)、合并模型(新)和种子词(新)。
项目快速启动
安装
首先,通过 pip 安装 BERTopic:
pip install bertopic
快速启动示例
以下是一个快速启动示例,使用 BERTopic 从著名的 20 新闻组数据集中提取主题:
from bertopic import BERTopic
from sklearn.datasets import fetch_20newsgroups
# 加载数据
docs = fetch_20newsgroups(subset='all', remove=('headers', 'footers', 'quotes'))['data']
# 初始化 BERTopic 模型
topic_model = BERTopic()
# 训练模型并提取主题
topics, _ = topic_model.fit_transform(docs)
# 输出前 10 个主题
print(topic_model.get_topic_info().head(10))
应用案例和最佳实践
应用案例
BERTopic 可以应用于多种场景,例如:
- 新闻分类:自动将新闻文章分类到不同的主题中。
- 社交媒体分析:分析社交媒体上的话题趋势。
- 文档管理:帮助组织和检索大量文档。
最佳实践
- 参数调优:根据具体应用场景调整 BERTopic 的参数,如嵌入模型、聚类算法等。
- 主题可视化:使用 BERTopic 提供的可视化工具,如条形图、热图等,帮助理解主题结构。
- 主题更新:随着新数据的加入,定期更新主题模型以保持其准确性。
典型生态项目
BERTopic 可以与其他开源项目结合使用,构建更强大的文本分析系统。例如:
- Hugging Face Transformers:用于文本嵌入。
- Scikit-learn:用于数据预处理和模型评估。
- Plotly:用于高级可视化。
通过这些生态项目的结合,可以进一步提升 BERTopic 在实际应用中的效果和灵活性。