精华内容
下载资源
问答
  • 第六章 自然语言理解 课题名称自然语言理解 学习过程 课程名称 人工智能导论 教学内容 自然语言理解 学时 6课时 翻转课时 第1256课时 教学环境 多媒体教室 教学方法 情境教学法任务驱动法 讲练结合法小组讨论教学法 ...
  • 自然语言理解期末试卷2017-2018学年,研究生课程。。。。
  • 自然语言理解-宗成庆

    2018-04-08 17:51:18
    自然语言 指人类使用的语言,如汉语、英语等。 ? 语言是思维的载体,是人际交流的工具。 ? 语言的两种属性-文字和声音 ? 人类历史上以语言文字形式记载和流传的知 识占知识总量的 人类历史上以语言文字形式记载和...
  • 自然语言理解实验

    2018-01-22 16:13:56
    hmm实现的中文分词系统; 一个简单的宋词生成系统; 包括一个简单网页界面;
  • 基于自然语言理解与机器学习的聊天机器人,支持多用户并发及自定义多轮对话
  • 宗庆成大佬的自然语言理解课程全部课件,这个应该目前网上的都没这个新了。。。
  • 自然语言理解实验报告,中文分词系统,词频统计,最大正相匹配
  • 自然语言理解讲义

    2018-04-23 22:09:41
    自然语言理解讲义第一章,中国科学院自动化研究所。自然语言理解基本概念、研究内容、基本问题、面临的困难、基本研究方法、研究现状、国内外研究机构介绍
  • 自然语言理解(NLU)系统是问答系统、聊天机器人等更高级应用的基石。基本的NLU工具,包括实体识别和意图识别两个任务。
  • 自然语言理解

    千次阅读 2018-12-25 23:29:50
    自然语言理解,NLP,英文的写法是natural language processing。 是使用自然语言同计算机进行通讯的技术, 因为处理自然语言的关键,是要让计算机理解自然语言, 所以,自然语言处理,又叫做自然语言理解, 也称之为...

    这篇文章,主要介绍了自然语言理解的相关基础内容。
    一、二节,属于基础的内容介绍。
    三、四节,是历史研究脉络的简单回顾。
    五、六节,是对当前研究方向和问题的简单描述。
    通过这篇文章,
    只能够对自然语言理解的概念有了解,
    只能够对这个研究的好处有了解,
    只能够对NLP的基本原理和方法有了解,
    只能够对当前面临的困难有了解。
    其他,详细历史探索步骤、原理层面、应用层面,
    都还需要进行其他文章的阅读,进行补充。
    

    自然语言理解,NLP,英文的写法是natural language processing。
    是使用自然语言同计算机进行通讯的技术,
    因为处理自然语言的关键,是要让计算机理解自然语言,
    所以,自然语言处理,又叫做自然语言理解,
    也称之为计算语言学。
    计算语言学的英文名称是computational Ling uistics。
    一方面,它是语言信息处理的一个分支,
    另一方面,它是人工智能的核心课题之一。
    人工智能的英文名称是artificial intelligence。

    一 简介

    natural language understanding通俗的说法,是人机对话。
    人工智能的分支学科。
    研究用电子计算机模拟人的语言交际过程。
    让计算机能够理解和运用人类社会的,自然语言,比如说汉语、英语等。
    实现人机之间的自然语言通信,
    以代替人的部分脑力劳动,
    包括查询资料,解答问题,摘录文献,汇编资料以及一切有关自然语言信息的,加工处理。
    这在当前新技术革命的浪潮中,占据有十分重要的地位。
    研制第5代计算机的主要目标之一,就是要使计算机,具有理解和运用自然语言的功能。

    一、简介

    自然语言理解,是一门新兴的边缘学科,
    内容涉及语言学、心理学、逻辑学、声学、数学和计算机科学。
    而以语言学为基础。
    自然语言理解的研究,综合应用了

    1. 现代语音学
    2. 音系学
    3. 语法学
    4. 语义学
    5. 语用学

    的知识,
    同时呢,也向现代语言学,提出了一系列的问题和要求。
    本学科需要解决的中心问题,就是:
    语言,究竟是怎么样组织起来,传输信息的?
    人,又是怎么样,从一连串的语言符号当中,获取信息的呢?

    这一领域的研究,将涉及自然语言,
    自然语言,也就是人们日常使用的语言。
    包括中文、英文、俄文、日文、德文、法文等等,
    所以,它与语言学的研究,有着密切的联系,
    但是,又有重要的区别。

    自然语言处理,并不是一般地,研究自然语言。
    它是在于研发制造,有效地实现自然语言通讯的计算机系统。
    特别是其中的软件系统。
    因此来说,它是计算机科学的一部分。


    二 特征

    语言是人类,区别其他动物的本质特性。
    在所有生物中,只有人类,才具有语言能力。
    人类的多种智能,都与语言有着密切的关系。
    人类的逻辑思维,以语言为形式。
    人类的绝大部分知识,也是以语言文字的形式,记载和流传下来的。
    因而,它也是人工智能的一个重要,甚至核心的部分。

    用自然语言和计算机进行通信,这是人们长期以来追求的。
    因为,它既有明显的实际意义。
    同时,也具有重要的理论意义。
    人们可以,用自己最习惯的语言,使用计算机。
    人们不需要,再去花费大量的时间和精力,去学习不很自然和习惯的各种计算机语言。
    人们也可以,通过它,进一步了解人类的语言能力和智能的控制。
    这里的它,指代的是,用自然语言和计算机进行通信,这件事情。

    实现人机之间自然语言通信,意味着,要使计算机既能够理解自然语言文本的意义,
    也能够以自然语言文本,表达给定的意图、思想等。
    前者称之为,自然语言理解。
    后者称之为,自然语言生成。
    因此,自然语言处理,大体上,包括了两个部分。
    就是自然语言理解和自然语言生成。
    历史上,对自然语言理解的研究很多,
    对自然语言生成的研究很少,
    但是,这种近况近年来已有所改变。

    无论实现自然语言理解,还是自然语言生成,
    都远远不是人们原来想象的那么简单的,
    是十分困难的。

    从现阶段的理论和技术现状来看,
    通用的,高质量的自然语言处理系统,
    仍然是较长期的努力目标。
    但是,针对一定应用,具有相当自然语言处理能力的实用系统,
    已经出现。
    有些已经商品化,甚至开始产业化。
    典型的例子有:

    1. 种数据库
    2. 专家系统的自然语言接口
    3. 各种机器翻译系统
    4. 全文信息检索系统
    5. 自动文摘系统

    自然语言处理,就是实现人机之间自然语言通信。

    实现自然语言理解和自然语言生成,是十分困难的。
    造成困难的根本原因是,自然语言文本和对话的各个层次上,
    广泛存在各种各样的歧义性和多义性。
    多义性的英文单词,叫做ambiguity。

    一个中文文本,从形式上看,是由汉子、标点符号组成的一个字符串。
    由字可以组成词,由词可以组成词组,由词组可以组成句子,
    由句子可以组成段、节、章、篇。
    无论在上述的各种层次:字、词、词组、句子、段、节、章、篇。
    还是在下一层次向上一层次转变中,
    都存在着歧义和多义现象。
    也就是说,形式上一样的一段字符串,
    在不同的场景或不同的语境下,
    可以理解成不同的词串、词组串等,并有不同的意义。

    一般情况下,它们中的大多数,
    都是可以根据相应的语境和场景的规定而得到解决的。
    也就是说,从总体上说,并不存在歧义。
    这也就是,我们平时并不感到自然语言歧义的原因。
    这也就是,我们能够用自然语言进行正确交流的原因。

    但是一方面,我们也看到, 为了消解歧义,是需要极其大量的知识进行推理的。 如何将这些知识较为完整地加以收集和整理出来? 如何找到合适的形式,将它们存入计算机系统中去? 如何有效地利用它们来消除歧义? 这些都是工作量极大,而且十分困难的工作。 这不是少数人短时间内可以完成的, 还有待长期的,系统的工作。

    以上说的是,一个中文文本或一个汉字含有标点符号的字串,
    可能有多个含义。
    它是自然语言理解中的主要困难和障碍。
    反过来,一个相同的和相近的意义,
    同样也可以用多个中文文本或多个汉字串来表示。

    歧义现象:
    一个文本可以有多重意义。
    一个意义可以用多个文本表示。
    

    歧义现象的广泛存在,使得消除它们,需要大量的知识和推理。
    这种情况,给基于语言学的方法、基于知识的方法造成困难。
    这种困难是巨大的。
    因而,用这些方法为主流的自然语言处理研究,
    几十年来成绩并不显著。
    当然了,我们要说,这些研究在理论和方法方面取得了很多成就,
    但是在处理大规模真实文本的系统研究制造方面,真的。
    成绩并不显著。
    这些方法,研究制造出来的系统,都是一些小规模的、研究性的演示系统。

    在这里插入图片描述

    三 初始研究

    自然语言理解,从20世纪60年代初,开始研究。
    由于N-乔姆斯基,在语言学理论上的突破,
    由于此后各家理论的发展,
    由于计算机功能的不断提高,
    当下已经取得了一定的成果。
    成果主要分布在两个方面。
    第一个是语音理解。
    第二个是书面理解。
    语音理解,用口语语音输入,
    使计算机听懂语音信号,
    用文字或语音合成输出应答。
    方法是,先在计算机当中贮存某些单词的声学模式,
    用它来匹配输入的语音信号,
    这一步,称之为语音识别。
    这只是一个初步的基础,
    还不能达到语音理解的目的。
    因为单凭声学模式,
    无法辨认人和人之间的语音差别,
    无法辨别同一个人先后发音的语音差别,
    无法辨认连续语音流中的语音变化,
    必须综合应用语言学知识,
    以切分音节和单词
    分析句法和语义
    才能理解内容,获取信息。

    四 发展

    60年代至70年代初期,研究工作一直停留在单词的语音识别上,进展不大。
    一直到70年代中期,才有所突破。
    建立了一些实验系统。
    这些实验系统能够理解连续语音的内容,
    但是这种理解,还仅仅限制于少数简单的语句。

    书面理解是用文字输入,让计算机看懂文字符号,也用文字输出应答。
    这方面的进展较快,70年代初期取得突破,中期以后又有所发展。
    如今,已经能够在一定语汇、句型和主题范围内
    查询资料,解答问题,阅读故事,解释豫剧等。
    有的系统,已经付诸使用。

    由于绝大多数语种,使用的是拼音文字。
    计算机识别拼音字母,已经没有问题。
    文字输入,又是按照单词分别拼写的,
    因此书面理解一般没有切分音节和单词的问题,
    只需要直接分析语汇、句法、语义。

    但是汉语,用的是汉字。
    无论是使用汉字编码输入,还是将来计算机能够直接认识汉字,
    都要首先解决切分单词的问题。
    因为输入就是一连串汉字,词和词之间,没有空隔。

    书面理解的基本方法是:
    在计算机里面贮存一定的词汇、句法规则、语义规则、推理规则、主题知识。
    语句输入后,计算机自左至右,逐词扫描。
    根据词典,辨认每个单词的词义和用法。
    根据句法规则,确定短语和句子的组合。
    根据语义规则和推理规则,获取输入句的含义。
    查询知识库,根据主题知识和语句生成规则,组织应答输出。
    

    现阶段,已经建成的书面理解系统,应用了各种不同的语法理论和分析方法。
    例如

    1. 生成语法
    2. 系统语法
    3. 格语法
    4. 语义语法
    

    等等,都取得了一定的成效。

    五 研究方向

    大约90年代开始,自然语言处理领域,发生了巨大的变化。
    这种变化的两个明显的特征是:

    第一、系统输入

    要求研发制造的自然语言处理系统,能够处理大规模真实文本。
    不是像以前那样的研究性系统,
    只能处理很少的词条和典型句子。
    只有这样,研究制造的系统,才有真正的实用价值。

    第二、系统输出

    鉴于真实地理解自然语言,是十分困难的。
    对系统并不要求,能够对自然语言文本,进行深层的理解。
    但是,要能够从中抽取出来有用的信息。

    比方说,对自然语言文本,进行自动地提取索引词。
    过滤、检索、自动提取重要信息、进行自动摘要等等。

    同时,由于强调了大规模,强调了真实文本。
    下面两个方面的基础性工作,也得到了重视和加强。

    第一个方面,大规模真实语料库的研制。
    

    大规模的,经过不同深度加工的真实文本的语料库,
    这个是研究自然语言统计性质的基础。
    没有它们,统计方法只能是无源之水。

    第二个方面,大规模、信息丰富的词典的编制工作。
    

    规模为几万、十几万、甚至几十万词,含有丰富的信息的计算机可用词典,
    这个对自然语言处理的重要性,是很明显的。
    这个词典当中,是包含词的搭配信息的。

    虽然,上述新趋势,给自然语言处理领域带来了成果。
    但是,从理论方法的角度看,由于采集、整理、表示和有效应用大量知识的困难。
    这些系统更依赖于统计学的方法和其他简单的方法和技巧。
    而这些统计学的方法和其他简单的方法,似乎也快达到它们的极限了。

    因此,眼下,在自然语言处理界,广泛争论的一个问题便是:
    要取得新的更大的进展,主要有待于理论上的突破?
    还是可以由现有的方法的完善和优化实现?
    答案还不清楚。
    

    大致上,更多的语言学家,倾向于前一种意见,
    而更多的工程师则倾向于后一种意见。
    答案或许就在中间。
    就是,将基于知识和推理的深层方法、基于统计的浅层方法结合起来。
    自然语言处理理论上的一种突破,
    就是自然语言的实质理解的研究,已经取得进展。

    六 存在问题

    现阶段存在的问题,有两个方面:
    一方面,迄今为止的语法,都限制于分析一个孤立的句子,
    上下文关系、谈话环境对本句的约束和影响,还缺乏系统的研究,
    因此,分析歧义、词语省略、代词所指、
    同一句话在不同场合或由不同的人说出来,所具有的不同含义等问题,
    还没有明确的规律可循,需要加强语用学的研究,才能够逐步解决。

    另一方面,人理解一个句子,不是单凭语法,
    还运用了大量的有关知识,
    包括生活知识和专门知识,
    这些知识无法全部贮存在计算里。
    因此,一个书面理解系统,只能建立在有限的词汇、句型和特定的主题范围内。
    计算机的贮存量和运转速度大大提高之后,才有可能适当扩大范围。

    第一个方面说的上下文约束理解问题。
    第二个方面说的是发散理解的问题。
    

    以上存在的问题,成为了自然语言理解,在机器翻译应用中的主要难题。
    这也就是当今机器翻译系统的译文质量,距离理想目标,仍然相差甚远的原因之一。
    译文质量是机译系统成败的关键。
    中国数学家、语言学家周海中教授,曾经在经典论文《机器翻译五十年》
    指出:

    要提高机器翻译的质量,
    首先要解决的是语言本身问题,而不是程序设计问题。
    单单依靠若干程序,来做机器翻译系统,肯定是无法提高机器翻译质量的。
    另外,
    在人类还没有了解大脑是如何进行语言的模糊识别和逻辑判断的情况下,
    机器翻译想要达到,信达雅的程度,是不可能的。
    
    展开全文
  • 日录 第一章绪论 第二章知识表示 第三章搜索技术 第四章推理技术 第五章机器学习 第六章专家系统 第七章自动规划系统 第八章自然语言理解 第九章智能控制 第十章人工智能程序设计 8.1语言及其理解的一般问题 81.1...
  • 自然语言理解宗成庆

    2014-05-29 14:10:14
    自然语言指人类使用的语言,如汉语、英语等。 语言是思维的载体,是人际交流的工具。 语言的两种属性-文字和声音 人类历史上以语言文字形式记载和流传的知 识占知识总量的80%以上。 -如何让计算机实现...
  • 本课程为中国科学院研究生院专业基础课 宗成庆:《自然语言理解》讲义 机器翻译
  • 自然语言理解 宗成庆

    2014-06-28 09:29:04
    这是中科院自动化所宗成庆的《自然语言理解》的讲义
  • 自然语言理解 (第二版) 自然语言理解 (第二版) 自然语言理解 (第二版)
  • 中科大自然语言理解课程ppt(含往年试题卷),NLU,lexical analysis
  • 自然语言理解概述

    千次阅读 2020-03-17 20:01:39
    在文章的开头,我必须说明,自然语言理解的定义、理论在网上有太多不同的说法,我在这里给出的是我个人认为比较好理解、能梳理清楚各个子领域的一种概述,如果有哪里出错了麻烦指正。 所谓自然语言理解,就是希望...

    在文章的开头,我必须说明,自然语言理解的定义、理论在网上有太多不同的说法,我在这里给出的是我个人认为比较好理解、能梳理清楚各个子领域的一种概述,如果有哪里出错了麻烦指正。

    所谓自然语言理解,就是希望机器能像人类一样,具备理解语言的能力,就像另一半说没有生气,到底是真的没有生气还是气到肺都炸了,这就需要很高的语言理解能力了。

    具体来说,我觉得自然语言理解要解决两个问题,第一个是理解什么,第二个是机器怎么理解。

    对于理解什么,主要有三点,句子的领域(domain)、意图(intent)和语义槽(slot),对应的就是自然语言理解的三个重要子领域:领域分类、意图识别、语义槽填充。

    在这里插入图片描述

    其实domain、intent和slot我觉得是一个句子不同层次的信息,首先是domain,它说明了一个句子属于什么领域,这是一个很大的概念,比如说"你知道昨天湖人拿了总冠军了吗"这句话就属于篮球领域,“Red Velvet的Irene太美了"这句话就属于娱乐圈领域,确定一个句子的领域的一个作用在于缩小分析范围,比如说你对一个订机票的系统说"湖人总冠军”,它通过确定这句话的领域和订机票无关,就不需要进一步分析这句话想订飞去哪里的机票、具体时间等细节信息了。

    对于intent,就是更具体的内容,还是以订机票为例,比如说"我想买一张上海飞北京的头等舱,下午5点出发,国航的",首先系统会分析句子的领域属于机票相关领域,然后就会进一步分析句子的意图,看看你想订机票还是退机票还是换位置什么的。

    分析之后发现你想订机票,就会进一步分析你提供了什么信息,也就是slot,这是语义信息的最小粒度,对这句话来说,“我”、“想”、“买”、“一张"等词都有相应的语义成分,但是和订机票这个意图相关的信息,只有"上海” 、“北京”、“头等舱”、“下午5点”、“国航”,其中"上海"对应的标记就是"出发地",所以说,实际上槽填充就是一个序列标注问题。

    在这里插入图片描述
    可以看到,上图的表格就把句子的意思完整表示出来了。

    到这里已经介绍完自然语言处理到底理解什么,下一步就是介绍机器到底怎么去理解我们所提到的domain、intent和slot。

    让机器学会"理解",其实就是所谓的语义表示,要知道机器只能处理数字,所以其实我们能做的只是通过不同的方式,把语言转化为数字。一般来说,语义表示有三种,分布式语义表示(distributional semantics representation)、模型论语义表示(model-theoretic semantics representation)和框架语义表示(frame semantics representation)。分布式语义表示就是之前提到的word2vec、glove之类的词嵌入,把词和句子用高维向量表示,模型论语义表示这里暂不细说,而对于框架语义表示,其实上面订机票的例子用的就是框架语义表示,把整个句子分成了三个层次,表示domain、intent、slots,当然我们也可以划分成其他各种各样的形式,根据实际情况构建出不同的框架。

    那么如果订机票这个例子用分布式语义表示会有什么不同吗,比如说分析domain,对框架语义表示来说,"我想订几张机票"和"我想退一张机票"都属于"机票"领域,domain都用"机票"表示,所以两者的domain是完全一致的,可是如果用分布式语义去表示,直接分析出句子的domain向量,就不会完全相同了,比如说可能一个是(0,0,0.8),另一个是(0,0,0.75)。

    来到这里,已经讲清楚了两个问题,总结一下,第一,自然语言理解要理解分析的是一个句子的domain、intent和slot,第二,我们可以用分布式语义表示、模型论语义表示和框架语义表示去表示分析的结果。接下来就剩下最后一个问题了,可以通过什么方法模型实现上述所说的内容。

    从应用的模型来看,自然语言理解经历了三个阶段,基于规则的方法、基于机器学习和基于深度学习,对于机器学习和深度学习,主要都是SVM、神经网络那些模型了,只是如何结合起来应用而已,后面我会继续详细介绍深度学习模型和自然语言理解的结合应用,而在本文则继续简单看一下基于规则的方法(因为现在好像不常用,这里简单说一下就过了)。

    对于基于规则的方法,我主要简单谈一下CFG(context-free grammar)的思想,看看如何用CFG实现框架语义表示,找出句子的domain、intent和slot。

    之前提到一种框架是三层分层结构,而CFG采用的则是语法树结构,以前我们可以根据句子中每个词的词性构建语法树:

    在这里插入图片描述

    其中S表示句子,NP、VP、PP是名词、动词、介词短语(短语级别),N、V、P分别是名词、动词、介词。可以看到,其实从语法的角度,也把句子分成了句子级、短语级和词级,所以相应的我们用domain、intent、slot替换这三个等级,就可以得到新的语法树:

    在这里插入图片描述

    通过学习标注好的数据,CFG可以推导出一个句子的语法结构,从而找出句子的domain、intent和slot,关于CFG的详细过程这里暂不细说。

    这种基于规则的方法虽然可以推导出句子的语法结构,但是因为词的多义性,结果未必准确,从语法的角度来说,词的多义性就是一个词的词性不同,意思也完全不同,比如情态动词的can表示"可以",可是名词的"can"表示罐头,这是传统语法的情况。而像我们上面那种自定义的模型,比如说有这么一个句子"我想飞去上海,而不是北京",模型就有可能把上海预测成"from city",把北京预测成"to city"。

    从根本上来说,基于规则的方法不完美,不仅仅是因为词的多义性之类的问题,语言变化多端,不同句子有不同意思,甚至同一句子在不同场景下都会有不同的意思,即使能制定再多的规则,比如搞出一套非常复杂的语法系统,也无法把语言的多样性分析透彻,所以到后来,基于规则的方法就慢慢被机器学习和深度学习取代了。

    最后再来谈谈自然语言理解的难点,第一个难点就是语言的多样性,比如说表达我爱你的时候,可以直白地说"我爱你",也可以说"今夜月色真美",对于后者,别说计算机,对人类来说,如果不知道这个典故谁又会知道这是在表白。

    第二个难点是语言的歧义,和语言的多样性有点联系又不尽相同,可以这样说,多样性指不同的话可以表达同样的意思,而歧义则是同一句话可以表达很多意思,正如一开始说的"我没有生气",到底是生气还是没有生气?

    第三个是语言的鲁棒性,意思是语言可能含有噪音,但是对语言的意思影响不大,比如说"今天天气真好"和"今天天气真tm好",两句话完全一样的意思,但是机器就有可能觉得后者在说脏话。

    第四个是语言的知识依赖,我觉得这个才是最大的难点,比如说这样一句话"菊花台真不错",如果不知道菊花台是一首歌,就可能以为是一个地方名,或者一幅画,怎么理解知识,并且构建知识之间的联系,绝对是今后研究的热点。

    第五个是语言的上下文,如何有效地利用上下文对于自然语言理解有着重大的意义。

    到目前为止,已经大概介绍了自然语言理解到底需要理解什么、怎么理解、实现的方法以及相关的难点,后续也会进一步介绍相关的模型理论。

    在github写的自然语言处理入门教程,包含汇总的博客文章和相应的模型代码:NLPBeginner

    最近开始研究对话系统,还在探索当中,学习笔记也会在github上整理更新:HowToCreateHomunculus

    展开全文
  • 1,自然语言理解基本概念 2,句法和句法分析 3,特征和扩充文法 4,自然语言句法 5,词法 6,语义理解 7,统计语言模型 8,高效分析方法 还有一个关于范畴表达式的ppt。 希望对大家有帮助,欢迎大家加入自然语言...
  • 什么是自然语言理解自然语言理解的准则是什么? 自然语言理解与“智能”一样,存在各种各样的理解和解释,是利用计算机对自然语言进行理解。 自然语言理解的准则:给计算机输入一段自然语言为本,如果计算机能问答...

    什么是自然语言理解?自然语言理解的准则是什么?

    自然语言理解与“智能”一样,存在各种各样的理解和解释,是利用计算机对自然语言进行理解。
    自然语言理解的准则:给计算机输入一段自然语言为本,如果计算机能问答——计算机能正确地回答输入文本中的有关问题;
    文摘生成——机器有能力产生输入为本的摘要;
    释义——机器用不同的词语和语句复述输入文本;
    翻译——机器把一种语言(源语言)翻译为另一种语言(目标语言)

    展开全文
  • 自然语言处理主要步骤包括: 分词(只针对中文,英文等西方字母语言已经用空格做好分词了):将文章按词组分开 词法分析:对于英文,有词头、词根、词尾的拆分,名词、动词、形容词、副词、介词的定性,多种词意的...

    自然语言处理主要步骤包括:

            1. 分词(只针对中文,英文等西方字母语言已经用空格做好分词了):将文章按词组分开
            2. 词法分析:对于英文,有词头、词根、词尾的拆分,名词、动词、形容词、副词、介词的定性,多种词意的选择。比如DIAMOND,有菱形、棒球场、钻石3个含义,要根据应用选择正确的意思。
            3. 语法分析:通过语法树或其他算法,分析主语、谓语、宾语、定语、状语、补语等句子元素。
            4. 语义分析:通过选择词的正确含义,在正确句法的指导下,将句子的正确含义表达出来。方法主要有语义文法、格文法。
            但是以上的分析,仅适用于小规模的实验室研究,远不能应用到实际语言环境中,比如说语法,我们能总结出的语法是有限的,可是日常应用的句子,绝大部分是不遵守语法的,如果让语法包罗所有可能的应用,会出现爆炸的景象。

    自然语言处理的应用方向主要有:

            1. 文本分类和聚类:主要是将文本按照关键字词做出统计,建造一个索引库,这样当有关键字词查询时,可以根据索引库快速地找到需要的内容。此方向是搜索引擎的基础,在早期的搜索引擎,比如北大开发的“天问系统”,采用这种先搜集资料、在后台做索引、在前台提供搜索查询服务。目前GOOGLE,百度的搜索引擎仍旧类似,但是采用了自动“蜘蛛”去采集网络上的信息,自动分类并做索引,然后再提供给用户。我曾经在我的文章中做过测试,当文章中有“十八禁”这样的字眼时,点击次数是我其他文章点击次数的几十倍,说明搜索引擎将“十八禁”这个词列为热门索引,一旦有一个“蜘蛛”发现这个词,其他“蜘蛛”也会爬过来。
           2. 信息检索和过滤:这是网络瞬时检查的应用范畴,主要为网警服务,在大流量的信息中寻找关键词,找到了就要做一些其他的判断,比如报警。
            3. 信息抽取:(抄书)信息抽取研究旨在为人们提供更有力的信息获取工具,以应对信息爆炸带来的严重挑战。与信息检索不同,信息抽取直接从自然语言文本中抽取事实信息。过去十多年来,信息抽取逐步发展成为自然语言处理领域的一个重要分支,其独特的发展轨迹——通过系统化、大规模地定量评测推动研究向前发展,以及某些成功启示,如部分分析技术的有效性、快速自然语言处理系统开发的必要性,都极大地推动了自然语言处理研究的发展,促进了自然语言处理研究与应用的紧密结合。回顾信息抽取研究的历史,总结信息抽取研究的现状,将有助于这方面研究工作向前发展。
            4. 问答系统:目前仍局限于80年代的专家系统,就是按照LISP语言的天然特性,做逻辑递归。LISP语言是括号式的语言,比如A=(B,C,D),A=(B,E,F),提问:已知B,C,能得到什么样的结论?结论是A,D;若提问改为已知B,结论则是C,D,A或E,F,A。比如一个医疗用的专家系统,你若询问“感冒”的治疗方法,系统可能给出多种原因带来的感冒极其治疗方法,你若询问“病毒性感冒”的治疗方法,则系统会给出比较单一的、明确的治疗方法。你有没有用过AUTOCAD系统,这个就是建立在LISP语言上的括号系统,在用的时候会出现上述情况。
            5. 拼音汉字转换系统:这应该是中文输入法应用范畴的东西,再多的东西我就没想过。
            6. 机器翻译:当前最热门的应用方向,这方面的文章最多。国际上已经有比较好的应用系统,美国有个AIC公司推出过著名的实时翻译系统,欧共体的SYSTRAN系统可以将英、法、德、西、意、葡六种语言实时对译,美、日、德联合开发的自动语音翻译系统,成功进行了10多分钟对话。我国军事科学院、中科院也开发过此类系统。但是这里边的问题也很多,最主要的是“满篇洋文难不住,满篇译文看不懂”,就是脱离了人类智慧的机器翻译,总会搞出让人无法理解的翻译,比如多意词选择哪个意思合适、怎么组织出通顺的语句,等等。所以目前微软、GOOGLE的新趋势是:翻译+记忆,类似机器学习,将大量以往正确的翻译存储下来,通过检索,如果碰到类似的翻译要求,将以往正确的翻译结果拿出来用。GOOGLE宣称今后几年就可以推出商业化的网页翻译系统。
            7. 新信息检测:这个我不知道,没思路。

            以上已经回答了自然语言发展方向的问题。我认为机器翻译是最有前途的方向,其难点在于机器翻译还不具备人类智能,虽然翻译已经达到90%以上的正确程度,然而还是不能象人类翻译那样,可以准确表达。为什么存在这样的难点?关键是自然语言处理做不到人类对自然语言的理解,“处理”和“理解”是天差地别的两个概念。“处理”好比控制眼睛、耳朵、舌头的神经,他们将接收的信息转化成大脑可以理解的内部信息,或者反过来,他们的功能就是这么多。而“理解”则是大脑皮层负责语言理解那部分,多少亿的脑细胞共同完成的功能。一个人因为其自身家庭背景、受教育程度、接触现实中长期形成的条件反射刺激、特殊的强列刺激、当时的心理状况,这么多的因素都会影响和改变“理解”的功能,比如我说“一个靓女开着BMW跑车”,有人心里会想这是二奶吧?有人心里会仇视她,联想到她会撞了人白撞;做汽车买卖的人则会去估量这部车的价值;爱攀比的人也许会想,我什么时候才能开上BWM?所以“理解”是更加深奥的东西,涉及更多神经学、心理学、逻辑学领域。

           还有上下文理解问题,比如这句:“我们90平方米以后会占的分量越来越大,那么这样他的价格本身比高档低很多,所以对于整体把这个价格水平给压下来了,这个确实非常好的。” 你能理解么?估计很难或者理解出多种意思,但是我把前文写出来:“去年国家九部委联合发布了《建设部等部门关于调整住房供应结构稳定住房价格意见的通知》,对90平方米以下住房须占总面积的70%以上作出了硬性规定,深圳市经过一年的调控,目前已做到每个项目的75%都是90平方米以内。深圳市国土资源和房产管理局官员说”看了后面的你才能知道是根据国家的通知,深圳做了相应的调整。

    自然语言理解

    1. 语义表示

    自然语言理解的结果,就是要获得一个语义表示(semantic representation):

    这里写图片描述

    语义表示主要有三种方式:

           1. 分布语义,Distributional semantics
           2. 框架语义,Frame semantics
           3. 模型论语义,Model-theoretic semantics

    1.1 分布语义表示(Distributional semantics)

           说distributional semantics大家比较陌生,但如果说word2vec估计大家都很熟悉,word2vec的vector就是一种distributional semantics。distributional semantics就是把语义表示成一个向量,它的理论基础来自于Harris的分布假设:语义相似的词出现在相似的语境中(Semantically similar words occur in similar contexts)。具体的计算方法有多种,比如LSA(Latent Semantic Analysis)、LDA(Latent Dirichlet Allocation)及各种神经网络模型(如LSTM)等。

           这种方法的优点在于,它完全是数据驱动的方法,并且能够很好的表示语义,但一个很大的缺点在于,它的表示结果是一个整体,没有进一步的子结构。

    1.2 框架语义表示(Frame semantics)

           顾名思义,这种方法把语义用一个frame表示出来,比如我们一开始举得例子:“订一张明天北京去杭州的机票,国航头等舱”,表示如下:

    这里写图片描述

           在计算方法上,典型的比如语义角色标注(Semantic Role Labeling),具体可以分为两个步骤:frame identification和argument identification,frame identification用于确定frame的类型,argument identification用于计算各个属性的具体值。这种方法和distributional semantics相比,能够表达丰富的结构。

    1.3 模型论语义表示(Model-theoretic semantics)

           模型轮语义表示的典型框架是把自然语言映射成逻辑表达式(logic form)。比如对于下图中的“中国面积最大的省份是哪个?”,将其表示成逻辑表达式就是图中红色字体部分,进一步那这个逻辑表达式去知识库中查询,就得到了答案。在计算方法上,典型的就是构建一个semantic parser。

    这里写图片描述

           模型论语义表示是对世界知识的完整表示,比前两种方法表达的语义更加完整,但是缺点是semantic parser的构建比较困难,这大大限制了该方法的应用。

    1.4 目前采用的语义表示

           目前常用的是frame semantics表示的一种变形:采用领域(domain)、意图(intent)和属性槽(slots)来表示语义结果。
           其中,领域是指同一类型的数据或者资源,以及围绕这些数据或资源提供的服务,比如“餐厅”,“酒店”,“飞机票”、“火车票”、“电话黄页”等;意图是指对于领域数据的操作,一般以动宾短语来命名,比如飞机票领域中,有“购票”、“退票”等意图;属性槽用来存放领域的属性,比如飞机票领域有“时间”“出发地”“目的地”等;
           对于飞机票领域,我们的语义表示结构如下图所示:

    这里写图片描述

           进一步,我们对于世界的语义描述(又称为domain ontology)如下:

    这里写图片描述

    2. 自然语言理解技术难点

           在确定了自然语言理解的语义表示方法后,我们把技术方案抽象为如下两步:
    这里写图片描述

           这和前文提到的语义角色标注把过程分为frame identification和argument identification类似,领域分类和意图分类对应frame identification,属性抽取对应argument identification。无论对于分类还是对于抽取来说,都需要有外部知识的支持。在实现的过程中,我们面临着如下的困难:

    (1)如何构建知识库
           “总参”除了表示总参谋部外,还是南京一家很火的火锅店;“中华冷面”除了是一种面条,还是一首歌名;“王菲的红豆”是指王菲唱的红豆这首歌,但如果说“韩红的红豆”就不对了,因为韩红没有唱过红豆这首歌。要想把这些知识都理解对,就需要一个庞大的知识库,这个知识库中的实体词数以千万计,怎么挖掘,怎么清洗噪音,都是很大的挑战。

    (2)如何理解用户语句的意图
           “东三环堵吗”这句话意图是查询路况,“下水道堵吗”就不是查路况了;“今天的天气”是想问天气状况,“今天的天气不错”则无此意;“附近哪儿可以喝咖啡”是想找咖啡馆,但“牛皮癣能喝咖啡吗”就是一个知识问答了。类似上述的例子举不胜举,更别说语言理解还受时间、位置、设备、语境等等问题的影响。

    (3)如何构建可扩展的算法框架
           现实世界包含众多的领域,而我们不可能一次性的把所有领域都定义清楚并且实现之,那我们就需要一个可扩展的算法框架,每当修改或者新增某个领域的时候,不会对其他领域造成干扰。

    (4)如何构建数据驱动的计算流程
           大数据时代,如果一个算法或者流程不是数据驱动的,不是随着数据的增加而自动提升效果,那这个算法框架就没有持续的生命力。

    (5)如何融入上下文知识
           在对话场景中,每句话都有对话上下文,同样的句子在不同的上下文中理解结果是不一样的,比如如下的例子,同样的一句话“今天天气好吗”在左侧图中属于天气领域,而在右侧图中则属于音乐领域。

    这里写图片描述

    展开全文
  • 一种基于层级注意力机制的自然语言理解模型,赵明星,程祥,任务型对话系统一般包括自然语言理解、对话状态追踪对话策略选择和自然语言生成等模块。其中,自然语言理解模块负责提取用户输入
  • 感知自然语言理解(NLU)

    千次阅读 2019-03-03 21:36:00
    自然语言是人类的智慧,自然语言处理(NLP)是AI中最为困难的问题之一,而自然语言理解(NLU)也变成了一个主要的问题,充满了魅力和挑战。一介程序员,没有能力去做相关的研究,但是认知其中的一些基本概念,对于...
  • 自然语言理解自然语言理解
  • 提出了一种针对智能检索的自然语言理解的实现模型。该模型通过句模分析、分词和概念扩展的方法来理解问句,在一定程度上提高理解自然语言的能力。详细介绍了其系统架构、实现思想和原理。最后通过一系列的实例来对...
  • 1. 什么是自然语言理解 2. 自然语言理解的复杂度 3. 自然语言理解的科学意义 4. 自然语言理解的应用价值 5. 中文自然语言理解的重要意义 6. 大数据时代的自然语言理解 7. 典型应用
  • 自然语言理解(NLU)概念浅析

    千次阅读 2019-04-16 19:47:27
    自然语言理解(NLU)概念浅析 近来,人工智能(AI)行业利好消息不断,各大巨头都在积极拼抢这个领域的人才,笔者最近也频繁收到相关方面的咨询和讨论,不得不说,有时候大家真的搞错。人工智能是个非常大的概念,...
  • 简述自然语言理解的层次划分及对应的技术 语音分析:根据音位规则,从语音流中区分独立的音素,根据音位形态规则找出音节机器对应的词素或词。对应技术:模式匹配 词法分析:找出词汇的各个词素(词根),从中获得...
  • 自然语言理解实验报告

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 272,524
精华内容 109,009
关键字:

自然语言理解