Tương đồng văn bản

Nhập môn Embeddings với OpenAI API

Emmanuel Pire

Senior Software Engineer, DataCamp

Tóm tắt...

 

  • Văn bản tương đồng về ngữ nghĩa được nhúng gần nhau hơn trong không gian véc-tơ
  • Đo khoảng cách để đo độ giống
  • Cho phép các ứng dụng của embedding:
    • Tìm kiếm ngữ nghĩa
    • Gợi ý
    • Phân loại

 

Biểu đồ không gian véc-tơ 2D cho thấy các đánh giá cùng cảm xúc và chủ đề được ánh xạ gần nhau hơn trong không gian véc-tơ.

Nhập môn Embeddings với OpenAI API

Đo độ giống

 

Khoảng cách cosin

from scipy.spatial import distance

distance.cosine([0, 1], [1, 0])
1.0
  • Dao động từ 0 đến 2
  • Số nhỏ hơn = Giống hơn

 

Hai véc-tơ với một đoạn thẳng nối giữa chúng.

Nhập môn Embeddings với OpenAI API

Ví dụ: So sánh độ giống tiêu đề

Danh sách dict chứa tiêu đề và embedding của chúng.

Nhập môn Embeddings với OpenAI API

Ví dụ: So sánh độ giống tiêu đề

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 is the best!", "R is the best!"]))

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

[0.00037010075175203383, ..., -0.021759100258350372]
Nhập môn Embeddings với OpenAI API

Ví dụ: So sánh độ giống tiêu đề

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'])
Công ty công nghệ ra mắt sản phẩm đổi mới để cải thiện khả năng truy cập trực tuyến
Nhập môn Embeddings với OpenAI API

Ayo berlatih!

Nhập môn Embeddings với OpenAI API

Preparing Video For Download...