Metin benzerliği

OpenAI API ile Embeddings’e Giriş

Emmanuel Pire

Senior Software Engineer, DataCamp

Özet...

 

  • Anlamsal olarak benzer metinler vektör uzayında birbirine daha yakındır
  • Uzaklığı ölçmek, benzerliği ölçmemizi sağlar
  • Gömme tabanlı uygulamalar:
    • Anlamsal arama
    • Öneriler
    • Sınıflandırma

 

2B vektör uzayında, aynı duygu ve konuya sahip yorumların birbirine daha yakın eşlendiğini gösteren grafik.

OpenAI API ile Embeddings’e Giriş

Benzerliği ölçme

 

Kosinüs uzaklığı

from scipy.spatial import distance

distance.cosine([0, 1], [1, 0])
1.0
  • 0 ile 2 arasında değişir
  • Küçük değerler = Daha yüksek benzerlik

 

Aralarında düz bir çizgi olan iki vektör.

OpenAI API ile Embeddings’e Giriş

Örnek: Başlık benzerliğini karşılaştırma

Başlıklar ve gömmelerini içeren sözlük listesi.

OpenAI API ile Embeddings’e Giriş

Örnek: Başlık benzerliğini karşılaştırma

def create_embeddings(texts):
  response = client.embeddings.create(
    model="text-embedding-3-small",
    input=texts
  )
  response_dict = response.model_dump()

  return [data['embedding'] for data in response_dict['data']]
print(create_embeddings(["Python en iyisidir!", "R en iyisidir!"]))

print(create_embeddings("DataCamp harika!")[0])
[[0.0050565884448587894, ..., , -0.04000323638319969],
 [-0.0018890155479311943, ..., -0.04085670784115791]]

[0.00037010075175203383, ..., -0.021759100258350372]
OpenAI API ile Embeddings’e Giriş

Örnek: Başlık benzerliğini karşılaştırma

from scipy.spatial import distance
import numpy as np

search_text = "computer"
search_embedding = create_embeddings(search_text)[0]
distances = []
for article in articles:
dist = distance.cosine(search_embedding, article["embedding"])
distances.append(dist)
min_dist_ind = np.argmin(distances)
print(articles[min_dist_ind]['headline'])
Çevrimiçi erişilebilirliği artırmak için yenilikçi ürününü piyasaya süren teknoloji şirketi
OpenAI API ile Embeddings’e Giriş

Hadi pratik yapalım!

OpenAI API ile Embeddings’e Giriş

Preparing Video For Download...