明略技术合伙人徐安华:数据量决定了特定领域自然语言处理最终效果
自然语言处理及文本挖掘技术的应用正变得更加广泛,尤其是在一些公共服务以及企业级应用方面的作用更加突出,比如执法机构需要用到的犯罪嫌疑分析,或者是企业决策用到的商业智能分析,以及普通人日常都需要用到的智能搜索功能等等,这些看似简单的应用背后,实际所需要的技术是比较复杂而专业的,因此为了更加深入地了解关于自然语言处理及文本挖掘技术发展情况相关的话题,InfoQ专门采访了明略数据技术合伙人、SCOPA产品搜索及自然语言处理组技术经理徐安华。
InfoQ:在进行自然语言处理的过程当中,会用到哪些工具?而这些工具又各自有什么样的特点?
徐安华:自然语言处理工具的使用,一般是由具体的自然语言处理过程来决定的。常见的处理过程主要就是进行分词处理,也就是将语句切分成几个有意义的词,接下来还要进行实体识别以及关系挖掘,有时可能还包括关健词提取、情感分析分类等工作。
在这个过程中需要用到的,基本上就是跟这个过程相对应的那些工具,而这些工具基本上都在试图去覆盖这里面涉及所有的内容。一般来说这些工具可分为两大类,一类是来源于开源社区,比如中文分词组件jieba,而另外一类是来源于国内的一些大学的研究成果,像复旦、哈工大等等,都提供了比较好的工具,尤其是哈工大,它在自然语言处理领域久负盛名。国外的话,做得比较好的开源工具有NLTK等,而公认的比较突出的国外大学,比如有斯坦福等,它提供的工具叫做斯坦福NLP。
这些工具,实际都是在特定领域,或者是针对学术圈里面的一些特定情况下的应用,来去描述其自然语言处理效果的,因此在实际使用时,还是要根据自己的需求去增加定制化的东西。
至于这些工具各自的特点,可以说开源社区工具在覆盖的广度和可用性上肯定是要比学术圈内的工具做得更好,比较典型的比如刚才提到NLTK,它其实已经面向整个文本挖掘里面所涉及到的方方面面内容,都提供了相关的工具。
然而要想进一步提升自然语言处理的精准度或者是精确的解决企业的业务问题,还是需要在这些现有的工具基础上,加入一些自己定制开发的东西,最后形成自己的一套自然语言处理工具。
InfoQ:能否谈谈自然语言处理及文本挖掘在技术层面上的难点有哪些吗?而对于企业级用户来说,又该怎样做才能克服这些困难?
徐安华:自然语言处理与文本挖掘比较难的一点就是准确率问题。准确率直接影响着自然语言处理技术在产品化运用过程中的最终效果。现在很多在学术界准确率较高的自然语言处理技术其实在产品化之后,用户体验都不太好,依然会感觉到人可以精确识别的部分,机器识别起来却还是非常困难。
从技术上来说,解决方法可能就是需要非常大量的人工来训练相应的模型,当然这里指的就是叫做基于监督的模型,基于监督的模型在特定领域的效果非常好,但它的缺点在于可能换一类文本,准确率就会下降。因此现在很多人都试图去寻找完全无监督的,可以不用人工去进行标注的这种方式去训练模型,通过机器自己的学习,也能够正常进行这种分词处理,或者是进行命名实体识别。
具体问题还是需要做具体分析。现在来看,并没有一种放之四海而皆准的方法,即使是基于深度学习的技术,其实也是在特定领域之内才可能会有实际用处,它的实际效果,其实跟现在主流的这种基于监督的方法而得到的模型的效果是差不多的,甚至有些情况下还不如后者。
而对于企业级用户来说,要想克服这些困难,一方面还是需要找到一些专业的人才,具体的问题还是应该在具体的应用场景下进行分析,除了之前提到的工具之外,更重要的是只有这种具有专业知识的人才能够有经验和能力去更好的解决这些问题,而想要完全依靠工具去解决则是非常不现实的。
InfoQ:国内目前在自然语言处理以及文本挖掘技术方面的发展情况怎么样?目前是否面临着一些普遍存在但是又应该去解决的问题呢?
徐安华:国内自然语言处理以及文本挖掘的应用,我认为做得比较好的是百度、腾讯等,还有一些其他的拥有海量非结构化数据的企业,正是因为他们有大量的数据,因此才在建立模型、固化模式等方面比其他数据量相对比较少的企业更有经验,他们的数据就是他们最大的优势。
至于说到算法,其实这些年来并没有出现突破性的进展,大部分情况下各家比拼的还是数据量,数据量的大小决定了很多算法最终达到的效果,包括百度的语音识别技术,即使是利用了深度学习技术,但要想实现这么高的准确率,必须是建立在拥有海量的语音数据的基础之上才可以。
普遍存在的问题依然是准确率。要想做到一个全行业都能非常精准的识别自然语言,或者是非结构化数据里面提到的一些信息,也都是非常困难的。我们认为只有在垂直的领域下,才能根据很多的语言习惯和语言模型,将自然语言及文本挖掘技术进行产品化。但对于全行业都通用的高准确率自然语言处理解决方案,至少目前来看的的话,现有的这些手段都没有办法解决这一问题。
InfoQ:对于明略数据目前的业务来说,哪些领域或行业的用户在自然语言处理以及文本挖掘方面的需求比较大,他们的业务有什么样的特点?
徐安华:公安用户其实在自然语言处理还有文本挖掘上需求量比较大。原因在于这个特定领域积累了大量的历史数据,这些数据中记录了很多相关的事件或案件描述,这些描述中包含很多关键的要素,而这其中的问题就在于如何把新加进来的描述,跟已经存在库里的一些事件信息去进行关联分析,而文本挖掘就是解决这一问题的关键技术之一。
另外一个问题在于搜索,这个需求是在同时进行很多的事件描述的录入时,就同步进行关联分析或查找,而普通的搜索手段就无法有效的解决这种海量的实时数据录入问题了,再加上在这个过程中还要跟已有的库中的信息做关联,这时依然需要利用自然语言处理及文本挖掘技术来解决问题。
InfoQ:那么比较成功的案例是否也是在公安部门的应用当中?是否可以介绍一个比较成功的自然语言处理技术应用案例?
徐安华:自然语言处理比较成功的典型案例依然是在公安部门中的应用,也就是明略对于公安部门内部的一些事件描述文本的处理。利用这个领域之内长期积累而建立的模型,我们可以把一段事件描述里提到的一些关键要素拆解出来,准确率也越来越高。这样的话就更便于我们进行后续的文本关联分析,以补充和完善现有的信息库。
另外一方面,则是数据挖掘的效果最后需要将它进行产品化,也就是需要跟搜索引擎相关的技术做结合,将文本关联分析功能做成一个应用,形成一个可进行实时处理的具体产品。
InfoQ:今年在自然语言处理以及文本挖掘技术方面可能会出现哪些新趋势?
徐安华:目前比较受关注的趋势基本上在于两方面。首先是知识图谱的应用正变得更加广泛。之前对知识图谱的应用更多的是停留在大企业中,用来解决一些搜索问题。但是现在因为有更多相关的开源项目被公布出来,再加上也有一些企业将知识图谱构建技术公布了出来,这就使得更多的企业级客户,以及公安的客户来说去使用这种技术,来提高它现有的这种文本挖掘,以及这个文本处理的准确率,以及这个更加人性化的去识别一些这个相关的这个要素,其实会是一个趋势。
第二个趋势是深度学习,深度学习在图片挖掘领域获得成功之后,迅速朝向文本挖掘领域拓展,谷歌、Facebook等公司都已经公布出来一些自己专门用来进行自然语言处理的深度学习框架以及相关的一些产品,甚至有些深度学习的产品,已经在朝iOS或者是安卓系统设备平移,这样一来可能后续的自然语言处理以及文本挖掘技术将不再停留在服务器端,在说移动端或者其他更小的便携设备上,也可以去进行自然语言处理,或者说能够受益于自然语言处理技术,甚至是享受到更宽泛意义上的人工智能的优势。
徐安华,现为明略数据技术合伙人、SCOPA产品搜索及自然语言处理组技术经理。2004级北大计算机本科,2008级北大计算机系统结构方向硕士,曾经在Intel、爱奇艺工作4年时间,Linux kernel代码贡献者,显卡虚拟化项目XenGT早期主要开发人员,拥有多篇专利。2014年底加入明略数据,致力于在Hive、Impala、SparkSQL上实现行列级别权限,目前专注于自然语言处理与文本挖掘。