对话机器人语音识别之语义分析技术(计算机自然语言文字理解)的结构思路
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汉语语义分析技术的初步结构思路
语义分析技术需要实现的技术目标:使对话机器人软件能够理解人类对他输入的句子的意思。这里需要强调的是“理解”,而不是“识别”。本文所认为的文字“识别”是由专门的识别技术实现,包括使用光感扫描、语音识别或直接键盘输入等一切可能的手段得到的文字符号,而本文所指的语义分析技术是指对文字识别技术(不仅包括语音识别)所识别出的文字符号的理解力。
本文思路是通过对某一个语种的语法结构进行分析,进而使对话机器人软件实现基本的语义理解能力。
本文对机器人软件的智能程度理解如下:
人类之间对话交流以话题为核心,一对一答可以形成一个基本的对话单元,各个对话单元逻辑上相互衔接就形成一个话题。
对话单元基本可分为:
1问答式对话。如:甲:你在哪里?乙:我在家里
2命令式对话(包括要求或请求)。如:甲:请不要吸烟。乙:好的
3陈述式对话。如:
甲:这是个陷阱。乙:你说的对。
甲:我今天好伤心!乙:哦。
甲:今天天气真好!。乙:是啊!
对话机器人软件想要具备人机对话功能,则必须首先具备完成一个对话单元的能力。因此,对上述3种对话类型的语义分析是实现对话机器人软件的重要途径。
对上述3种对话单元的实现,可以使对话机器人实现不同层次的智能程度。——完成命令式对话单元可以使对话机器人具备基本的商业功能,如:命令:开灯。机器人答:好的,然后执行。但本文认为这种简单的命令对答并不具备实用
的商业功能,如,对机器人命令:开灯,机器人可以听懂,如果说:“把等打开”,“把灯开开”或“打开灯”等其他命令方式,则机器人就很容易听不懂。如换成另外一种设备,命令可能变为:“烧开”、“加满”、“烘干”等,则出现的命令格式会更加多变,机器人更加无法理解。这样需要人类按照固定的文字向机器人输出命令它才能听懂,因此严重限制了智能设备的实用性,消费者体验较差,这种情况下智能设备必将逐步沦为鸡肋产品。因此要让对话机器人具备较好的实用性,则必须让对话机器人能够对人类输入的句子实现语义分析与理解。(下文将详细阐述实现思路)
另外,对话机器人即便实现了对命令句的语义理解,本文认为也只是实现了基本的实用功能,算不上实现了基本的智能。要想实现基本的智能,则需要对话机器人能够听懂人类的问句。
——完成问答式对话单元可以使对话机器人具备基本的智能程度。即具备了与人类进行最基本的沟通能力(命令式对话属于单向性质,而问答式属于双向性质)。——让对话机器人具备完成陈述式对话单元的能力,是机器人具备初级智能程度的更高层次表现。能够完成陈述式对话可以让对话机器人实现与人类闲聊和初级的感情互动功能。
——高级智能程度的机器人,可以让对话机器人具备将各个对话单元形成上下逻辑关系的能力,即完成一个基本的话题。如:问:你打篮球了吗?答:是的。问:在哪打的?答:球场。第二个问句在逻辑上承接了第一句问句,指的是在哪打球,而不是在哪打架,因为“打”字可以形成很多种行为动次。另外,还可以不但实现对汉语中单句的语义分析能力,而且要实现对复句(如果。。。就。。。)的语义分析能力。高级智能程度的机器人还可以建立一个事物与另一个事物之间的联系,(如人与衣服之间可以建立穿、保暖、美观等联系)。还可以实现对话题中岔开话题行为的处理及多人对话能力等等更多功能。
然而,以上这些智能程度对机器人来讲,依然只处于智能阶段,他们只具备记忆和学习能力(记忆和学习方法下文阐述),而机器人最终必将走向智慧阶段,
即具备逻辑思维能力。例如,如下思路可以实现最初级的逻辑分析能力,即有利或有害的分析判断能力,机器人接收到一句话,会先判断这个句子的信息是积极还是消极,当人类告诉机器人一个积极的信息,机器人的回答则积极,遇到消极信息则回答比较消极。
上述总结:
机器人对语言的理解力是机器人智能程度的衡量标准,因此语义分析系统才是机器人领域的核心与灵魂部分。
语义分析的部分思路阐述(略去命令式和陈述式语义理解部分)
以问答式对话单元为例:
人问机答:(以第二人称“你”为例),如:你叫什么?你是谁?你在干啥?
思路如下:
1建立动次数据库、形容词数据库、代名词数据库等等各种词类数据库(人类的
语言句子是千变万化的,但是组成句子的常用词汇是有限的)
2建立疑问词数据库(汉语疑问词数量有限,仅有几十种,包括动次/形容词+不/没+动次/形容词(如去不去、走没走)等等有规律的疑问词结构)
3建立公共属性数据库、机器人自身属性数据库和动态词数据库,用来代表世界万物及机器人自身所有信息。所需要的数据量并不大,因为人类常用的属性是有限的,高度、长度、密度、湿度、社会关系、所属、功能等等属性约上千种左右(常用几百种)。动态词数据量也是有限的,因为人类常用行为动作及动态词约几万种左右(常用约1万种,如打球、打架、跑步、呼吸、倒塌、滚动等等),而并非海量级数据,实现难度较小。
机器人自身属性数据库如下:
举例①你叫什么名字。
——机器人需要先确定句子性质,扫描句子内容并搜索疑问词库找到句子里有
“什么”这个词,确定为疑问句(特殊句子另行判断,在此仅做举例)
——扫描公共属性库确定句子里有“叫什么”这个属性词
——从属性词向前扫描(向前或向后这些人为规则的确定,每个语种各不一样)搜索代名词库,找到句子里有代词“你”(仅作举例,特殊句子另行考虑),即句子的主语是“你”,确定下一步扫描对象为自身属性库(如果扫描到主语是“我”,则下一步将扫描主人的属性库,早期机器人主要是主人和机器人的人机对话,因此早期机器人只需要建立第一人称“我”<即主人>的数据库和第二人称“你”<机器人自身>的数据库,第三人称数据库则可囊括世界万物,只需要不断扩充即可,扩充量越大,知识面越广,并且和人类一样学无止境<通常会先建立常用的第三人称数据库>)。
——从自身属性库中找到“叫什么”这个属性词,从属性词后面的参数中调出回答内容:“叫小宝”。
——根据汉语语法规则,输出:我+“叫小宝”=我叫小宝
注:句子里的“名字”这个词,属于名词,是第三人称,未来将随着数据库不断扩充,将会像机器人自身属性库一样为“名字”这个词建立属性库,“名字”这个词即可以被机器人所“认识”,机器人在高级智能程度下,将可以建立人与名字之间的联系。另外,机器人一般会先建立常用的第三人称数据库,如车载系统会先建立车、空调、后备箱、音响等数据库。不常用的第三人称通常不需要建立数据库就可以理解句子的意思,如,你叫什么和你叫什么名字两句话,机器人不理解“名字”为何物并不重要,因为“叫什么”已经成为了一种常用属性名。
举例②你想干什么?
——机器人先扫描句子并搜索疑问词库,找到句子里有“什么”这个疑问词,判断为问句。