一份文档放在你面前,哪一部分是表格,哪一部分是图片,哪一部分是段落,每个段落是在说什么,一目了然,你内心吐槽,这还需要任何思考嘛!
但是计算机比较文盲,如果你不告诉它这一块是什么东西,它就不知道是什么东西,对它来说,这些都是二进制数据。
怎么办呢?今天的演讲正围绕此展开,一场席卷几十亿群体的文盲行动就此展开。
作者介绍:
王爽,数据工程师,觉得自然语言处理挺好玩的,日常工作主要是从金融文档中挖掘信息。喜欢文本结构化相关技术,期待有一天能用在历史文献的处理上。
王爽:大家下午好,我是王爽,在文因互联主要负责数据挖掘。今天给大家演讲的主题是如何拯救几十亿文盲(笑)好吧,严肃一点,《如何让机器读懂文档》。
先说说为什么要做这件事。
我们知道,人类的知识是要存储到文档当中的。先给大家看三张图片。
最左侧的一张图片是著名的亚历山大图书馆,但是它是希腊式文化的文化中心,就是因为这个图书馆太著名了,基本上所有的古希腊经典都囊括进来,导致它虽然不在希腊,反而成了希腊式文化的中心。
欧洲进入中世纪,希腊式文化衰败,文化中心到了阿拉伯帝国的巴格达,因为巴格达有一个非常著名的图书馆叫智慧宫图书馆,中间那幅图就是对这座图书馆的想象,这个图书馆更不得了,直接开启了整个伊斯兰文化的黄金时代。
当然不只是国外了,中国国内有很多的图书馆,右图是天一阁藏阁楼里面的一些藏书。基本上每个地方只要有藏书楼,它就是这个区域的文化中心。
这么多的知识存储在这些文档中,都是给人类准备的,计算机并不能理解。这样一个强大的“劳动力”竟然是个文盲!太可惜了!
怎么让计算机理解文档?这是一个开放命题,而且是非常活跃的研究领域。
“文因互联在这方面做了非常多的工作,但因为这个问题本身非常宏大,最终还是集中到了财务文档这个子领域上。
从宏观上来讲,这个过程主要分成两个步骤:第一个步骤是文档结构化,把文档中所有的信息点提取出来;第二个步骤是建立知识图谱,知识图谱的作用就是把提取出来的信息点互相关联起来,最终成为计算机可以理解的知识。”
我们今天的侧重点主要在于第一步,文档结构化。
拯救文盲行动开始——
机器看到的文档是什么样子的?
我们以PDF文档为例,详细讲解一下,文档结构化这一块到底在做什么事情。
第一件事儿,就是要让机器读懂信息。
下面这张图,最左边是一个企业参与的所有仲裁事件的文档,我们人一看就明白这些东西,哪一部分内容是表格,哪一部分是图,或者哪一部分是段落,一目了然,不需要任何思考,因为我们的大脑经过多年的进化,充分适应了图表混排的格式。
但是计算机比较文盲,如果你不告诉它这一块是什么东西,它就不知道是什么东西。计算机看来,这份文档其实只有字符以及其位置等简单的信息,如中间这张图显示的那样,并没有我们人看PDF时的那种表格结构。
PDF内部只是规定了比如说“万”这个字,它应该在屏幕上什么位置,或者说这个线条,应该在屏幕上什么位置出现。这些元素本身没有任何语义上的信息。
我们的工作就是把完全没有语义信息的数据,通过一步步抽象、一步步计算,最终达到结构化数据的效果,正如最右边这张图示意的那样。
文档提取的技术难点
文档结构化过程中,到底有什么技术难点呢?
整个过程大体上分为文档解析,版面分析,篇章分析,表格提取,文本提取等五个步骤。
首先需要让机器读懂人是如何认知文章结构的。这需要运用计算机视觉的技术,计算人看到的结构是什么样的。以及自然语言处理的技术,计算这些字符组合在一起是如何被人理解的,所以需要做好版面分析与篇章分析,这两个前置工作。
在此基础上继续用更深层次的提取技术,从表格中、文本中把相关的信息提取出来。这些技术就包括深度神经网络,基于金融领域独有的知识与逻辑规则开发出来的提取技术等等。
我们具体用什么技术来解决这些难点呢?这个部分就很细节了,可以说每一步都要用很多种技术的综合处理来解决。
举一个具体的小点,比如说章节结构这一个小点,我怎么能知道这句话是描述一个章节的标题,我们就可以使用深度学习里面的LSTM Classifier来做一些判断。此外,我们也会针对具体的文档结构归纳出来一些规则,来辅助进行推理。
再比如命名实体识别这个环节,其实就从文本中识别出来各种各样的公司、财务指标这些信息,我们会有机会使用传统的基于机器学习的条件随机场算法来做一些推断。因为我们累计了大量的公司名、人名、财务指标实体库,我们会把这些信息再综合利用上,对条件随机场的输出做一些后处理,来提高precision。这张图里的信息点也比较多,我剩下的都不再一一讲解了。
走完了所有的流程,文盲拯救完成了,这些家伙从此可以愉快地提取文档信息了,基本达到小学生水平。
第二步,如何用知识图谱把提取出来的信息点互相关联起来,最终成为计算机可以理解的知识,顺利拿到高中毕业证,请听下回分解。
结构化数据有什么用?
假设解决了全部问题,拿到了一份结构化数据,当然想做点事。
怎么才能样最大化程度地利用它的价值,这也是一个开放问题,因为数据的使用方式跟具体的应用场景是分不开的。脱离应用场景来谈数据应用,是一种耍流氓的行为。
对于文因互联这家公司来讲,我们主要关注的是金融领域,怎么把这些数据跟金融逻辑结合起来使用?具体来说,我们会和各种类型的金融逻辑结合起来,形成一些自动化的流程。
比如监管方向,监管机构对企业有很多监管规则,如果企业连续两年“经营活动产生的现金流”,这个指标都是负值,小于零,这就说明这个企业的经营情况出了问题。如果我们已经拿到了经营活动的数据,就很容易实现这个监管逻辑。
类似的逻辑还有很多,比如如果这个企业的前五大客户的营收占比,超过这个企业总收入的80%,就说明这个企业的收入来源非常单一,它就非常容易受制于人。
如果我们不停地往这中间加各种监管的逻辑,最终我们就得到了监管自动化这样一个东西。
类似的还有审计自动化,企业发布的年报中,会描述很多财务指标,这些财务指标其实并不是孤立的关系,比如说对于总资产这个财务指标,它要等于流动资产加上非流动资产。
我们从文档中拿到它的财务指标之后,我们可以把这三个值套入公式,如果它们不相等,就说明这里面肯定是某一个值出了问题,这样就可以避免很多财务指标上的低级错误,能节省很多的人力成本。
举一个实际的例子吧。
这是我们给一家监管机构做的一个公告摘要的项目的截图。
这是一个利益分派的公告,它里面会描述给股东发多少红利,然后分配多少股份。
这些信息点,在PDF描述中分散在不同的位置,有的时候是列表,有的时候是表格,有的时候是文本,我们的算法就可以自动找到这些信息点并提取出来,综合地形成一个结构。后续就可以把这些数据,应用一些自然语言生成技术,生成自动化摘要的文本。
这个系统已经在这个监管机构内部上线了有半年多了,据我所知帮他们节省了很多工作量。
我们做这些自动化流程,一方面是能节省很多的人力成本,另一方面是将来可以和具体的行业知识关联起来,最终实现各种智能化的业务需求。
我今天的介绍就到这里。
如果对运用文档结构化技术满足业务需求感兴趣,欢迎直接和商务人员联络,技术可实现企业系统私有化部署,详情可咨询商务人员,她会很愿意和你聊聊。
—完—
加入智能金融交流群
文因商务合作
领取专属 10元无门槛券
私享最新 技术干货