Have you ever read an analyst’s report? They are full of some strange turns of phrase. The phrase “we continue to overweight [stock x]” is not a reference to obesity or a lack of a weight watcher program, it means they like this stock. “… will continue to face headwinds” is not a weather report, but a warning that this particular company, or more often this sector, will face higher than usual difficulties in continuing to deliver their quarterly numbers.
This client had a chatbot that could answer simple questions: “What is IBMs closing price?” but they wanted it to be able to answer more nuanced questions especially those that could only be answered if the chatbot understood what the analyst had written.
We built an ontology (actually eight ontology modules, for we had to be able to distinguish such things as KPIs that are common to all businesses (net profit, earning per share etc) and those that are sector specific (same store sales, revenue per square foot, fabrication yields etc) activities that companies might to affect these (enter new markets, develop new products etc). We also created an ontology of how the equity market thinks about stocks (price earnings ratios, market capitalization etc) and finally the kind of vocabulary that each analyst uses.
Teaming with an NLP vendor that is very good at mapping text to bespoke ontologies, we were able to extract and triplify all the analysts’ reports from several sectors. The same NLP vendor also had the ability to covert textual questions (from the chatbot) into SPARQL and query the triple store. The results have been very promising, and a longer term, larger scale effort is currently under way to make this broader (more sectors) and more accurate (increase the relevant return percentage)