文本嵌入是自然语言处理(NLP)的基石,提供了文本的数值表示,其中单词或短语成为真实数字的密集向量。这使机器可以理解语义含义和单词之间的关系,从而显着提高其处理人类语言的能力。
这些嵌入对于文本分类,信息检索和语义相似性检测等任务至关重要。 Openai推荐了ADA V2模型来创建它们,从而利用GPT系列的强度来捕获文本中的上下文含义和关联。
在继续之前,假定对OpenAI的API和openai
Python软件包的熟悉程度(请参阅“使用Python中的OpenAI API使用GPT-3.5和GPT-4”以获取指导。了解聚类,尤其是K-均值,也很有帮助(请参阅“与Scikit-Learn在Python中介绍K-Means聚类的简介”)。
文本嵌入的应用:
文本嵌入在许多领域中找到应用程序,包括:
设置和安装:
需要以下python软件包: os
, openai
, scipy.spatial.distance
, sklearn.cluster.KMeans
和umap.UMAP
。使用:
PIP安装-U Openai Scipy Plotly-Express Scikit-Learn Umap-learn
导入所需的库:
导入操作系统 进口Openai 从scipy.Spatial进口距离 导入plotly.extress为px 来自Sklearn.Cluster Import Kmeans 来自UMAP进口UMAP
配置您的OpenAI API密钥:
openai.api_key =”<your_api_key_here> “</your_api_key_here>
(请记住要替换<your_api_key_here></your_api_key_here>
使用您的实际钥匙。)
生成嵌入:
该辅助功能使用text-embedding-ada-002
模型生成嵌入:
def get_embedding(text_to_embed): 响应= openai.embedding.create( 型号=“ text-embedding-ada-002”, 输入= [text_to_embed] ) 嵌入=响应[“数据”] [0] [“嵌入”] 返回嵌入
数据集和分析:
此示例使用Amazon乐器评论数据集(可在Kaggle或作者的GitHub上找到)。为了提高效率,使用了100个评论的样本。
导入大熊猫作为pd data_url =“ https://raw.githubusercontent.com/keitazoumana/experimentation-data/main/main/musical_instruments_reviews.csv” 评论_df = pd.read_csv(data_url)[['eviewText']] 评论_df =评论_df.sample(100) 评论_df [“嵌入”] = eview_df [“评论Text”]。astype(str).apply(get_embedding) 评论_df.Reset_index(drop = true,inplace = true)
语义相似性:
使用scipy.spatial.distance.pdist()
计算的欧几里得距离测量了回顾嵌入之间的相似性。较小的距离表示更大的相似性。
聚类分析(K-均值):
K-均值聚类小组类似评论。在这里,使用了三个集群:
kmeans = kmeans(n_clusters = 3) kmeanss.fit(review_df [“嵌入”]。tolist())
减少维度(UMAP):
UMAP将嵌入维度降低至两个以进行可视化:
还原= umap() embeddings_2d = reducer.fit_transform(eview_df [“ embedding”]。tolist())
可视化:
一个散点图可视化簇:
无花果= px.scatter(x = embeddings_2d [:,0],y = embeddings_2d [:,1],color = kmeans.labels_) 图show()
进一步探索:
要进行高级学习,请探索微调GPT-3和OpenAI API备忘单上的数据扫描资源。
代码示例以更简洁和有组织的方式提出,以提高可读性和理解。根据要求包含图像。
以上是使用OpenAI API利用文本嵌入:实用指南的详细内容。更多信息请关注PHP中文网其他相关文章!