Anlamsal arama ve zenginleştirilmiş gömme vektörleri

OpenAI API ile Embeddings’e Giriş

Emmanuel Pire

Senior Software Engineer, DataCamp

Anlamsal arama

  • Bir arama sorgusuna en benzer sonuçları döndürmek için gömme vektörleri kullanın
  • Örnek: Çevrim içi haber sitesi için anlamsal arama

Anlamsal arama nasıl çalışır: arama metni gömme modeliyle gömülür, sonra gömülü arama metni ile gömülü başlıklar arasındaki uzaklık hesaplanır. En yakın başlık döndürülür.

OpenAI API ile Embeddings’e Giriş

Anlamsal arama

Anlamsal arama nasıl çalışır: arama metni gömme modeliyle gömülür, sonra gömülü arama metni ile gömülü başlıklar arasındaki uzaklık hesaplanır. En yakın başlık döndürülür.

  1. Arama sorgusunu ve diğer metinleri gömün
  2. Kosinüs uzaklıklarını hesaplayın
  3. En küçük kosinüs uzaklığına sahip metinleri seçin
OpenAI API ile Embeddings’e Giriş

Zenginleştirilmiş gömme vektörleri

articles = [
    {"headline": "Economic Growth Continues Amid Global Uncertainty",
     "topic": "Business",
     "keywords": ["economy", "business", "finance"]},
    ...
    {"headline": "1.5 Billion Tune-in to the World Cup Final",
     "topic": "Sport",
     "keywords": ["soccer", "world cup", "tv"]}
]
Headline: Economic Growth Continues Amid Global Uncertainty
Topic: Business
Keywords: economy, business, finance
OpenAI API ile Embeddings’e Giriş

Özellikleri F-string’lerle birleştirme

articles = [..., {"headline": "1.5 Billion Tune-in to the World Cup ",
                  "topic": "Sport",
                  "keywords": ["soccer", "world cup", "tv"]}]


def create_article_text(article):
return f"""Headline: {article['headline']} Topic: {article['topic']} Keywords: {', '.join(article['keywords'])}"""
print(create_article_text(articles[-1]))
Headline: 1.5 Billion Tune-in to the World Cup Final
Topic: Sport
Keywords: soccer, world cup, tv
OpenAI API ile Embeddings’e Giriş

Zenginleştirilmiş gömme vektörleri oluşturma

article_texts = [create_article_text(article) for article in articles]

article_embeddings = create_embeddings(article_texts)
print(article_embeddings)
[[-0.019609929993748665, -0.03331860154867172, ...],
 ...,
 [..., -0.014373429119586945, -0.005235843360424042]]
OpenAI API ile Embeddings’e Giriş

Uzaklıkların hesaplanması

from scipy.spatial import distance

def find_n_closest(query_vector, embeddings, n=3):

distances = [] for index, embedding in enumerate(embeddings): dist = distance.cosine(query_vector, embedding) distances.append({"distance": dist, "index": index})
distances_sorted = sorted(distances, key=lambda x: x["distance"])
return distances_sorted[0:n]
OpenAI API ile Embeddings’e Giriş

Arama sonuçlarını döndürme

query_text = "AI"

query_vector = create_embeddings(query_text)[0]
hits = find_n_closest(query_vector, article_embeddings)
for hit in hits: article = articles[hit['index']] print(article['headline'])
Tech Giant Buys 49% Stake In AI Startup
Tech Company Launches Innovative Product to Improve Online Accessibility
India Successfully Lands Near Moon's South Pole
OpenAI API ile Embeddings’e Giriş

Hadi pratik yapalım!

OpenAI API ile Embeddings’e Giriş

Preparing Video For Download...