【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 MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

利用Python编写一个简单的聊天机器人

《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

Python实现高效地读写大型文件

《Python实现高效地读写大型文件》Python如何读写的是大型文件,有没有什么方法来提高效率呢,这篇文章就来和大家聊聊如何在Python中高效地读写大型文件,需要的可以了解下... 目录一、逐行读取大型文件二、分块读取大型文件三、使用 mmap 模块进行内存映射文件操作(适用于大文件)四、使用 pand

python实现pdf转word和excel的示例代码

《python实现pdf转word和excel的示例代码》本文主要介绍了python实现pdf转word和excel的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、引言二、python编程1,PDF转Word2,PDF转Excel三、前端页面效果展示总结一

Python xmltodict实现简化XML数据处理

《Pythonxmltodict实现简化XML数据处理》Python社区为提供了xmltodict库,它专为简化XML与Python数据结构的转换而设计,本文主要来为大家介绍一下如何使用xmltod... 目录一、引言二、XMLtodict介绍设计理念适用场景三、功能参数与属性1、parse函数2、unpa

Python中使用defaultdict和Counter的方法

《Python中使用defaultdict和Counter的方法》本文深入探讨了Python中的两个强大工具——defaultdict和Counter,并详细介绍了它们的工作原理、应用场景以及在实际编... 目录引言defaultdict的深入应用什么是defaultdictdefaultdict的工作原理

Python中@classmethod和@staticmethod的区别

《Python中@classmethod和@staticmethod的区别》本文主要介绍了Python中@classmethod和@staticmethod的区别,文中通过示例代码介绍的非常详细,对大... 目录1.@classmethod2.@staticmethod3.例子1.@classmethod

Python手搓邮件发送客户端

《Python手搓邮件发送客户端》这篇文章主要为大家详细介绍了如何使用Python手搓邮件发送客户端,支持发送邮件,附件,定时发送以及个性化邮件正文,感兴趣的可以了解下... 目录1. 简介2.主要功能2.1.邮件发送功能2.2.个性签名功能2.3.定时发送功能2. 4.附件管理2.5.配置加载功能2.6.

使用Python进行文件读写操作的基本方法

《使用Python进行文件读写操作的基本方法》今天的内容来介绍Python中进行文件读写操作的方法,这在学习Python时是必不可少的技术点,希望可以帮助到正在学习python的小伙伴,以下是Pyth... 目录一、文件读取:二、文件写入:三、文件追加:四、文件读写的二进制模式:五、使用 json 模块读写