Off-the-shelf financial NLP tells you a headline is “negative”. It rarely tells you negative about whom, or whether the thing described already happened. SAFE splits an article into sub-sentence segments, detects the tickers mentioned, and then classifies each segment twice: on a five-class temporal axis (distant past to distant future) and on the eight primary emotions of Plutchik’s wheel. The results are aggregated per company per time bucket, and when two emotions come out close together the system reports the named dyad they form instead of picking a winner. Anticipation plus joy is optimism.
Temporality is deliberately hybrid: Stanford’s SUTime handles explicit dates with rule-based precision, and a fine-tuned BERT takes over only when no date phrase exists. The class boundaries are configuration, not training data, so what counts as “present” can be changed without touching the model.
No dataset existed for either task, so a second deliverable is a CLI that generates and augments labelled data with GPT-4 from a TOML spec and a handful of human-written seed sentences. Before any training, every generated set is validated: each sample is embedded with three independent encoders and pairwise t-tests check that the classes are actually separable. That pass is what caught fear and sadness overlapping under one encoder, a weakness worth knowing before, not after, training.
The honest limitation, stated in the thesis itself: the reported accuracies are validation figures on GPT-4-generated data, with no independent test set. They measure fit to a synthetic distribution, not performance on live market news. And the NER stage only covers NASDAQ listings.