文本嵌入是自然語言處理(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中文網其他相關文章!