6月26日,在盛大创新院北京办公室的御膳房会议室,举办了IT龙门阵的第165期活动——自然语言处理,这期活动的两位嘉宾来自同一座写字楼。分别为来自18楼盛大创新院搜索分院的贾文杰和来自19楼搜狗搜索的张帆。
为了在活动现场能够让两位演讲者有更多的默契,活动主办方特意安排了两位演讲嘉宾提前一天坐在一起吃了顿午饭。相互了解一下对方的话题。不管技术发展到什么程度,处理自然语言的最好方法,还是人与人面对面的交流和沟通,按照中国人的传统来看,要是人与人之间再摆上一些美味的食物,那么交流沟通的效果会更好一些,再有一些酒的话,能够更好,但是考虑到下午要上班,酒就免了。
盛大创新院搜索分院的贾文杰:
搜狗搜索的张帆:
嘉宾合影:从左到右依此为,本人、贾文杰、张帆、曾贤儒。
自然语言处理,是计算机智能的开始
现在越来越多的公司已经将目光盯在了智能化上。随着Siri的成功,智能化应用已经逐步的走出实验室,走向大众。
要想让一个应用,或者说要想让计算机具备一定的智能,那么第一件要做的事情就是让计算机理解人的语言,不论是文字、语音,还是形体动作,亦或是表情。自然模式交互,也就是说摆脱了语言文字的交互,对于现在的计算机来说要更加困难一些,IT龙门阵技术专场的第一场活动《多媒体模式识别》探讨的就是这方面的内容。
相对于需要通过多媒体模式识别来实现的自然模式交互来说,直接让计算机进行语言文字的识别和处理应该是更加成熟的技术。
记得刚刚踏入大学校门的时候,老师告诉我们什么是程序语言的时候,他是这么说的:所谓程序语言是针对自然语言而言的,自然语言中充满了二义性,而一段程序语言则拥有唯一的意义。
现在需要让运行程序语言,只能识别0和1的计算机来理解充满了二义性的自然语言,也就是这场会议的主题——自然语言处理。
随着智能系统越来越多的涌现,不论是智能推荐、智能搜索,还是像Siri那种号称是人工智能的产品,都需要实现自然语言处理的功能。自然语言处理是所有智能系统的根本。
中文是一种很难以处理的语言
中文和那些西方语言有一个很本质的区别,那就是我们的文字之中是不写空格的。早先的中文里面连标点符号都没有。古文中就将学生学习读书写字的初始阶段描述为“句逗之不知”,也就是说中国的学生学习读书写字的时候,需要首先学会断句。
感谢现代中文的先行者们,他们为中文引入了标点符号。使得现在我们学习中文的时候不需要再去学些断句了,标点符号可以为我们完成这个步骤。但是他们没有引入西方字母文字中的空格,这就导致了中文成为了一种相对于西方文字更难以被计算机处理的语言。
中文处理是从分词开始的,也就是说首先要做的就是将一句话中的词分拆开来,然后才能使用计算机来进行处理,不同的分词结果,代表着不同的意思。受中国文化很深影响的日文和韩文也有这种问题,也需要进行分词。空格和标点符号都不是韩国人发明的,谢天谢地。
嘉宾介绍了中文分词的发展历程,被普遍采用的四种算法,以及目前最主流的语言模型分词算法。其中的一些例子听得大家热泪盈眶。比如:长春市长春药店,按照不同的分词算法可以被分为:长春市/长春药店 和 长春市长/春药店 。
训练计算机理解人类的自然语言,这个过程和我们教小孩子学习说话有些像。需要将标准的语料库进行人工标注,然后让计算机来学习。这个过程异常漫长和痛苦,现在国内比较流行的人民日报1998年版的语料库。这个库是直到2003年才得以标注完成的。
现在大多数的中文分词系统中都引入人民日报的语料库,这里面有两个问题,第一、人民日报的用语是相当官方的,和人民群众的日常用语有着很大的差别;第二、1998年已经是很久很久以前了,一种被很多人在日常生活中使用的语言的变化是非常快的。要想再做一次这种标注,其成本很高,而且即使标注出来了,也已经过时,毕竟1998年的人民日报是标注到了2003年才完成,这个过程持续了5年的时间。现在的普遍处理方式是,在1998年人民日报语料库的基础上,加入新的平衡语料进行反复的迭代训练,在此基础上加入一些人工干预,然后再进行迭代训练。这里所说的平衡语料库中的平衡,指的是语料库中平衡的包含各种语料,而不是某一方面的语料所占比例特别高。
云计算为中文语言处理带来了什么
所谓云计算就是虚拟化,将原来每一家公司都需要自己做的事情,虚拟化到云端,变成一项服务,然后供大家使用。
以前哪家公司想做分词,想做自然语言处理,就必须自己搞定。现在是云计算时代了,盛大和天津海量信息都提供了云分词服务,任何公司希望能够在他们自己的系统中加入分词功能,或利用分词对自然语言进行处理,不再需要再自己进行开发,直接调用这些服务就可以了。
盛大的云分词应该能够在月内开始公测吧,据说能够达到每秒几百万字的处理速度。
自然语言处理的初期应用——意愿判定
搜狗是从输入法起家的,现在也在做搜索引擎,对于自然语言处理肯定有着和其他搜索引擎企业完全不同的理解。
现在的搜狗正在准备实现自然语言处理的最初级的应用模式,那就是通过用户输入的搜索内容,实现用户意图的判定。
如果用户输入苹果,他们会从用户输入的其他内容或曾经输入、浏览过的其他内容中来判定,用户所需要查找的到底是水果还是水货。
如果用户输入IPhone5,他们也会根据IPhone5是否已经发布了的时间状态来判定,用户到底是希望查找IPhone5相关的新闻,还是IPhone5相关的水货。
对于搜索引擎来说,不但可以得到用户当前搜索的信息,还可以得到用户进行搜索的时间和地点,得到用户的历史搜索记录,得到用户的社交关系,以及用户社交群体搜索的一些数据。当所有的数据聚集在一起,再加上从互联网上爬取来的各种数据,在对所有这些数据进行了自然语言处理之后,搜索引擎就可以做出更加智能的判定。
综合搜索和垂直搜索相结合
判定了意图之后,就可以根据这个意图提供相应的搜索结果。
目前的主流搜索引擎给出的结果都是一个一个的条目,网站条目。这种方式适合于大多数综合搜索结果的列举。同时,现在也出现了不少垂直搜索站,这些站点针对某一类特定信息进行搜索,然后按照符合这一类特定信息的方式,显示搜索结果。比如,有人在普通搜索引擎上搜索机票的信息,得到的会是买机票的网站的条目列表;但是在专门搜索机票信息的垂直搜索站上,就会直接得到机票的班次信息和报价。
对于用户来说,现在这种状况带来两个问题,第一、普通搜索引擎所给出的结果不够好;第二、垂直搜索引擎的数量庞杂,工作生活中各种需要搜索的信息都需要到不同的站点上去搜索,记忆那么多的垂直搜索站点,也是一件非常麻烦的事情。
那么在有了通过自然语言处理技术实现的用户搜索意图判定之后,一个搜索引擎就可以根据用户不同的意图,向其提供不同类型的垂直搜索结果。这也就实现了搜索引擎的智能化。
现在采用这种方式的应用有一些了,比如苹果的Siri,搜狗的搜索引擎,Google Now,百度的框计算。
总结
自然语言处理是智能算法的根本,而智能算法将是互联网和移动互联网应用的关键。任何类型应用,如果想要成功,那么就要实现更少的人为更多的人服务。如果想要实现更少的运营人员为更多的用户服务,那么唯一的办法就是让计算机具备更多的智能。
web1.0、web2.0以及现在在web2.0之后的时代,从发展的过程上来看,就是从少数运营人员为客户服务的web1.0,发展到少数运营人员和一部分客户一起为更多的客户服务的web2.0,再发展到现在,少数运营人员和更多的客户、智能算法一起,为更多更多的客户服务。而且,随着云计算虚拟化技术的普及,不是每一个开发者都需要自己去实现智能算法的部分,完全可以使用云端的服务来实现智能功能,每一个应用都可以使用智能算法来进行信息的处理。
Both comments and pings are currently closed.