您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 第七讲――自然语言理解
什么是语言相信大多数同学都有过和计算机对话的经历,我们这个苹果手机上搭载了SIRI,我们的微信上也有一些公众号,它们能够在一定程度上跟我们进行文字交流。可见计算机能够理解自然语言,也就是我们人类的语言,使得我们觉得人工智能更加的平易近人了。今天我们就来详细的聊一聊自然语言理解这门技术,语言是人类区别其他动物的本质特性之一。在所有生物中,只有人类才具有语言能力。当然,我们话不能说的这么绝对。语言:语言是人类区别其他动物的本质特性。在所有生物中,只有人类才具有语言能力。人类的多种智能都与语言有着密切的关系。人类的逻辑思维以语言为形式,人类的绝大部分知识也是以语言文字的形式记载和流传下来的。因而,它也是人工智能的一个重要,甚至核心部分有些报道说猩猩也会一定的语言,2004年的报道中,美国有只猩猩啊,说是会1000个单词的手语,可以和人类通过手语交流,这个猩猩发音好像由于构造原因不能发那么多复杂的音节,但人家不傻,可以用手语交流,不禁让老师感叹也许这个人猿星球中的未来,还真说不准什么时候就会到来。但不管怎么说,这个语言是高级智能的一种最直观的反应。人类的逻辑思维以语言为形式,人类的绝大部分知识也是以语言文字的形式记载和流传下来的。因此,它是人工智能的一个重要,甚至是核心的一个部分。当然,这门技术不光光是用在人机交互这个功能上。我们用机器翻译的时候就需要用到自然语言理解的技术,未来如果这门技术发展到非常成熟了,我们就不需要学四六级了,不管去什么国家,带个电脑做翻译,你说一句中文,它说一句英语。这种工具在很多的科幻片里面都出现过。非常的方便,但是现在大家还是要好好学英语,因为这个技术现在还不够成熟,大家可以期待我们的后代能够免去学习外语的痛苦。但是话说回来,我们这节课还真要用到一些英文,因为传统的自然语言理解的就是建立在英文的基础上的。大家似乎没法回忆自己是如何掌握第一门语言了吧?也就是中文的学习过程,但英文的学习过程大家应该都还记得比较清楚,很多同学可能从小学就开始学英文。可见学习一门语言其实是蛮难的一件事。我们人学习语言最难是什么?有人说是语法,有人说是单词量。但有一点,大家会不会很好奇,那就是计算机可以瞬间记住一本词典,也可以瞬间就背下所有的语法,那为什么它理解语言就那么难呢?觉得计算机学习语言容易的学者,在计算机刚刚流行的时候特别的多,那时候很多专家认为,用不了多长时间,计算机就能和人类自如的交流。但后来很多事实证明,我们之前太高傲了,也太小看自然语言了。自然语言理解已然成为了人工智能中最难攻破的难点之一。为什么电脑理解语言这么的难呢?我们首先要知道啊这个语言的理解不仅仅是背单词和背语法那么简单,我们的自然语言理解是有二义性的,这种从各个层次上广泛存在的各种各样的歧义性或多义性是造成困难的根本原因,比如说:例:冬天,能穿多少就多少;夏天,能穿多少就多少。例:剩女产生的原因有两个:一是谁都看不上(看不上别人)二是谁都看不上(别人看不上她)例:单身人的由来:原来是喜欢一个人(别人)现在是喜欢一个人(独身)这种例子你给计算机,估计要晕菜了。要理解这种句子,不但需要对词汇了解,还要断句,还要联系上下文的语境,从这个角度说,英文的机器理解较中文还要简单一点。中文这个断句实在是一个非常难的地方。这也是很多老外啊,在学习中文时候,非常崩溃的地方。比如,南京市长江大桥和南京市长江大桥还有自然语言中经常用到了一些修辞手法,例如,讽刺,暗喻,夸张,排比,反问等等。还有诸多俚语,也就是方言,就更难理解了。比如这是老师看到网上流传的中文六级考题:小明和小强正在谈论小红,这时小红走了过来,小明对小强说:“说曹操曹操就到。”问:谁到了?A.小明B.小强C.小红D.曹操上司:“你这是什么意思?”小明:“没什么意思。意思意思。”上司:“你这就不够意思了。”小明:“小意思,小意思。”上司:“你这人真有意思。”小明:“其实也没有别的意思。”上司:“那我就不好意思了。”小明:“是我不好意思。”请问以上“意思”分别是什么意思?这些题目啊,就更加场景化,你必须还要了解中国的一些国情,才有可能能够明白,这种题目,对老外来说简直就是梦魇一般。更有甚者。比如中国的古文古诗,连我们自己都难都要专门的学习很久的时间才能学懂,比如这首《施氏食狮史》全是由一个音节组成,简直是丧心病狂。石室诗士施氏,嗜狮,誓食十狮。氏时时适市视狮,十时,适十狮适市,是时,适施氏适市,施氏视是十狮,拭矢试,使是十狮逝世,适石室,石室湿,氏使侍拭石室,石室拭,始食是十狮尸,始识是十狮尸,实十石狮尸,试释是事。所以说,人尚且如此,何况机器呢?但是没办法,这个自然语言理解的需求实在是太大了,虽然任务艰巨,学者们还是尝试解决这个问题。词法分析我们现在就来看一下,我们人工智能领域是如何尝试实现自然语言理解的。首先我们知道,任何一门语言都是由词构成的。英语里面是单词,单词下面还有词根,中文的词可以拆成字,其实可以对应英语的词根。所以这个词的理解就是语言理解的第一步。我们把它叫做词法分析。词法分析的主要目的是找出词汇的各个词素,从中获得语言学信息。在英语等语言中,找出句子中的一个个词汇是一件很容易的事情,因为词与词之间是由空格来分隔的。但是要找出各个词素就复杂得多。如:importable,它可以是im-port-able或import-able。这是因为im,port和import都是词素。而在汉语中要找出一个个词素则是再容易不过的事情,因为汉语中的每个字就是一个词素。但是要切分出各个词就远不是那么容易。如:“我们研究所有东西”,可以是“我们—研究所—有—东西”也可以是“我们—研究—所有—东西”。词法分析的另外一个任务就是,英文中有很多词语有不同的形态,比如动词有不同的时态和第三人称等等,名词有单复数等等,我们如果把这些不同形态都放到词库里面的话,这个会大大增加搜索的难度,所以通常我们都是通过词法分析,就不同形态的单词对应到它原来的形态中去。如:Hecatchestwobutterflies这里的catches和butterflies就要对应到它们的原型catch和butterfly上面去这就是我们所说的词法分析。句法分析我们要理解一个句子啊,用词法分析还是远远不够的,所以我们还要用到句法分析怎样进行句法分析呢?句话分析主要是句法分析是对句子和短语结构进行分析。句法分析主要作用有:1)分析句子或短语结构,确定构成句子的各个词、短语之间的关系以及各自在句子中的作用等,并将这些关系表达为层次关系。2)规范句法结构,在分析句子的过程中,把分析句子各成分间关系的推导过程用树图表达,使这种图成为句法分析树。这里大家应该都知道什么是树,这是离散数学中的图论中的一个概念,在我们计算机的数据结构中经常会用到这种树形结构。所以,这里我们看到,我们要计算机来理解一个句子,就要先讲这个句子转化为一个树的结构,这其实就是要将一个语文问题转化为一个数学问题。我们知道计算机是非常擅长求解数学问题的,所以,只要我们将一个问题能够从数学的层面理解它,那么这个问题就非常好用计算机来求解了。但是难就难在我们啊,很难从数学层面去理解一些问题。就比如你说这个语言问题啊,如果有个公式可以求解的话,那么我们计算机理解语言也就没有潜在的困难了,比如我每个词语都能够由一个数学公式来表达,那么计算机来理解一个数学公式就容易多了。所以我们还是要尝试把我们的语言,结构化,模块化,定义化,并使词语和句子之间的关系越明确越好,所以我们需要这个句法分析。句法分析是由专门设计的分析器进行的,其分析过程就是构造句法树的过程,将每个输入的合法语句转换为一棵句法分析树。这里什么叫合法语句呢?就像我们平常说的一些比较规范的话,或者我们书本上的很多句子都是合法语句,但口语中就不一定,比如说我们说句子的合法结构是主谓宾,但我们口语中经常会出现宾主谓一个句子是由各种不同的句子成分组成的。这些成分可以是单词、词组或从句。句子成分还可以按其作用分为主语、谓语、宾语、宾语补语、定语、状语、表语等。这种关系可用一棵树来表示,如对句子:Hewroteabook.可用图示的树形结构来表示我们看一下,它用图来表示啊,就是这样子的,首先它是一个句子,我们认为任何一个句子啊,都至少有主语和谓语把,然后谓语又分为动词和宾语,然后分成这种结构以后,我们将这个句子中的的每个单词都对应到这个树的每个叶子上去,如果在中文中,也是一样,他写了一本书,他对应主语,写了对应动词,一本书对应宾语。当然,我们还有一些更加复杂的句子结构,可以看这个图。这个图中啊,增加了例如终结符,冠词等等新的分支,这样的树结构就能够对应更加复杂的句子。句法分析中,除了这种叫树结构的分析法以外还有一种也不得不介绍的,叫转移网络,这个转移网络,和我们之前介绍的那个有限状态机,又有点相似了。它本质上啊也是一个有限状态机。它也是一种图结构,我们这里又加深了一种计算机特别喜欢图结构的印象对不对。那么什么是转移网络呢,我们简单的说一下,扩充转移网路啊,就是把句子输入到类似这个图的一个网络中去,我们看到这个图有6个圆圈.它就代表我们在理解句子中处于的6个状态这个转移网络怎么来理解句子呢?比如我们说有这样一句待理解的话,Thesmallblackducksswallowflies我们这个转移网络,要从第一个单词开始一个一个处理。那么我们看到a,b上分别有一个箭头,说明句子可以从a,b两个位置输入,Det是冠词的意思,那么如果这个句子是由冠词开始的,那么就从a输入,否则则从b输入,比如有些句子像JACKlovesRose就应该是从b节点输入。然后这个句子每通过一条边,则处理完一个单词,比如说这句话有6个单词,那么它就要走六条边。我们看一下,它的状态转移就如图所示它首先从a状态进入,然后经过a到b这条弧,处理了the这个单词,然后在通过b节点上有一个到自己的弧,上面写着adj也就是形容词,这个句子走了两次这条弧,分别处理完了small和black这两个形容词,才走出b状态,因为ducks是一个名字,然后走到c状态,依次这样处理完6个单词以后,最后走到终结状态。这个状态转移网络啊,对比这个树结构来处理句子,有一个比较明显的优点,就是一个句子中,像某个名字前面的形容词,可能很多个,比如我们介绍一些领导人的时候,前面的称谓,可能很多。看过《冰与火》的同学应该知道,里面龙女丹妮莉丝,每次出场的时候都有一大串的前缀,比如龙之母,大草原的卡丽熙,先民的女王等等等等,反正每次都说一大串,如果我们用这个树结构去处理这种句子啊,我们就要设计很多很多种树的结构来匹配不同结构的句子,而用了转移网络以后不管一个名词前面加多少个形容词,我们用一个自己到自己的这种弧就可以解决了,所以说,我们可以用一个转移网络来处理不同结构的句子。这节课的最后啊,我们再来讲一下自然语言理解中的一个关键部分的发展,就是说啊,我们讲这个自然语言理解,就不得不讲这个语料库。语是语言的语,料是材料的料,库是仓库的库。说的通俗点,就像我们厨师需要食谱一样,对每种食材都要有性质的了解,比如这个胡椒,比较麻,是配料,这个生姜,比较辣等等。说的技术一点,比如说我们中医配药,他需要一个药谱,每一种药材,都有自己的特性。同样的,我们想让计算机了解人类的语言,那就要给它一个像词典或字典一样的东西,比如我们这个语料库,字典是什么,就是用人类语言去解释另一些人类语言,而语料库就可以理解为我们给计算机的一个字典,语料库中记录的就是用机器语言去解释人类语言。当然,其实语料库也是可以被人使用的,它同时也兼具了一些字典和词典的功能。语料库还有一个重要的特点,那就是,语料库中存放的是在语言的实际使用中真实出现过的语言材料;这是语料库最重要的一点,没有结合语料库之前啊,计算机的自然语言理解其实是非常的机械的,只会说一些非常非常呆板的话语,一听就不是真人。现在我们很多人机对话软件中可以说出来一些非常口语话的句子,比如会说“你别开玩笑了”,来表示否定,这种就是用到真实的语料库,其实那些话,都不是它想出来的,而是有真人,在相同的环境下,
本文标题:第七讲――自然语言理解
链接地址:https://www.777doc.com/doc-3807247 .html