Task
I am trying to do some information extraction on earnings reports. I am trying to extract certain metrics, e.g. net sales for quarters. The earnings reports differ quite a lot in how they are structured but they use similar language. A "simple" example follows
Nine-month period in figures
Order bookings increased 6.6% to SEK 1,095.5 million (1,027.9).
Net sales rose 22.8% to SEK 1,153.5 million (939.4). Adjusted for currency fluctuations, sales increased 19.6%.
Operating profit rose 31.3% to SEK 171.8 million (130.8), corresponding to an operating margin of 14.9% (13.9). Adjusted for currency fluctuations, operating profit increased 24.5%.
Profit before tax amounted to SEK 176.3 million (137.9).
This result includes nonrecurring items (refer to page 10 of the attached interim report). These items had a positive net effect of SEK 1.4 million on operating profit.
Cash flow after changes in working capital amounted to SEK 215.2 million (180.4).
Third quarter in figures
Order bookings increased 10.3% to SEK 431.1 million (390.7). Of the order bookings during the quarter, 25% were recognized during the third quarter and 32% to 42% pertain to revenue within 12 months after the end of the quarter.
Net sales increased 38.8% to SEK 457.4 million, while it was SEK 329.5 million in the previous year. Adjusted for currency fluctuations, sales increased 34.9%.
Operating profit rose 98.6% to SEK 99.7 million (50.2), corresponding to an operating margin of 21.8% (15.2). Adjusted for currency fluctuations, operating profit increased 87.6%. Profit before tax amounted to SEK 100.7 million (51.4).
This result includes nonrecurring items (refer to page 10 of the attached interim report). These items had a positive net effect of SEK 1.4 million on operating profit.
Cash flow after changes in working capital amounted to SEK 134.1 million (80.0).
where I have highlighted the metric I want to extract.
Note that Third quarter in figures
is important, i.e. information from previous phrases are needed.
Initial approach
My first strategy is to extract all candidate spans (SEK 1,095.5 million
, SEK 1,153.5 million
etc.) and then classify each one of them (EXTRACT
or DO_NOT_EXTRACT
), but I haven't got any great results with that approach. I was thinking that maybe I could exploit transformer models like BERT etc. to capture context from previous phrases?
I hope someone have a good idea on how to tackle this task.