【python】Gpt-embedding文本建模

2024-08-28 05:12

本文主要是介绍【python】Gpt-embedding文本建模,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

要使用Gpt-embedding计算两组在不同主题下的相似度,可以按照以下步骤进行:

1. 准备数据

  • 收集公司文档 D c D_c Dc 和政府文档 D g D_g Dg

2. 定义主题和关键词

  • 设定主题集合 T = { t 1 , t 2 , … , t n } T = \{t_1, t_2, \ldots, t_n\} T={t1,t2,,tn} 和对应的关键词集合 K ( t i ) K(t_i) K(ti)

3. 生成主题嵌入

  • 对于每个主题 t i t_i ti,生成嵌入向量 E ( t i ) E(t_i) E(ti)
    E ( t i ) = Embedding ( K ( t i ) ) E(t_i) = \text{Embedding}(K(t_i)) E(ti)=Embedding(K(ti))

4. 生成文档嵌入

  • 生成公司文档和政府文档的嵌入向量:
    E ( D c ) = Embedding ( D c ) E(D_c) = \text{Embedding}(D_c) E(Dc)=Embedding(Dc)
    E ( D g ) = Embedding ( D g ) E(D_g) = \text{Embedding}(D_g) E(Dg)=Embedding(Dg)

5. 计算相似度

  • 对于每个主题 t i t_i ti,计算公司文档与主题的相似度 S c ( t i ) S_c(t_i) Sc(ti) 和政府文档与主题的相似度 S g ( t i ) S_g(t_i) Sg(ti)
    S c ( t i ) = CosineSimilarity ( E ( D c ) , E ( t i ) ) S_c(t_i) = \text{CosineSimilarity}(E(D_c), E(t_i)) Sc(ti)=CosineSimilarity(E(Dc),E(ti))
    S g ( t i ) = CosineSimilarity ( E ( D g ) , E ( t i ) ) S_g(t_i) = \text{CosineSimilarity}(E(D_g), E(t_i)) Sg(ti)=CosineSimilarity(E(Dg),E(ti))

  • 计算公司文档与政府文档之间的相似度 $ S(D_c, D_g) $:
    S ( D c , D g ) = CosineSimilarity ( E ( D c ) , E ( D g ) ) S(D_c, D_g) = \text{CosineSimilarity}(E(D_c), E(D_g)) S(Dc,Dg)=CosineSimilarity(E(Dc),E(Dg))

6. 输出结果

  • 输出每个主题的相似度得分:
    Result = { ( t i , S c ( t i ) , S g ( t i ) , S ( D c , D g ) ) ∣ ∀ t i ∈ T } \text{Result} = \{(t_i, S_c(t_i), S_g(t_i), S(D_c, D_g)) | \forall t_i \in T\} Result={(ti,Sc(ti),Sg(ti),S(Dc,Dg))∣∀tiT}

要点

  • 使用text-embedding-3-small模型为每个主题的关键词生成嵌入向量。

  • 使用相同的模型为公司文档和政府文档生成嵌入向量。

  • 对于每个主题,计算公司文档嵌入与政府文档嵌入之间的相似度得分。

示例代码(Python伪代码)

from sklearn.metrics.pairwise import cosine_similarity
import numpy as np
import openai  # 确保你安装了OpenAI的Python库# 假设你有两个文档
company_document = "公司文档内容"
government_document = "政府文档内容"# 定义18个主题和关键词
themes = {"主题1": ["关键词1", "关键词2"],"主题2": ["关键词3", "关键词4"],# 继续为其他主题定义关键词,直到主题18
}# 生成主题嵌入
theme_embeddings = {}
for theme, keywords in themes.items():keywords_str = ' '.join(keywords)embedding = openai.Embedding.create(input=keywords_str, model="text-embedding-3-small")['data'][0]['embedding']theme_embeddings[theme] = embedding# 生成文档嵌入
company_embedding = openai.Embedding.create(input=company_document, model="text-embedding-3-small")['data'][0]['embedding']
government_embedding = openai.Embedding.create(input=government_document, model="text-embedding-3-small")['data'][0]['embedding']# 计算每个主题的相似度
similarity_scores = {}
for theme, theme_embedding in theme_embeddings.items():# 计算公司文档和政府文档与主题的相似度company_similarity = cosine_similarity([company_embedding], [theme_embedding])[0][0]government_similarity = cosine_similarity([government_embedding], [theme_embedding])[0][0]# 计算公司和政府文档之间的相似度document_similarity = cosine_similarity([company_embedding], [government_embedding])[0][0]# 存储相似度得分similarity_scores[theme] = {"company_similarity": company_similarity,"government_similarity": government_similarity,"document_similarity": document_similarity}# 输出结果
for theme, scores in similarity_scores.items():print(f"Theme: {theme}, Company Similarity: {scores['company_similarity']}, Government Similarity: {scores['government_similarity']}, Document Similarity: {scores['document_similarity']}")

这篇关于【python】Gpt-embedding文本建模的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1113822

相关文章

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

4B参数秒杀GPT-3.5:MiniCPM 3.0惊艳登场!

​ 面壁智能 在 AI 的世界里,总有那么几个时刻让人惊叹不已。面壁智能推出的 MiniCPM 3.0,这个仅有4B参数的"小钢炮",正在以惊人的实力挑战着 GPT-3.5 这个曾经的AI巨人。 MiniCPM 3.0 MiniCPM 3.0 MiniCPM 3.0 目前的主要功能有: 长上下文功能:原生支持 32k 上下文长度,性能完美。我们引入了

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

nudepy,一个有趣的 Python 库!

更多资料获取 📚 个人网站:ipengtao.com 大家好,今天为大家分享一个有趣的 Python 库 - nudepy。 Github地址:https://github.com/hhatto/nude.py 在图像处理和计算机视觉应用中,检测图像中的不适当内容(例如裸露图像)是一个重要的任务。nudepy 是一个基于 Python 的库,专门用于检测图像中的不适当内容。该

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

HTML提交表单给python

python 代码 from flask import Flask, request, render_template, redirect, url_forapp = Flask(__name__)@app.route('/')def form():# 渲染表单页面return render_template('./index.html')@app.route('/submit_form',