projects

Code behind my research, teaching and side projects, all open source on GitHub.

Research

FallacyRAG

Under review at EACL 2027

Retrieval-augmented fallacy detection and classification in US political debates, with retrieval steered by the support and attack relations between arguments. Improves macro-F1 up to 0.864 for detection and 0.725 for classification over non-retrieval baselines.

Python · RAG · LLMs · Argument mining

RooseBERT

WI-IAT 2026

A BERT language model for political discourse, pre-trained on 11 GB of English debates and speeches (cased and uncased, from scratch or by continued pre-training). Outperforms general-purpose models on most downstream tasks, from stance detection to NER.

Python · BERT · Pre-training · Hugging Face

DebateLens

Work in progress

A SwiftUI iOS app that lets journalists read US presidential debates (1960-2020) as annotated argumentation: claims and premises, what supports or attacks them, and the fallacies used. Built on ElecDeb60to20.

Swift · SwiftUI · iOS

Political Debates Graph Analysis

ArgMining@ACL 2025

Code for 'Leveraging Graph Structural Knowledge to Improve Argument Relation Prediction in Political Debates'. Knowledge graph embeddings over the argument graph of US presidential debates predict support, attack and equivalence relations.

Python · PyTorch · PyKEEN · Knowledge graphs

ElecDeb60to20

Dataset (fork)

Annotated corpus of US presidential debates (1960-2020) with argument components, support and attack relations, and fallacies. A fork of the public dataset repository, which my work on fallacy detection and relation prediction builds on.

Dataset · Argument mining · Fallacies

Teaching

Data Analysis and Visualization

Course material, 2025

Slides, Colab notebooks and solutions for the Data Analysis and Visualization course at CentraleDigitalLab@Nice: exploratory analysis, missing data and outliers, imbalanced data, text encoding, dimensionality reduction and visualization.

Python · Plotly · Jupyter

Machine learning and data

Multi-Source LMs for Audio

Can a language model trained on vector-quantized audio help music generation and source separation? Code to train a VQ-VAE on the Slakh dataset, a Transformer on the quantized representation, and a BERT fine-tuned on codebook indices.

Python · PyTorch Lightning · Hydra

Cross-Lingual Embeddings

An encoder-decoder model that places Italian and French embeddings in a shared latent space, trained with a contrastive loss on Europarl parallel corpora, with hyperparameter optimization and an ablation study.

Python · PyTorch · Transformers

Segmentation Is All You Need

Is segmentation always a useful preprocessing step in computer vision? Compares thresholding, watershed and clustering-based segmentation before classification and object detection, on images of the ten Formula 1 teams.

Python · Computer vision · Object detection

SarcasTweet

A neural network that classifies Italian tweets as sarcastic or not, trained on a manually annotated dataset. The notebook covers collecting tweets, analysis and training; the best model is served by a Flask app packaged as a Docker image.

Python · NLP · Flask · Docker

Smart Houses

Hour-ahead demand response for home energy management, with Vincenzo Imperati. An LSTM forecasts electricity prices twelve hours ahead and multi-agent reinforcement learning schedules each appliance to cut cost and user discomfort.

Python · LSTM · Reinforcement learning

Know a Person by Its Heart

Biometric identification from electrocardiograms, aimed at signals recorded by a smartwatch. Filtering and denoising, feature extraction from the ECG waves, and a classifier evaluated with CMC curves on the PTB diagnostic ECG database.

Python · scikit-learn · Signal processing

Software engineering

QRestaurant

Bachelor thesis

Digital guest registration for restaurants during COVID-19. Customers carry a personal QR code that restaurateurs scan to log attendance and receive alerts about positive cases. A Spring Boot backend and a React web app for restaurateurs.

Java · Spring Boot · React · Docker

Prodigit Bot

Team project, inactive

A Telegram bot that books study rooms at Sapienza for Computer Science master's students, built with a small team. Inactive since the end of the COVID emergency.

Python · Telegram bot

More on GitHub.