TAACO_Similarity

KDHyun08
Similitud de oraciones

El modelo TAACO_Similarity está basado en Sentence-transformers y ha sido entrenado utilizando el conjunto de datos STS (Similaridad Textual de Frases) de KLUE. Este modelo fue desarrollado para medir la cohesión semántica entre frases en coreano, siendo uno de los indicadores de la herramienta de medición de cohesión entre frases coreana K-TAACO (nombre provisional). Además, se planea continuar el entrenamiento utilizando diversos datos, incluyendo el conjunto de datos de similaridad de frases de 'Todos los Cuerpos'.

Como usar

Para usar este modelo, se debe instalar Sentence-transformers:

pip install -U sentence-transformers

Después, use el siguiente código para obtener los embeddings de las frases:

from sentence_transformers import SentenceTransformer, models
sentences = ["This is an example sentence", "Each sentence is converted"]
embedding_model = models.Transformer(
 model_name_or_path="KDHyun08/TAACO_STS", 
 max_seq_length=256,
 do_lower_case=True
)
pooling_model = models.Pooling(
 embedding_model.get_word_embedding_dimension(),
 pooling_mode_mean_tokens=True,
 pooling_mode_cls_token=False,
 pooling_mode_max_tokens=False,
)
model = SentenceTransformer(modules=[embedding_model, pooling_model])
embeddings = model.encode(sentences)
print(embeddings)

Para comparar la similaridad entre frases después de instalar Sentence-transformers, use el siguiente código:

from sentence_transformers import SentenceTransformer, models
embedding_model = models.Transformer(
 model_name_or_path="KDHyun08/TAACO_STS", 
 max_seq_length=256,
 do_lower_case=True
)
pooling_model = models.Pooling(
 embedding_model.get_word_embedding_dimension(),
 pooling_mode_mean_tokens=True,
 pooling_mode_cls_token=False,
 pooling_mode_max_tokens=False,
)
model = SentenceTransformer(modules=[embedding_model, pooling_model])
docs = ['Frase 1', 'Frase 2', ..., 'Frase N']
document_embeddings = model.encode(docs)
query = 'Frase de consulta'
query_embedding = model.encode(query)
top_k = min(10, len(docs))
cos_scores = util.pytorch_cos_sim(query_embedding, document_embeddings)[0]
top_results = torch.topk(cos_scores, k=top_k)
print(f"Frase de entrada: {query}")
print(f"\n {top_k} frases más similares:\n")
for i, (score, idx) in enumerate(zip(top_results[0], top_results[1])):
    print(f"{i+1}: {docs[idx]} {'(similaridad: {:.4f})'.format(score)}\n")

Los resultados de la evaluación muestran, por ejemplo:

Frase de entrada: 'Frase de ejemplo'
1: Frase más similar (similaridad: 0.6687)
2: Otra frase similar (similaridad: 0.6468)
...

Funcionalidades

Basado en Sentence-transformers
Entrenado con el dataset STS de KLUE
Medición de cohesión semántica entre frases en coreano
Uso de diferentes datasets para entrenamiento adicional
Uso de la biblioteca PyTorch y Transformers

Casos de uso

Medición de la cohesión semántica entre frases en coreano
Comparación de similaridad textual entre frases
Aplicaciones en procesamiento de lenguaje natural para el coreano
Desarrollo de herramientas de análisis de texto