FinBERT-PT-BR

lucas-leme
Clasificación de texto

FinBERT-PT-BR es un modelo de NLP pre-entrenado para analizar el sentimiento de textos financieros en portugués brasileño. El modelo se entrenó en dos etapas principales: modelado del lenguaje y modelado del sentimiento. En la primera etapa, se entrenó un modelo de lenguaje con más de 1.4 millones de textos de noticias financieras en portugués. A partir de este primer entrenamiento, fue posible construir un clasificador de sentimientos con pocos textos etiquetados (500) que presentó una convergencia satisfactoria. Al final del trabajo, se presenta un análisis comparativo con otros modelos y las posibles aplicaciones del modelo desarrollado. En el análisis comparativo, se pudo observar que el modelo desarrollado presentó mejores resultados que los modelos actuales en el estado del arte. Entre las aplicaciones, se demostró que el modelo puede ser utilizado para construir índices de sentimiento, estrategias de inversión y análisis de datos macroeconómicos, como la inflación.

Como usar

from transformers import AutoTokenizer, BertForSequenceClassification
import numpy as np

pred_mapper = {
0: "POSITIVO",
1: "NEGATIVO",
2: "NEUTRAL"
}

tokenizer = AutoTokenizer.from_pretrained("lucas-leme/FinBERT-PT-BR")
finbertptbr = BertForSequenceClassification.from_pretrained("lucas-leme/FinBERT-PT-BR")

tokens = tokenizer(["Hoje a bolsa caiu", "Hoje a bolsa subiu"], return_tensors="pt",
padding=True, truncation=True, max_length=512)
finbertptbr_outputs = finbertptbr(**tokens)

preds = [pred_mapper[np.argmax(pred)] for pred in finbertptbr_outputs.logits.cpu().detach().numpy()]

# Pipeline

from transformers import (
AutoTokenizer, 
BertForSequenceClassification,
pipeline,
)

finbert_pt_br_tokenizer = AutoTokenizer.from_pretrained("lucas-leme/FinBERT-PT-BR")
finbert_pt_br_model = BertForSequenceClassification.from_pretrained("lucas-leme/FinBERT-PT-BR")

finbert_pt_br_pipeline = pipeline(task='text-classification', model=finbert_pt_br_model, tokenizer=finbert_pt_br_tokenizer)
finbert_pt_br_pipeline(['Hoje a bolsa caiu', 'Hoje a bolsa subiu'])

Funcionalidades

Clasificación de texto
Transformadores
PyTorch
Portugués
Puntos de referencia para inferencia

Casos de uso

Índice de sentimiento
Estrategias de inversión
Análisis de datos macroeconómicos (inflación)