【IT168 评论】当我在思考这个问题的时候,不禁回想到了我的小时候就觉得非常神奇的IBM机器人沃森,这台机器人拥有当时人类所制造机器的最优异的智慧,具有高级语言处理能力并且能够初步理解英语的能力.
初步来看,实现这样的一个能够和语言与人类进行交流的机器人,其中包括语音识别和自然语言处理(包括手语,唇语,肢体语言等)来与人类进行沟通,通过自然语言生成和语音合成来和人类进行交际,同时也需要进行信息检索和信息抽取,从而能够进行推理,根据已知的事实来得到结论.
语言处理中的一些困难:
我们把处理口语和书面语的计算技术称为语音和语言处理,合起来就算是自然语言处理,其实这是一个很广泛的定义,这个范围从人人皆知的比如分词计算,自动换行这样的相对简单的技术,直到比如微软小冰这样的自动回答,Google翻译这样的实时口语自动翻译的高级技术.
而自然语言处理相对于计算机视觉这样的其他人工智能的应用来说,自然语言处理需要从业人员有一定的语言知识,就好比我们在刚入门的时候用NLTK包来计算文本文件的词数,句数,以及上下文语句等.当我们如果用nltk上的处理字节数功能时,这就是一个简单的数据处理工具,而我们如果要去计算一篇文章中的词数,句数的时候,就需要让计算机知道什么是词,什么是句子,从哪里断句,从哪里开始的语言知识,这个时候工具就变成了一个自然语言处理系统.但是像是nltk这样的工具毕竟还是一个简单的系统,他的语言知识也比较有限,如果要其拥有跟我们人类有对话的语言能力,我们就必须要求系统拥有更加广泛和更加深刻的语言知识,因此这就需要从业人员拥有处理更加复杂系统所需的语言知识范围和种类的语言能力.
而计算机识别语音的时候,计算机也必须要分析他所能接受的声音信号,那些是噪音,那些是有用的知识,并且因此来说,为了生成回答进行反馈,计算机必须要把知识图谱中的回答进行整理组织成词的系列,并且能够生成出能够让人类是识别的语音信号.
当然,为了实现这些,我们就有用到phonetics和phonology的知识,这样的知识能够给帮我们如何建立模型来识别语句中的发音.
如果是处理词,又有很多的问题,比如说处理I’m和I am的这样的缩略词形式,如果要能够产生和识别单词这样那样的变体,其实这就又要需要形态学上的知识,希望能够反应关于上下文中词的形态和行为的有关信息.
另外,除了处理一个个单词以外,我们还要考虑如何生成一句话,并且能够按照我们的需求进行生成,这样我们有需要组词成句的知识,以及词汇语义学和组合语义学的知识
最后一个是最困难的,关于消除歧义:
例如“这房间就是个烤箱”、“这个房间就是个盒子”,虽然句式相同但都不是字面的意思,前者表示这个房间很热,后者则表示这个房间很小。要让计算机理解这些话的意思,不是仅仅做词表示甚至句法分析能解决的。也例如,语言理解实际是一个多模态过程,需要综合除语言之外的视觉、听觉甚至触觉等多模态的富语境信息才能实现真正的语言理解。我个人觉得,这些应该是自然语言理解/处理比较困难的地方。
自然语言理解/处理应该是实现通用人工智能的关键挑战,但似乎不应是最难挑战。语言能力是人类智能的集中体现,不过构建在语言等能力基础之上的思辨、决策和创造等能力,似乎都还没纳入人工智能主要探讨的范围,也许这些更困难些。例如,如何让机器像人一样思考哲学问题,像人一样指挥战争或运营商业公司,或像人一样发明创造?这些问题似乎都比自然语言理解/处理更困难。
即使限定在自然语言处理,当前关心的问题也更偏重自然语言传递信息的工具属性上,也就是如何让计算机更准确地理解一句话的字面意思。人类语言更富魅力的“言有尽而意无穷”的特点,还远未被探索。