Learn AI with Python · Lekcja

Podobieństwo semantyczne i osadzenia zdań

Sentence-BERT, podobieństwo cosinusowe na potrzeby wyszukiwania semantycznego, klasteryzacja osadzeń.

Lekcja 4 z 413 kroki

Podobieństwo semantyczne i osadzenia zdań to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Learn AI with Python, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn AI with Python zawiera 4 lekcji w sumie.

Zdania, nie tylko słowa

Osadzenia słów reprezentują słowa, ale często musimy porównywać całe zdania lub dokumenty. Uśrednianie wektorów słów powoduje utratę niuansów; potrzebujemy pojedynczego wektora, który uchwyci pełne znaczenie.

Czym są osadzenia zdań

Osadzenia zdań mapują całe zdanie na jeden gęsty wektor, dzięki czemu zdania o podobnym znaczeniu mają sąsiadujące wektory, co umożliwia wyszukiwanie semantyczne i grupowanie.

Biblioteka sentence-transformers

Biblioteka sentence-transformers ułatwia to zadanie. Udostępnia dostrojone modele transformerowe, które bezpośrednio generują wysokiej jakości wektory zdań.

from sentence_transformers import SentenceTransformer

model = SentenceTransformer("all-MiniLM-L6-v2")

Dlaczego all-MiniLM-L6-v2

all-MiniLM-L6-v2 to popularny wybór domyślny: jest mały, szybki i dokładny, a także generuje wektory o 384 wymiarach. W większości zastosowań zapewnia dobry kompromis między szybkością a jakością.

Kodowanie zdań

model.encode przekształca listę zdań w macierz osadzeń, w której każdy wiersz odpowiada jednemu zdaniu.

sentences = [
    "The cat sits on the mat.",
    "A feline rests on the rug.",
    "I am learning machine learning.",
]
embeddings = model.encode(sentences)
print(embeddings.shape)   # (3, 384)

Pomiar podobieństwa

Podobieństwo cosinusowe mierzy kąt między dwoma wektorami, ignorując ich długość. Wartości bliskie 1 oznaczają bardzo podobne znaczenie, a wartości bliskie 0 — brak związku.

from sentence_transformers import util

sim = util.cos_sim(embeddings[0], embeddings[1])
print(sim.item())   # high, both about a cat resting

Używanie sklearn cosine_similarity

Można również użyć bezpośrednio biblioteki scikit-learn na macierzy osadzeń, aby uzyskać pełną macierz podobieństwa dla każdej pary.

from sklearn.metrics.pairwise import cosine_similarity

matrix = cosine_similarity(embeddings)
print(matrix)   # (3, 3) pairwise similarities

Idea wyszukiwania semantycznego

Wyszukiwanie semantyczne znajduje dokumenty na podstawie znaczenia, a nie słów kluczowych. Należy zakodować zapytanie i wszystkie dokumenty, a następnie uszeregować dokumenty według ich podobieństwa cosinusowego do wektora zapytania.

Przykład wyszukiwania semantycznego

Zakoduj korpus raz, a następnie dla każdego zapytania oblicz podobieństwa i zwróć najlepiej dopasowane wyniki.

from sentence_transformers import util

corpus = ["How to reset my password", "Refund policy details", "Track my order"]
corpus_emb = model.encode(corpus)

query_emb = model.encode("I forgot my login")
hits = util.semantic_search(query_emb, corpus_emb, top_k=2)
print(hits)

Zastosowania w praktyce

Osadzenia zdań napędzają dopasowywanie odpowiedzi w FAQ, wykrywanie duplikatów, grupowanie, rekomendacje oraz etap wyszukiwania w systemach RAG, które dostarczają odpowiedni kontekst dużym modelom językowym.

Wskazówki dotyczące dobrych wyników

Wybierz model wytrenowany do danego zadania (wyszukiwanie semantyczne lub parafrazy). Normalizuj osadzenia, jeśli wymaga tego używana miara podobieństwa, a w przypadku dużych korpusów korzystaj z bazy wektorowej, aby szybko wyszukiwać najbliższych sąsiadów.

Szybki test

Sprawdź swoją wiedzę na temat osadzeń zdań.

Podsumowanie

Podsumowanie: Osadzenia zdań kodują całe zdania jako wektory. Użyj SentenceTransformer("all-MiniLM-L6-v2") i model.encode(sentences), a następnie porównuj je za pomocą podobieństwa cosinusowego. Stanowi to podstawę wyszukiwania semantycznego: zakoduj zapytanie i korpus, a następnie uszereguj wyniki według podobieństwa. Jest to kluczowe dla dopasowywania odpowiedzi w FAQ, grupowania i wyszukiwania w systemach RAG.

Bezpłatny start

Ucz się Python dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
53
Lekcje
225

Często zadawane pytania

Czy lekcja „Podobieństwo semantyczne i osadzenia zdań” jest bezpłatna?

Tak — pełny tekst „Podobieństwo semantyczne i osadzenia zdań” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Learn AI with Python, przejdź na CoddyKit PRO. Kurs Learn AI with Python zawiera 4 lekcji w sumie.

Co nauczysz się w „Podobieństwo semantyczne i osadzenia zdań”?

Sentence-BERT, podobieństwo cosinusowe na potrzeby wyszukiwania semantycznego, klasteryzacja osadzeń. Ćwiczysz Learn AI with Python z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Learn AI with Python?

Nie wymagamy żadnego doświadczenia. Learn AI with Python w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Podobieństwo semantyczne i osadzenia zdań”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Learn AI with Python?

Tak. Każda lekcja Learn AI with Python zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Word2Vec: Skip-gram i CBOW
  2. Osadzenia GloVe i FastText
  3. Klasyfikacja tekstu za pomocą BERT
  4. Podobieństwo semantyczne i osadzenia zdań
← Powrót do Learn AI with Python