itdainb/PhoRanker
itdainb
Clasificación de texto
PhoRanker es un modelo cross-encoder diseñado para la clasificación de textos y ordenación de pasajes en Vietnamita. Utiliza la arquitectura de transformers y es compatible con safetensors. Puede ser utilizado para la clasificación de texto, y cuenta con soporte para el ajuste fino y la inferencia a través de diferentes librerías de procesamiento de lenguaje natural.
Como usar
# Instalación de pyvi para segmentación de palabras
pip install pyvi
# Instalación de sentence-transformers (recomendado)
pip install sentence-transformers
# Instalación de transformers (opcional)
pip install transformers
# Preprocesamiento
from pyvi import ViTokenizer
query = "Trường UIT là gì?"
sentences = [
"Trường Đại học Công nghệ Thông tin có tên tiếng Anh là University of Information Technology (viết tắt là UIT) là thành viên của Đại học Quốc Gia TP.HCM.",
"Trường Đại học Kinh tế – Luật (tiếng Anh: University of Economics and Law – UEL) là trường đại học đào tạo và nghiên cứu khối ngành kinh tế, kinh doanh và luật hàng đầu Việt Nam.",
"Quĩ uỷ thác đầu tư (tiếng Anh: Unit Investment Trusts; viết tắt: UIT) là một công ty đầu tư mua hoặc nắm giữ một danh mục đầu tư cố định"
]
tokenized_query = ViTokenizer.tokenize(query)
tokenized_sentences = [ViTokenizer.tokenize(sent) for sent in sentences]
tokenized_pairs = [[tokenized_query, sent] for sent in tokenized_sentences]
MODEL_ID = 'itdainb/PhoRanker'
MAX_LENGTH = 256
# Uso con sentence-transformers
from sentence_transformers import CrossEncoder
model = CrossEncoder(MODEL_ID, max_length=MAX_LENGTH)
# Para uso con fp16
model.model.half()
scores = model.predict(tokenized_pairs)
# 0.982, 0.2444, 0.9253
print(scores)
# Uso con transformers
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
model = AutoModelForSequenceClassification.from_pretrained(MODEL_ID)
tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)
# Para uso con fp16
model.half()
features = tokenizer(tokenized_pairs, padding=True, truncation="longest_first", return_tensors="pt", max_length=MAX_LENGTH)
model.eval()
with torch.no_grad():
model_predictions = model(**features, return_dict=True)
logits = model_predictions.logits
logits = torch.nn.Sigmoid()(logits)
scores = [logit[0] for logit in logits]
# 0.9819, 0.2444, 0.9253
print(scores)
Funcionalidades
- Clasificación de textos
- Compatible con transformers
- Compatible con safetensors
- Modelo cross-encoder
- Reordenación de pasajes
Casos de uso
- Clasificación de consultas y respuestas en Vietnamita
- Reordenación de resultados de búsqueda según su relevancia
- Segmentación de palabras y preprocesamiento de texto en Vietnamita