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