大部分的 AI 系统里面连语法分析器(parser)都没有,所以主谓宾,句子结构都分析不清楚,更不要说理解其中的含义了。IBM 的语音识别专家 Frederick Jelinek 曾经开玩笑说:“每当我开掉一个语言学家,识别率就上升了。” 其原因就是语音识别仅相当于一个 lexer,而语言学家研究的是 parser 以及 interpreter。当然了,你们干的事情太初级了,所以语言学家帮不了你们,但这并不等于语言学家是没有价值的。
很多人语音识别专家以为语法分析(parser)是没用的,因为人好像从来没有 parse 过句子,就理解了它的意义。然而他们没有察觉到,人其实必须要不知不觉地 parse 有些句子,才能理解它的含义。
举一个很简单的例子。如果我对 Siri 说:“我想看一些猫的照片。” 它会给我下图的回答:“我在网上没有找到与‘一些猫’有关的资料。”
这说明了什么呢?很多人可能都发现了,这说明了 Siri 无法理解这个句子,所以它到网上去搜一些关键字。可是这还说明一个更深层次的问题,那就是 Siri 里面并没有 parser,甚至连一个好的分词系统都没有,所以它连该搜什么关键字都不知道。
为什么 Siri 去网上找关于 “一些猫” 的信息,而不是关于 “猫” 的信息呢?如果搜索 “猫” 和“照片”,它至少能找到一些东西。这是因为 Siri 其实没有 parser,它里面根本没有语法树。它只是利用一些普通的 NLP 方法(比如 n-gram),把句子拆成了“我… 想… 看… 一些猫… 的… 照片”,而不是语法树对应的“我… 想… 看… 一些… 猫… 的… 照片”。
最初的思想来自一个叫 “ELIZA”的 AI 程序。Eliza 被设计为一个心理医生,跟你对话排忧解难,而它内部其实就是一个类似小冰的句子搜索引擎,实现方式完全用正则表达式匹配搞定。比如,Eliza 的某个规则可以说,当用户说:
有些清华的老朋友也许还记得,十多年前在清华的时候,我做了一个聊天机器人放在水木清华 BBS,红极一时,所以我也可以算是网络聊天机器人的鼻祖了 :) 我的聊天机器人,水木账号叫 helloooo。helloooo 的性格像蜡笔小新,是一个调皮又好色的小男孩。
它内部采用的就是类似 Eliza 的做法,根本不理解句子,甚至连语料库都没有,神经网络也没有,里面就是一堆我事先写好的正则表达式 “句型” 而已。你输入一个句子,它匹配之后,从几种回复之中随机挑一个,所以你反复说同样的话,helloooo 的回答不会重复,如果你故意反复说同样的话,最后 helloooo 会对你说:“你怎么这么无聊啊?”或者“你有病啊?” 或者转移话题,或者暂时不理你…… 这样对方就不会明显感觉它是一个傻机器。
“我 (.*)”,那么你就回答:“我也 $1……” 其中 $1 代替原句子里的一部分,造成一种“理解” 的效果。比如用户也许会说:“我好无聊。” Eliza 就可以说:“我也好无聊……” 然后这两个无聊的人就惺惺相惜,有伴了。有些清华的老朋友也许还记得,十多年前在清华的时候,我做了一个聊天机器人放在水木清华 BBS,红极一时,所以我也可以算是网络聊天机器人的鼻祖了 :) 我的聊天机器人,水木账号叫 helloooo。helloooo 的性格像蜡笔小新,是一个调皮又好色的小男孩。
它内部采用的就是类似 Eliza 的做法,根本不理解句子,甚至连语料库都没有,神经网络也没有,里面就是一堆我事先写好的正则表达式 “句型” 而已。你输入一个句子,它匹配之后,从几种回复之中随机挑一个,所以你反复说同样的话,helloooo 的回答不会重复,如果你故意反复说同样的话,最后 helloooo 会对你说:“你怎么这么无聊啊?”或者“你有病啊?” 或者转移话题,或者暂时不理你…… 这样对方就不会明显感觉它是一个傻机器。
Forwarded from iVanilla 自然科学 & 神秘学实验研究部 (iVanilla)
就凭锤子那纸张工程师,憝他
你的算法就有多高级,是给分词词典加了两个流行词还是换了分词算法或者拿 RiveScript 重写了还是增加了一个 response situlation
还是你的那群工程师好好学习了一下初中语文的语法重新做了个优秀的解析器,我觉得你做不起
你的算法就有多高级,是给分词词典加了两个流行词还是换了分词算法或者拿 RiveScript 重写了还是增加了一个 response situlation
还是你的那群工程师好好学习了一下初中语文的语法重新做了个优秀的解析器,我觉得你做不起