DMetaSoul/sbert-chinese-general-v1
DMetaSoul
Similitud de oraciones
Este modelo se basa en la versión bert-base-chinese del modelo BERT, entrenado en conjuntos de datos de similitud semántica como NLI, PAWS-X, PKU-Paraphrase-Bank, STS, entre otros. Es adecuado para escenarios de coincidencia semántica general (este modelo funciona bien en tareas de Chinese-STS, pero puede no ser óptimo en otras tareas y tiene cierto riesgo de sobreajuste), como extracción de características de texto, agrupación de vectores de texto, búsqueda semántica de texto, etc. Nota: ¡También se ha lanzado una versión más ligera de este modelo!
Como usar
- Transformadores de oraciones
pip install -U sentence-transformers
from sentence_transformers import SentenceTransformer
sentences = ["我的儿子!他猛然间喊道,我的儿子在哪儿?", "我的儿子呢!他突然喊道,我的儿子在哪里?"]
model = SentenceTransformer('DMetaSoul/sbert-chinese-general-v1')
embeddings = model.encode(sentences)
print(embeddings)
- HuggingFace Transformadores
from transformers import AutoTokenizer, AutoModel
import torch
#Media de Agrupación - Tener en cuenta la máscara de atención para el promedio correcto
def mean_pooling(model_output, attention_mask):
token_embeddings = model_output[0] #El primer elemento de model_output contiene todas las incorporaciones de tokens
input_mask_expanded = attention_mask.unsqueeze(-1).expand(token_embeddings.size()).float()
return torch.sum(token_embeddings * input_mask_expanded, 1) / torch.clamp(input_mask_expanded.sum(1), min=1e-9)
# Oraciones para las que queremos las incorporaciones de oraciones
sentences = ["我的儿子!他猛然间喊道,我的儿子在哪儿?", "我的儿子呢!他突然喊道,我的儿子在哪里?"]
# Cargar el modelo desde HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained('DMetaSoul/sbert-chinese-general-v1')
model = AutoModel.from_pretrained('DMetaSoul/sbert-chinese-general-v1')
# Tokenizar las oraciones
encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')
# Calcular las incorporaciones de los tokens
with torch.no_grad():
model_output = model(**encoded_input)
# Realizar la agrupación. En este caso, media de agrupación.
sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])
print("Incorporaciones de las oraciones:")
print(sentence_embeddings)
Funcionalidades
- Similitud de oraciones
- Transformadores de oraciones
- Extracción de características
- Búsqueda semántica
- Incorporaciones de texto
Casos de uso
- Extracción de características de texto
- Agrupación de vectores de texto
- Búsqueda semántica de texto