Sobes.tech
Middle

Неліктен осындай әдіс таңдалды (SentenceTransformer + cosine similarity)?

sobes.tech AI

AI-дан жауап

SentenceTransformer-ді косинус жақындығымен бірге пайдалану келесі себептермен негізделген:

  • SentenceTransformer сөйлемдер немесе мәтіндерді семантиканы ескере отырып, тек беткі сөз сәйкестіктерін емес, векторлық көрсетілімдерге айналдырады.
  • Косинус жақындығы екі вектор арасындағы ұқсастық дәрежесін өлшеуге мүмкіндік береді, олардың ұзындығын ескермей, бұл әртүрлі ұзындықтағы мәтіндерді салыстыру үшін ыңғайлы.

Мұндай әдіс ұқсас мәтіндерді табу, кластерлеу немесе ұсыныстар жасау сияқты тапсырмаларда тиімді, мұнда мағынаны түсіну маңызды, нақты сөз сәйкестіктері емес.

Python-да sentence-transformers кітапханасын пайдаланып мысал:

from sentence_transformers import SentenceTransformer
from sklearn.metrics.pairwise import cosine_similarity

model = SentenceTransformer('all-MiniLM-L6-v2')
sentences = ["Мен бағдарламалауды жақсы көремін", "Маған кодтау ұнайды"]
embeddings = model.encode(sentences)

similarity = cosine_similarity([embeddings[0]], [embeddings[1]])[0][0]
print(f"Косинус жақындығы: {similarity:.4f}")