

Bachelor's degree, Computer Science
High School — Technical in Mechatronics
Sociedade Brasileira de Computação · Sep 2025
Fine-tuned a distilled version of BERTimbau on the CorpusDT corpus to identify rhetorical moves in Portuguese scientific abstracts, achieving an F1-score of 0.94 in sentence classification. Highlights the potential of NLP for enhancing the quality of academic writing in Portuguese.
Portuguese lacks tools to support scientific writing. Swales's rhetorical moves — context, gap, purpose, method, result and conclusion — are usually structured intuitively, and the research gap is often left implicit. The previous reference classifier for Portuguese, AZPort, reached 72% accuracy with a Naive Bayes approach.
CorpusDT — one of the few annotated corpora available in Portuguese — contains just 52 scientific abstracts, too little to fine-tune a Transformer directly.
I built a data-augmentation pipeline that preserves the rhetorical meaning of each sentence — back-translation (PT→EN→PT), synonym substitution, random insertion and swap, and random deletion as regularization — applied stochastically and biased toward the minority classes. This expanded the 52 abstracts into 1,409 balanced sentence examples (stratified 80/20 split). On that set I fine-tuned distilbert-portuguese-cased, a distilled version of BERTimbau, with a 6-class classification head, class-weighted cross-entropy, mixed precision (FP16), AdamW with a cosine scheduler, and early stopping on validation F1.
The final classifier reached a weighted F1 of 0.94 (0.9403 macro) and 93.97% accuracy on the validation set — the best known result for rhetorical-move detection in Portuguese. Error analysis showed misclassifications concentrate between semantically adjacent moves — for example, 7.7% of Result sentences read as Method — a subtle boundary even for human annotators. The errors follow a logical pattern rather than a random one.
ERADSP 2023 · 2023
Contributed to the GUI of iSPD (Iconic Simulator of Parallel and Distributed Systems), a tool for performance analysis of large-scale distributed systems. Led the redesign and reimplementation of the interface in C++ using Qt, focusing on responsive design, event handling and efficient visualization of massive performance metrics.
Flashcards app inspired by Anki.
Interactive interface using ncurses and low-level technologies to manipulate tasks.
A project using threads and OpenAI's Whisper model to convert speech to text.
Web application with a BERT model (ONNX/PyTorch) to help students write scientific articles, providing real-time feedback on structure and coherence.
Web CRM app focused on romantic relationships, helping users organize interactions with potential partners. Just a joke between friends — not to be taken seriously.