hellonlp/simcse-roberta-base-zh
hellonlp
Similitud de oraciones
hellonlp/simcse-roberta-base-zh es un modelo de Hugging Face basado en RoBERTa para la similitud de oraciones. Este modelo utiliza Transformers y PyTorch, y está específicamente diseñado para trabajar con datos en chino. El modelo se entrena y evalúa usando varios conjuntos de datos chinos, incluyendo ATEC, BQ, LCQMC, PAWSX, STS-B, SNLI y MNLI. Los resultados de evaluación se calculan usando un promedio ponderado (w-avg) para mayor precisión.
Como usar
import torch
from transformers import BertTokenizer
from transformers import BertModel
from sklearn.metrics.pairwise import cosine_similarity
# modelo
simcse_sup_path = "hellonlp/simcse-roberta-base-zh"
tokenizer = BertTokenizer.from_pretrained(simcse_sup_path)
MODEL = BertModel.from_pretrained(simcse_sup_path)
def get_vector_simcse(sentence):
"""
Predicción del vector semántico de simcse.
"""
input_ids = torch.tensor(tokenizer.encode(sentence)).unsqueeze(0)
output = MODEL(input_ids)
return output.last_hidden_state[:, 0].squeeze(0)
embeddings = get_vector_simcse("武汉是一个美丽的城市。")
print(embeddings.shape)
#torch.Size([768])
# También puedes calcular la similitud del coseno entre dos oraciones
def get_similarity_two(sentence1, sentence2):
vec1 = get_vector_simcse(sentence1).tolist()
vec2 = get_vector_simcse(sentence2).tolist()
similarity_list = cosine_similarity([vec1], [vec2]).tolist()[0][0]
return similarity_list
sentence1 = '你好吗'
sentence2 = '你还好吗'
result = get_similarity_two(sentence1, sentence2)
print(result) # 0.7996
Funcionalidades
- Similitud de oraciones
- Transformers
- PyTorch
- Apoyo para la codificación de oraciones en embeddings
Casos de uso
- Codificación de oraciones en embeddings
- Cálculo de similitudes de oraciones
- Análisis de la similitud semántica entre oraciones chinas