--- language: - pt base_model: - neuralmind/bert-base-portuguese-cased --- # Treino de modelos preditivos com Transformers Este repositório usa um modelo pré-treinado, chamado [BERTimbau](https://huggingface.co/neuralmind/bert-base-portuguese-cased), e disponível no site [Hugging Face](https://huggingface.co/). O modelo foi disponibilizado por Fábio Souza, Rodrigo Nogueira e Roberto Lotufo no artigo "BERTimbau: pretrained BERT models for Brazilian Portuguese", publicado na Brazilian Conference in Intelligent Systems (2020). Mais informações estão disponíveis no [repositório](https://github.com/neuralmind-ai/portuguese-bert/) do trabalho. Este modelo foi treinado no [BrWaC (Brazilian Web as Corpus)](https://www.researchgate.net/publication/326303825_The_brWaC_Corpus_A_New_Open_Resource_for_Brazilian_Portuguese) para três tarefas: reconhecimento de entidades nomeadas, similaridade textual de frases, e reconhecimento de implicação textual. Aqui, ele passa por um ajuste-fino (fine-tuning) para classificação de sentimentos em 3 classes: positivo (o texto em questão tem um sentimento positivo), negativo e neutro. Os dados utilizados para fine-tuning são provenientes de avaliações de Ensino-Aprendizagem da UFSM de anos anteriores, e avaliações de comentários dos Restaurantes Universitários. Todos os dados foram anonimizados antes de sua utilização pelo modelo. ## Bibliotecas usadas * CUDA 12.4 * PyTorch 2.3 * PyTorch-CUDA 11.8 * Transformers 4.37.2 * datasets 2.12.0 * scikit-learn 1.4.2 * NumPy 1.24.3 * pandas 1.5.3 ## Treinamento Consulte o repositório do [GitHub](https://github.com/COPLIN-UFSM/nlp) ## Predição ```python from transformers import pipeline, BertTokenizer, BertForSequenceClassification model = BertForSequenceClassification.from_pretrained('COPLIN-UFSM/student-sentiment-analysis-multilabel') tokenizer = BertTokenizer.from_pretrained( 'COPLIN-UFSM/student-sentiment-analysis-multilabel', model_max_length=model.config.max_position_embeddings ) pipe = pipeline('sentiment-analysis', model=model, tokenizer=tokenizer, device='cpu') pipe('eu adoro o professor henry!', top_k=None) ``` A saída será: ```bash [{'label': 'positive', 'score': 0.9967827796936035}, {'label': 'negative', 'score': 0.001376272994093597}] ```