BERTopic(二) Fine-tune representation by llm

简介: bertopic

在overview中,使用了KeyBERT来fine-tune representation。BERTopic还支持使用大语言模型来fine-tune。BERTopic支持openai、llama.cpp和langchain。本文使用openai和ollama进行本地部署。

ollama参考https://ollama.com/

import openai
import bertopic.representation
client = openai.OpenAI(
    base_url = 'http://localhost:11434/v1',
    api_key='ollama', # required, but unused
)

representation_model = bertopic.representation.OpenAI(client, model="yi", chat=True)

默认prompt

DEFAULT_CHAT_PROMPT = """
I have a topic that contains the following documents: 
[DOCUMENTS]
The topic is described by the following keywords: [KEYWORDS]

Based on the information above, extract a short topic label in the following format:
topic: <topic label>
"""

简单看看源码的流程,从fit_transform开始,433行self._extract_topics(documents, embeddings=embeddings, verbose=self.verbose)。来到_openai.py,方法extract_topics调用了_extract_representative_docs。对每个有代表性的doc,调用self.client.chat.completions.create,大模型生成一个response,然后用response.choices[0].message.content.strip().replace("topic: ", "")获得label。

下面介绍bertopic.representation.OpenAI的主要参数。默认情况下,四个最有代表性的文档传给[DOCUMENTS]。
可以用nr_docs改变传入的文档数。用参数diversity改善文档过于相似的问题,这个参数在0到1之间,推荐设为0.1。
可以用doc_length截断文档。
tokenizer决定了doc_length的计算方式,例如是按char还是whitespace切分文档。

相关文章
|
机器学习/深度学习 自然语言处理 算法
文本分析-使用jieba库进行中文分词和去除停用词(附案例实战)
文本分析-使用jieba库进行中文分词和去除停用词(附案例实战)
11022 145
|
索引 Python
如何使用Python的Pandas库进行数据合并和拼接?
Pandas的`merge()`函数用于数据合并,如示例所示,根据&#39;key&#39;列对两个DataFrame执行内连接。`concat()`函数用于数据拼接,沿轴0(行)拼接两个DataFrame,并忽略原索引。
533 2
|
SQL 分布式计算 Hadoop
干翻Hadoop系列文章【02】:Hadoop、Hive、Spark的区别和联系
干翻Hadoop系列文章【02】:Hadoop、Hive、Spark的区别和联系
|
存储 项目管理 Python
数据导入与预处理-第4章-数据获取python读取docx文档(上)
数据导入与预处理-第4章-pandas数据获取docx文档 1.python读取docx文档概述 1.1 从Word文件获取数据 1.2 python-docx库介绍 1. Paragraph类 2. Table类
数据导入与预处理-第4章-数据获取python读取docx文档(上)
|
3月前
|
存储 自然语言处理 数据库
别再二选一了:高手都在用的微调+RAG混合策略,今天一次讲透
本文厘清RAG与微调的本质差异:RAG是为模型配“资料员”,解决知识时效与可解释性;微调是为模型“塑性格”,专注行为定制与推理能力。二者非对立,而是互补——真实落地宜采用“RAG管知识、微调管能力”的混合策略,兼顾灵活性与专业性。
|
10月前
|
人工智能 安全 数据可视化
低代码项目管理平台:2025年最具性价比的解决方案指南
低代码项目管理平台结合可视化编程与自动化工具,助力企业快速搭建个性化管理系统,无需深入编码知识。其核心理念是“最少代码,最大灵活性”,支持拖拽组件、配置流程,显著提升开发效率与协作能力。
300 1
|
7月前
|
机器学习/深度学习 自然语言处理 数据可视化
28_主题建模详解:从LDA到BERTopic - 深度解析与教学
主题建模(Topic Modeling)是自然语言处理(NLP)领域的核心技术之一,旨在从大量非结构化文本中自动发现潜在的主题结构和语义模式。随着大语言模型的崛起,主题建模技术也在不断演进,从传统的统计方法到基于深度学习的高级模型,为文本理解、信息检索、舆情分析等任务提供了强大的技术支撑。
1799 0
|
自然语言处理 算法 数据可视化
NLP-基于bertopic工具的新闻文本分析与挖掘
这篇文章介绍了如何使用Bertopic工具进行新闻文本分析与挖掘,包括安装Bertopic库、加载和预处理数据集、建立并训练主题模型、评估模型性能、分类新闻标题、调优聚类结果的详细步骤和方法。
NLP-基于bertopic工具的新闻文本分析与挖掘
|
数据采集 监控 搜索推荐
基于python的百度资讯爬虫的设计与实现
本文介绍了一个基于Python语言的网络爬虫设计与实现,该爬虫利用urllib.request和BeautifulSoup库从百度新闻中抓取新闻标题、链接、内容摘要和来源信息,通过模拟浏览器行为和添加随机等待时间来规避反爬机制,为新闻数据分析和舆情监控提供支持。
1011 2