Xem xét Embeddings (tiếp tục)
Mô hình embedding này được thiết kế cụ thể để chuyển dạng các cụm từ và đoạn văn ngắn của text thành một vector
độ dài cố định trong khi duy trì ý nghĩa ngữ nghĩa. Nó là một trong những models sử dụng phổ biến nhất cho thực
hiện các so sánh ngữ nghĩa giữa các câu. Phần thành công của nó nằm trong thực tế rằng nó đã được huấn luyện trên
các tập dữ liệu đa dạng, làm nó có thể hiểu một phạm vi rộng sắc thái ngôn ngữ, cái cho phép nó duy trì có hiệu
quả ý nghĩa ngữ nghĩa của các texts trong các embeddings kích thước có giới hạn.
Chính từ tò mò, hãy nhìn vào cái gì 5 vị trí đầu tiên của mỗi embedding chứa:
print(embedding_s1[:5])
print(embedding_s2[:5])
print(embedding_s3[:5])
[-0.03452671319246292, 0.03168031945824623, -0.038410935550928116, 0.07523443549871445, -0.041178807616233826]
[-0.009032458066940308, 0.014947189018130302, 0.06308791041374207, 0.0664135292172432, 0.03385469317436218]
[0.017280813306570053, -0.019022809341549873, 0.011131912469863892, -0.0038361537735909224, 0.031334783881902695]
Như mong đợi, chúng ta gặp 5 số cái thông báo cho chúng ta một ít hoặc không có gì về sự tương tự của các
vectors này.
Để nhận dạng các vectors nào là tương tự hơn, tôi sẽ sử dụng một thư viện được biết đến nhiều trong thế giới của
học máy: SKlearn. Thư viện này cung cấp một phong phú các tiện ích cho các nhiệm vụ học máy cổ điển, và cho cơ hội
này, tôi sẽ sử dụng phần metrics của nó, cụ thể là class cái cho phép chúng ta đo lường sự tương tự cosine.
!pip install -q scikit-learn==1.2.2
from sklearn.metrics.pairwise import cosine_similarity
Bây giờ chúng ta có thể sử dụng sự tương tự cosine để nhận dạng các embeddings nào có nhiều tương tự hơn giữa chúng.
Tuy nhiên, trước cái đó, chúng ta cần thực hiện một chuyển dạng nhỏ đối với các embeddings. Hàm mong đợi như các
tham số để so sánh một mảng các embeddings, nên hãy xắp sếp các embeddings của chúng ta thành một mảng một dòng.
import numpy as np
embedding_s1_2d = np.array(embedding_s1).reshape(1, -1)
embedding_s2_2d = np.array(embedding_s2).reshape(1, -1)
embedding_s3_2d = np.array(embedding_s3).reshape(1, -1)
Các embeddings đã ở trong hình thức yêu cầu; một lời gọi đơn giản, và chúng ta có thể tự tin quyết định cái nào
là tương tự hơn cái khác.
print(cosine_similarity(embedding_s1_2d, embedding_s2_2d))
print(cosine_similarity(embedding_s1_2d, embedding_s3_2d))
print(cosine_similarity(embedding_s2_2d, embedding_s3_2d))
[[0.54180279]]
[[0.16314688]]
[[0.25131365]]
Như về luận lí mong đợi, 2 sentences đề cập đến cải thiện phong cách sống bằng cách ăn tốt hơn và tham gia một vài
môn thể thao có sự tương tự cao nhất, trong khi cái thứ ba, chỉ ra một ưa thích cho playing soccer mà không thể hiện
một quan tâm cho phong cách sống khỏe mạnh hơn, duy trì một sự tương tự thấp hơn với 2 cái khác.
- Dự án n8n mẫu lên kế hoạch post đa phương tiện xã hội (phần 4)
- Các nodes tích hợp n8n chuyên dùng (HTTP, Email, Cron, IF, Merge) (phần 2)
- Các nodes tích hợp n8n chuyên dùng (HTTP, Email, Cron, IF, Merge)
- Dự án n8n mẫu lên kế hoạch post đa phương tiện xã hội (phần 3)
- Dự án n8n mẫu lên kế hoạch post đa phương tiện xã hội (phần 2)
