今天用bing搜索了信息时,突然小冰(微软聊天机器人)弹窗发了句话,引起我的兴趣,和她聊了一会儿,发现距离真正自然的人机沟通还差得很远。
记得去年银行两个机器人吵架,好多人评论说其实是人工在远程操纵,机器人说的话都是人工打出来的。试想那么多的银行、医院及各种营业场所都配置了机器人,得需要多少人远程监控和回复咨询,甚至聊天吵架呢?他们不相信机器人和人的交流,这是非常狭隘无知的认知,因为人机交互是从计算机诞生之日起就开始了,科学家就开始研究如果让计算机理解人类的意图并作出合适的反应。
银行机器人吵架
那么科学家是如何实现机器人和人的沟通聊天呢?
人机交流的技术——自然语言处理这就不得不提到一个词——NLP(自然语言处理,Natural Language Processing),是指实现人与计算机之间用自然语言进行有效通信的理论方法和技术。NLP的核心任务有两个:自然语言理解和自然语言生成。
自然语言理解就是使计算机能够理解人们所说的话或者输入的文字(自然语言文本)的意义;自然语言生成与前者相反,是基于一定的语义和语法规则来生成文本。用大白话来说就是先听懂人话,然后用人话回答。
NLP
NLP主要涉及的技术有很多,如文本预处理、词法分析、句法分析、语义理解、分词、文本分类、文本相似度处理、情感倾向分析、文本生成等等,而且需要运行大量的模型和算法。所有的技术,都是为了解决一个问题,就是希望机器人能够具备正常人的语言理解能力和表述能力。
但是自然语言理解又存在非常高的难度。因为语言具有多样性、歧义性、递归性、主观性、社会性等特点。举个简单的例子,“天真蓝!”和“天啊,真蓝!”这两句在人类日常语境中非常容易理解,但是对于计算机却非常难处理。因为在处理文本的过程中,往往会把类似啊、呀、之乎者也等词给剔除掉,抽取关键词,但是在这里如果剔除掉,就会变成同样的含义,产生自然语言理解错误。
自然语言处理的发展阶段NLP几乎伴随着计算机的诞生而出现,科学家为了实现真正的人机交互,一直努力钻研着。
20世纪50年代到70年代,阿兰·图灵提出了著名的图灵测试,人和机器进行交流,如果人无法判断自己交流的对象是人还是机器,就说明这个机器具有智能。这被认为是自然语言处理思想的开端。科学家提出了NLP的基本处理方法,基于规则方法和基于概率方法,占主流的为基于规则的方法。
现代计算机之父阿兰-图灵
20世纪70年代到世纪末,这一时期,基于统计的方法逐渐代替了基于规则的方法。贾里尼克和他领导的IBM华生实验室采用基于统计的方法,将当时的语音识别率从70%提升到90%。2005年,Google机器翻译打败基于规则的Sys Tran。
21世纪初至今,人们也逐渐开始引入深度学习来做自然语言处理研究,通过设计和训练一个多层的人工神经网络,即可执行预想的任务。近年来又产生了ELMo、GPT、BERT 等一系列预训练语言表示模型,NLP有了非常大的突破。
自然语言处理的关键难点但是我们也要看到,目前并没有一家机构的研究成果能真正通过图灵测试。这是为什么呢?我认为主要有两点:
- 截至目前所有的文本分析都仅限于一个孤立的句子,上下文关系和语境对于本句的约束和影响几乎为零,这根本不符合人类正常的语言交流。
- 人类表达和理解一句话,并非单凭词汇和语法,还运用了大量的有关知识,这些知识无法全部储存在计算机内,那么系统也就无法真正理解文本的含义。
虽然NLP存在这样那样的困难,但是在某些具体的行业,还是有了比较广发的应用,比如已经在语音识别、图像识别、机器翻译、自动驾驶、智能家居等领域。
随着人类越来越依赖于计算系统,计算机理解文本和语言也变得越来越重要,随着机器学习和人工智能技术的发展,相信机器人会越来越聪明,越来越懂人类语言,能实现真正的人机交流。
,