深究自然语言处理技术,未来你将受益于它
在前不久的云栖大会上,马云公布达摩院的研究领域包括: 量子计算 、机器学习、自然语言处理、基础算法、等前沿技术再次掀起了前沿科技讨论的浪潮。 人工智能 已经是大部分普通人都耳熟能详的词汇,而人们对 自然语言处理技术 的了解程度却大部分还停留在表面阶段。
本文根据达观数据CEO陈运文在数据驱动大会演讲内容整理,分别就人工智能的基本发展、自然语言处理技术的基本内容、自然语言处理应用现状和对企业的应用价值等几个方面做了详细介绍。
讲人工智能必须讲1956年的达将矛斯会议,机器翻译和密码破译其实是1956年这些计算机的大牛们提出人工智能时一个很重要的驱动因素。当时达将矛斯会议十几位大牛提出人工智能技术成熟的两个标志性目标是:
1.在国际象棋上可以战胜人类
2.在机器翻译上能够超越人类
大家都知道了目标1早已经完成。所有的棋类中围棋是最后一个被攻克的。但是目标2仍然未能完全实现,这也可见语言理解的复杂度。
文本挖掘技术发展历程和现阶段流行方法
关于自然语言处理,学术界有两个派别:
1.理性派,做结构主义。认为所有语言其实都有潜在内生结构,都是有内在的语法。
2.经验派,是功能主义。认为只要完成某一个功能就可以了,计算机完全不需要理解人说什么。
早期人工智能刚刚提出来,符号主义流行。在60年代时候用了很多的词典和符号规则做自然语言的处理,但是后来发现这样翻译走不通。在70-80年代,在语法规则的基础上,加上了语言模型,当时很多语言专家做自然语言处理时遇到非常严峻的挑战,因为语言不是特别严格的模型。例如:汉语特别灵活,很多时候是甚至没有规则可言,习惯这么说,几万年来讲着讲着就讲成现在这个状态了。
90年代开始,统计学习模型异军突起,今天看到大量自然语言处理的应用都是基于统计学习的模型。 能够讲 大数据 也是因为现在已经积累的文本数据非常多,我们每天在各平台上看到、写下的文字数据都可以成为计算机训练的语料,通过训练能让计算机发现语言的规律。
2010年以后深度学习是一波浪潮。可以看出深度学习是经验派功能主义的典型表现。近几年知识图谱非常流行,它带有结构,所以是理性派结构主义的表现。目前很多主流方法是两者做结合,统计学习方法加上一些结构,才能够更好的理解、处理文字内容。
文本结构解析的三个层次
现在流行的方法从结构的角度来说分三个层次:
1.词语级;2.句法级;3.篇章级
词汇级有很多具体的模块开发,结构分析包括句子结构之间的关系等。想想我们学汉语的时候先认识基本字,再找词。在汉语里面单词表现很弱,两个字或者三个字才构成一个有表达力的词。
比如【公司】是一个词,但是拆出来,公没有表达能力,司也没有表达能力。组词之后是造句,很多句法构成了一篇作文。同样,让计算机来阅读文字从结构角度来说是相似的,先让计算机看字、词,然后理解句子的意思,最后理解整篇文章每个段落的含义。
知识图谱的作用是沉淀领域知识,利用这些结构化的背景知识更好的理解文本语义。例如你是一个律师,在阅读法律的文章的时候,背后隐藏着对这个法律行业相关知识,建立起这个行业领域知识的知识图谱才可以更好完成文字阅读。知识图谱的核心在于构建{实体E-属性A-关系R}三元素。
文本挖掘基础性应用类型划分
计算机不像人一样真的可以阅读文字,计算机很多时候是输入一段字库,输出相应的结构。一边是编码,一边是解码。
文本挖掘基础应用的类型可以分为四大类:
1.抽取计算机想要自动解析文本,需要能够识别很多关键要素 。例如,当计算机阅读一份法律合同文书时,能够识别里面的判决书编号、被告人、辩护人、判决依据等等,并能够从文本中提取出这些要素进行结构化处理。对于很多文本密集的行业,抽取这件事情很有价值。
2.划分举一个应用的案例,企业拿到大量客户的意见,需要知道这些意见哪些是好的哪些是坏的,不同的意见需要后续给哪个部分负责处理,这些是典型评论意见观点的识别和观点划分的应用。
3.转换谈到转换我们既可以让计算机进行语言的转换,也可以让计算机把文本转换成更正确的语言方式。 例如下面这份刑事裁定书里面有很多不符合语法习惯的地方,“政治权力”“云南省趋近市”这些都是错误的表达,计算机能智能的帮人们发现并修改错误。
4.合成计算机写作也许是未来比较热门的行业。 目前的写作还是以模板为主,比如基于一些合同模板把要素填写进来。但未来我们希望除了模板外,计算机还可以帮助人们修改润色文章。甚至可以摆脱模板的方式,通过“阅读”大量的文字来实现机器写作。
常见数据类型及其中文本数据特点
从企业角度来说公司都有很多数据。传统意义上会认为像阿拉伯数字一样的叫做数据,比如企业的财务报表,经营状况,APP每天日活……除了这些之外还有一些其他数据,比如文字型的数据:新闻内容,商品介绍,用户评论,企业内部各种各样的合同……这些都是数据,达观数据就是专业处理文字型数据的企业。
文字数据处理有什么特点?它是信息的抽象提炼。这些数据其实是“一句话浓缩了很多内容”。文字数据的场景非常多,差别也很大。比如说有的场景中用户的评论数据都是很短几十个字的,同时也会有一些合同文本和法律文书,这些内容的字数则是上千字和上万字。
各种各样的长短文本,如果能够让计算机代替原来的人工进行自动化做处理,便可以发挥很大的价值。在一些垂直行业中,比如人事行业,法律行业,财务行业都有大量的资料。让计算机自动来分析这些文字资料,并自动来理解这些内容,这是非常有意义的事情。
文本挖掘技术的应用现状
大家知道谷歌、百度这样搜索引擎,搜索引擎本身就是一个文字挖掘的人工智能系统。文字搜索这件事情创造了非常大的经济效益。但这个领域遇到挑战也非常大,尤其是中文的文字处理困难重重,虽然我们每天都在流畅地使用中文,但计算机识别中文的时候发现中文语法非常不严格,行文很随意,这导致了让计算机处理、理解这些文字的时候很难处理的非常好,这也是由于中文天然存在着某些问题。
文本挖掘的三个技术挑战
让计算机来做自然语言处理或者挖掘,有什么新的技术挑战?首先来看一些具体的例子。
挑战一:字词关系的处理
对于汉语来说表达一个基本概念就是一个词。但是让计算机来理解字词之间的关系很困难,因为计算机需要挖掘很多词和其他词之间的关系。比如说相关词,同义词,甚至还有单词。进一步还要做同义词、反义词、近义词的关系和挖掘,然后还要跨语言,还有英文的同义词,外文的简称等等。
比如“中华人民共和国”是一个大词,它有很多词构成。共和国跟它的意思接近,中国和中华人民共和国的意思也有接近,甚至有时候一个单词叫“中”,比如说中美谈判,这个“中”的单字在这个语境里面表达的意思就是中华人民共和国。那么计算机如何判断“中”是不是表达中华人民共和国还是表达河南方言“好”的意思?
还有局部转义问题。比如说巧克力囊肿是一种常见的肿瘤名称,但是把巧克力拿出来是一个食物,在理解时它不会看到这句话把其理解为一个可以吃的东西。比如还有球鞋,运动鞋,跑步鞋需要判断什么时候是同义词,什么时候是有差别的。
中文上下文有很多歧异地地方。“意思”这个词就有很多的意思。比如说“什么意思”“小意思”“没意思”“意思意思”每一个表达都不一样。汉语非常复杂,比如说“我不方便”“他在方便”。一个老外学中文,中文老师告诉他方便就是上厕所的时候,第二天这个人听到说“你什么时候方便我请你吃饭。”老外当时就晕倒了。中文中复杂的的歧异,这也是让计算机像人一样阅读文章时必须克服的困难。
挑战二:歧义语义的理解
像“咬死了猎人的狗”,这句话一种是主语被省略了,主语可能是一只老虎、一只狗,它咬死猎人的狗,这时狗是宾语。还有一种情况狗是主语,咬死了猎人是修饰词。这两种理解方式都对,我们需要结合上下文才能理解。比如说“做手术的是他的父亲”这句话有两种理解方法,有一种是他的父亲是医生做手术,一种是他的父亲生病了做手术。汉语不像英语有主动时态和被动时态,它很模糊。还有“五个公司的工程师”工程师是五个人,还是公司是五个人,这个范围也不一样。
这些代表着计算机处理词语歧义是非常大的问题,需要很多算法解决歧义识别问题。像章词法、句法、上下文等等。
挑战三:多样化的句式结构的解析
搜索引擎经常需要处理意思一样,但是文字表达方式不一样的情况。这种情况下我们常见的处理方法叫做语义的规一划,这也是处理搜索引擎词时经常遇到的问题。他的字一样但是顺序不一样。
汉语很神奇,我们说“你上班了吗?”、“班你上了吗”、“你上班了吗”、“你班上了吗”意思是接近的。常见的做法是通过定位和调整主谓宾定状补等句子元素,生成句法依存树来理解句子结构。
确保文本挖掘技术效果的两个要点
要点1:因地制宜,针对特定应用场景定制语言模型
虽然用的都是汉语或英语,但在在不同的场景需要的方法有很大不同。例如:让计算机自动提取合同文本信息,自动判断合同文本中关联的要素和法律风险,这些文本都有一定的潜在的语法结构。在做具体的专家文本判别时,我们需要建立这些具体的行业文本的知识库,这些都有文本派别和语言模型。
评论分析是目前很多企业应用的领域。很多企业每天会收到网上用户留下的成千上万条评论意见,甚至其中有一些是竞争对手的情报信息和评论信息。比如说手机行业分析用户评论意见时,通常评论有大量的省略和简称,小米手机第六代通常说米6,计算机没有专业领域知识很难像人一样解读这句话。
还有一个问题是口语和书面语的分别处理方式不同,书面语是常写在内部文件中,但是通常弹幕、网络评论都是口语表达。比如说杯具、稀饭都不是吃的东西。
要点2:持续的学习能力,确保泛化能力始终提升
机器学习的好处是可以通过反复迭代,实现持续学习、持续提升的效果。在文本挖掘中很多企业的挖掘都是依照规则的方法,但长期来看这种方法泛化能力或自主学习能力不够。通过机器学习以及用算法提升算法的能力,来提升挖掘的效果是计算机处理模块时很重要的能力。
文本挖掘技术的延伸应用
上面提到的抽取、划分、转换和合成可以对文字进行很多处理,在满足企业的一些应用需求后,还可以进一步延伸。比如大家每天都在用的搜索和推荐都是进一步的应用。
搜索其实是非常典型的自然语言处理的应用。它的核心技术有两部分,其一是对文本语义的深入理解,第二是解决搜索时间的性能问题。通常索引资料库很大,可能有上千亿的内容,在搜索的过程中我们不需要计算机一个一个找,而是在很短的时间内,用零点几秒解决响应的问题。这些需要用特殊的数据结构来完成。
另外,在搜索时如何让计算机帮助人来匹配更多优质资源,其实需要做更多语义的延伸。同一句话不同的人可以用不同的语言方式来表达。计算机帮助人做语义的扩展需要了解词和词,句子和句子之间的关系,才能更好做语义之间理解的功能。
除搜索之外,个性化推荐也是语义理解中重要的应用。做内容和人的连接时,更好的完成用户画像需要分析出哪一个人之前看过这些内容,它的语义如何。文本挖掘技术在提升企业的运营质量方面发挥了很大作用,达观数据的个性化推荐引擎在帮助企业用户提升点击率、留存以及关键指标上都有着明显的效果。