我尝试从公司提取定性数据'资产负债表/损益表。它们是excel(.xls)文件。
不幸的是,内容结构因公司而异。
例如,
提取收入值:
在公司A中,它位于"收入"旁边。列。
在B公司,它位于"商品和销售收入"列,它被列为每单位千美元。
在C公司,情况更糟。您需要查找包含措辞"来自销售商品的收入和"然后向下移动包含措辞"渲染服务"的下一行,将该列旁边的值添加到包含措辞"废料销售"," Gain的行中的数据关于汇率"和"获得设备处理"。
有超过500多家公司,以及超过20年的过去数据提取(内容也可能每年不同),这就成了问题。我不知道如何处理每个案件。数据非结构化。
所以,我想问的是,那里有没有任何库/ API(最好是JAVA)提取这种模糊信息?如果有人已经这样做,我不想重新发明轮子。是否有任何现成的机器学习API用于此类事情?此外,这些公司没有在美国或其他知名证券交易所上市,因此没有可用的数据提供商。
感谢您的回复。
答案 0 :(得分:0)
坏消息:我很确定没有这样的库/ API,因为你想要的东西太复杂了(至少现在)不能自动完成,特别是在像C这样的情况下:有太多特定于域的语义很难被编码。
好消息:我认为80/20规则对你的情况仍然适用 - 大多数表都有清晰的结构,如A或B,你可以编写简单的脚本来为它们提取值,而其他表必须手动完成。我建议逐步开发这样的脚本:从案例A开始,然后为所有表启动程序。对于失败的表,选择最简单的情况并为其调整代码;等等。我相信这种方式是最快的,虽然不是那么令人兴奋。
在this paper中描述了从表中半自动提取所需信息的一种更有趣的方法(对不起自引)。不幸的是,没有工作库或API,但我认为这个想法很简单,很容易编码。
答案 1 :(得分:0)
公司通常以基于名为XBRL的XML的计算机可读格式提供此信息。此格式允许您以编程方式提取您正在谈论的语义信息。与XML相关,规范自然非常密集,但信息就在那里。
作为一个随机的例子,埃克森美孚在他们的investors site上自由发布他们的数据。