Extracting a Signal From Unstructured Records
Free text, PDFs and scraped web pages do not arrive as numbers, so turning them into something a model can use is its own research problem before any signal work begins.
Prerequisites: From Raw Data Field to Tradeable Signal
A filing, an earnings-call transcript, or a scraped forum post is not a number. Before any of the usual signal-construction tools apply — z-scoring, neutralizing, combining — someone has to make a first, consequential decision: how do you turn a paragraph of English into a quantity a model can act on? That translation step, not the modeling that follows it, is usually where most of an unstructured-data project's value or failure gets decided.
Extraction always throws information away on purpose. The question is not whether you are compressing a document into a number, but whether you are compressing it in a way that keeps the part that predicts returns.
Three common extraction routes
- Lexicon counting — count occurrences of words from a predefined list (e.g., the Loughran-McDonald finance-specific negative-word list) and turn the count into a rate: negative words per thousand words of text. Simple, transparent, and easy to audit, but blind to context and negation.
- Structured field extraction — pull specific facts out of semi-structured text with rules or a trained extractor: a dollar figure next to the word "guidance," a percentage next to "same-store sales." High precision when it works, but brittle to formatting changes.
- Learned embeddings — feed the text through a language model and use the resulting numeric representation, or a score it produces, directly as a feature. Captures more nuance but is harder to explain and easier to overfit.
Worked example
A researcher builds a "tone" signal from earnings-call transcripts using a finance-specific negative-word lexicon, computing negative-word count divided by total words for each call. Raw counts range from 3 to 41 negative words per call, but total call length ranges from 1,800 to 9,500 words, so raw counts are dominated by call length rather than tone. Dividing by word count produces a rate between 0.3% and 1.1%, which correlates far more cleanly with next-day returns (a Spearman correlation of -0.09 versus -0.01 for the raw count) — a reminder that even a simple extraction choice, normalizing by length, can be the difference between a usable feature and noise.
What this means in practice
Whichever method is used, validate the extraction against a small hand-labeled sample before trusting it at scale: read 30–50 documents yourself, score them by eye, and check that the automated score agrees with your own judgment more often than chance would.
A lexicon or model trained on general text often mislabels finance-specific usage — words like "liability," "tax," or "volatile" are neutral accounting terms in a 10-K but read as strongly negative by a general-purpose sentiment tool built on everyday language.
Related concepts
Practice in interviews
Further reading
- Loughran and McDonald, 'When Is a Liability Not a Liability?'