Similaritatea Jaccard măsoară gradul de suprapunere între două mulțimi de elemente (de exemplu, mulțimea cuvintelor sau n-gramelor din două documente). Formula sa este raportul dintre cardinalul intersecției și cardinalul reuniunii mulțimilor: J(A, B) = |A ∩ B| / |A ∪ B|.
Pentru a compara milioane de documente fără a calcula intersecții complete pe perechi, se utilizează MinHash și LSH (Locality Sensitive Hashing):
def jaccard_similarity(set_a, set_b):
intersection = len(set_a.intersection(set_b))
union = len(set_a.union(set_b))
return intersection / union if union > 0 else 0.0
doc1_tokens = {"docker", "container", "microservicii", "cloud"}
doc2_tokens = {"docker", "kubernetes", "microservicii", "cluster"}
sim = jaccard_similarity(doc1_tokens, doc2_tokens)
print(f"Coeficient Jaccard: {sim:.4f}") # 2 comune din 6 unice = 0.3333
MinHash creează semnături compacte de numere întregi prin funcții hash permutate, permițând estimarea similarității Jaccard cu o precizie ridicată și o viteză de ordinul microsecundelor.
Întrebări & Exemple practice:
Similaritatea Jaccard și MinHash pentru Seturi de TokeniAi o întrebare despre Similaritatea Jaccard și MinHash pentru Seturi de Tokeni sau ai descoperit un truc, prompt sau fragment de cod util? Distribuie-l cu ceilalți membri ai comunității!
Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau resurse pentru această pagină. Dacă ai testat un prompt sau ai un snippet util, adaugă-l mai jos pentru comunitate.