Sakil/sentence_similarity_semantic_search
Sakil
Similitud de oraciones
El modelo de transformadores de oraciones está optimizado para la búsqueda semántica y la similitud de oraciones. El modelo está afinado en el conjunto de datos. Este modelo puede ser usado para búsqueda semántica, similitud de oraciones y sistemas de recomendación. También puede ser utilizado para propósitos de inferencia.
Como usar
pip install -U sentence-transformers
from sentence_transformers import SentenceTransformer, InputExample, losses
import pandas as pd
from sentence_transformers import SentenceTransformer, InputExample
from torch.utils.data import DataLoader
from sentence_transformers import SentenceTransformer, util
model_name="Sakil/sentence_similarity_semantic_search"
model = SentenceTransformer(model_name)
sentences = ['A man is eating food.',
'A man is eating a piece of bread.',
'The girl is carrying a baby.',
'A man is riding a horse.',
'A woman is playing violin.',
'Two men pushed carts through the woods.',
'A man is riding a white horse on an enclosed ground.',
'A monkey is playing drums.',
'Someone in a gorilla costume is playing a set of drums.'
]
#Encode all sentences
embeddings = model.encode(sentences)
#Compute cosine similarity between all pairs
cos_sim = util.cos_sim(embeddings, embeddings)
#Add all pairs to a list with their cosine similarity score
all_sentence_combinations = []
for i in range(len(cos_sim)-1):
for j in range(i+1, len(cos_sim)):
all_sentence_combinations.append([cos_sim[i][j], i, j])
#Sort list by the highest cosine similarity score
all_sentence_combinations = sorted(all_sentence_combinations, key=lambda x: x[0], reverse=True)
print("Top-5 most similar pairs:")
for score, i, j in all_sentence_combinations[0:5]:
print("{} \t {} \t {:.4f}".format(sentences[i], sentences[j], cos_sim[i][j]))
Funcionalidades
- El modelo está afinado en el conjunto de datos de noticias.
- El conjunto de datos incluye el título de la noticia, el contenido de la noticia y la etiqueta (la etiqueta muestra la similitud de coseno entre el título y el contenido de la noticia).
- Implementable para búsqueda semántica.
- Capaz de calcular similitud de oraciones.
- Útil para sistemas de recomendación.
Casos de uso
- Búsqueda semántica
- Similitud de oraciones
- Sistemas de recomendación