ahmedheakl/bert-resume-classification
ahmedheakl
Clasificación de texto
BERT para la clasificación de CVs. Este modelo está diseñado para realizar clasificaciones precisas en grandes conjuntos de datos de CVs, usando técnicas avanzadas de modelos lingüísticos. Específicamente entrenado con el dataset ResumeAtlas, este modelo promete una alta capacidad de inferencia y precisión en la clasificación de textos de CVs.
Como usar
Cómo usar
En este ejemplo, realizamos una inferencia en una muestra de nuestro conjunto de datos (ResumeAtlas). Puedes aumentar max_length para obtener predicciones más precisas.
!pip install datasets
import numpy as np
import torch
from transformers import BertForSequenceClassification, BertTokenizer
from datasets import load_dataset
from sklearn import preprocessing
dataset_id='ahmedheakl/resume-atlas'
model_id='ahmedheakl/bert-resume-classification'
label_column = "Category"
num_labels=43
output_attentions=False
output_hidden_states=False
do_lower_case=True
add_special_tokens=True
max_length=512
pad_to_max_length=True
return_attention_mask=True
truncation=True
ds = load_dataset(dataset_id, trust_remote_code=True)
le = preprocessing.LabelEncoder()
le.fit(ds['train'][label_column])
tokenizer = BertTokenizer.from_pretrained(model_id, do_lower_case=do_lower_case)
model = BertForSequenceClassification.from_pretrained(model_id, num_labels=num_labels, output_attentions=output_attentions, output_hidden_states=output_hidden_states, )
model = model.to('cuda').eval()
sent = ds['train'][0]['Text']
encoded_dict = tokenizer.encode_plus(sent, add_special_tokens=add_special_tokens, max_length=max_length, pad_to_max_length=pad_to_max_length, return_attention_mask=return_attention_mask, return_tensors='pt', truncation=truncation, )
input_ids = encoded_dict['input_ids'].to('cuda')
attention_mask = encoded_dict['attention_mask'].to('cuda')
outputs = model(
input_ids,
token_type_ids=None,
attention_mask=attention_mask
)
label_id = np.argmax(outputs['logits'].cpu().detach().tolist(), axis=1)
print(f'Predicted: {le.inverse_transform(label_id)[0]} | Ground: {ds['train'][0][label_column]}')
Funcionalidades
- Clasificación de textos
- Basado en Transformers
- Compatible con formato Safetensors
- Modelo preentrenado BERT
- Capacidad para manejar hasta 43 etiquetas
- Opciones avanzadas como output_attentions y output_hidden_states
Casos de uso
- Clasificación de CVs
- Predicción de categorías de CVs
- Análisis de grandes datasets de CVs