教材:《人工智能及其应用》,蔡自兴等,2016m清华大学出版社(第5版)
参考书:
《人工智能》之《自然语言理解》
1 自然语言理解概述
1.1 什么是自然语言处理?
自然语言处理(Natural Language Processing,NLP)是用计算机通过可计算的方法对自然语言的各级语言单位(字、词、语句、篇章等等)进行转换、传输、存贮、分析等加工处理的理论和方法。
1.2 自然语言处理的发展历程
1.3 自然语言处理方法论
机器能够理解人的语言吗?
自然语言处理的两种主义:理性主义、经验主义。
- 一种是以基于知识的方法为代表的理性主义方法,该方法以语言学理论为基础,强调语言学家对语言现象的认识,采用非歧义的规则形式描述或解释歧义行为或歧义特性。
- 一种是以基于语料库的统计分析为基础的经验主义方法,该方法更注重用数学方法,从能代表自然语言规律的大规模真实文本中发现知识,抽取语言现象或统计规律。
1.4 自然语言理解的研究领域和方向
- 文字识别(Optical character recognition,OCR)
- 语音识别(Speech recognition)
- 机器翻译(Machine translation)
- 问答系统(Question answering system)
- 自动文摘(Automatic summarization或automatic abstracting)
- 信息检索(Information retrieval)
- 语音合成(Speech synthesis)
- 自然语言生成(Natural language generation)
1.5 自然语言处理的现状、难点与瓶颈
自然语言处理的现状:
- 仍然缺乏理论基础
- 词汇句法方面的问题尚未解决,已开始挑战语义、知识等深层课题
- 语音识别中采用的统计语言模型推动了NLP的发展,目前的统计模型在向语言深层发展
- 本体论( 知识图谱)受到普遍重视
- Bert 、GPT3大数据深度学习取得突破性进展
自然语言处理的难点:
- 歧义(ambiguity)
- 病构(ill-formedness)
歧义
病构
自然语言处理的瓶颈:
1.6 语言与语言理解
自然语言是音义结合的词汇和语法体系。词汇是语言的基本单位,它在语法的支配下可构成有意义和可理解的句子,句子再按一定的形式构成篇章等。其结构如下图所示:
词汇是语言的基本单位。熟语是指一些词的固定组合,如汉语中的成语。词又由词素构成,词素是构成词的最小有意义的单位。如“学生”是由“学”和“生”这两个词素构成的。
语法是语言的组织规律。词法是用词素或熟语构成词的规则,可分为构形法和构词法。构形法是指单数复数等,学生,学生们。造句法是用词和词组构造句子的规则。
1.7 自然语言理解过程的层次
语言虽然表示成一连串的文字符号或者一串声音流,但其内部实际上是一个层次化的结构,从语言的构成中就可以清楚地看到这种层次性。
一个文字表达的句子是由词素→词或词形→词组或句子构成。
一个声音表达的句子则是由音素→音节→音词→音句构成。
其中每个层次都受到语法规则的制约。因此,语言的分析和理解过程也应当是一个层次化的过程。
1.7.1 语音分析
1.7.2 词法分析
1.7.3 句法分析
1.7.4 语义分析
研究如何从一个语句中词的意义,以及这些词在该语句中句法结构中的作用来推导出该语句的意义。
1.7.5 语用分析
研究在不同上下文中语句的应用,以及上下文对语句理解所产生的影响。从狭隘的语言学观点看,语用学处理的是语言结构中有形式体现的那些语境。
2 词法分析
3 句法分析
3.1 短语结构语法
3.2 乔姆斯基形式语法
上下文无关文法
上下文无关文法(Context-free Grammars)是乔姆斯基提出的一种对自然语言语法知识进行形式化描述的方法。在这种文法中,语法知识是用重写规则表示的。作为例子,下面给出了一个英语的很小的子集。
这就是一个英语子集的上下文无关文法。在该文法中,“语句”是一个特殊的非终极符,称为起始符。
3.3 转移网络
寻找各种可能的路径:
- 并行算法。并行算法的关键是在任何一个状态都要选择所有可以到达下一个状态的弧,同时进行试验。
- 回溯算法。回溯算法则是在所有可以通过的弧中选出一条往下走,并保留其他可能性,以便必要时可以回过来选择之。这种方式需要一个堆栈结构。
4 语义分析
4.1 语义分析的典型应用
4.1.1 机器翻译
统计翻译系统框架:Transformer
4.1.2 问答系统
4.1.3 语音识别
5 词向量表示
5.1 词向量的定义
词向量是自然语言中的词语在机器学习中的表示符号。
5.2 语言模型
近年来,人们在寻找最适合自然语言处理的模型上的探索:
5.3 各种词向量及其特点
词向量(又叫词嵌入)已经成为NLP领域各种任务的必备一步,而且随着 elmo, bert, gpt 等预训练模型的发展,词向量演变为知识表示方法。
5.3.1 word2vec
word2vec来源于2013年的论文《Efficient Estimation of Word Representation in Vector Space》.
核心思想:利用神经网络对词的上下文训练得到词的向量化表示。
训练方法:
- CBOW(通过附近词预测中心词)
- Skip-gram(通过中心词预测附近的词)
CBOW(Continuous Bag of Words)
基本思想:基于N-Gram,用词语w的上下文作为输入,预测中心词语w。
example:
我爱计算机,窗口为2时,训练集可以构造为:
输入:{我,爱,算,机}
输出:计
Skip-Gram
基本思想:基于N-Gram,用词语w作为输入,预测词语的上下文。
example:
我爱计算机,窗口为2时,训练集可以构造为
输入:{计} 输出:{我,爱,算,机}
Skip-Gram跟CBOW的原理相似,它的输入是目标词,先是将目标词映射为一个隐藏层向量,根据这个向量预测目标词上下文两个词。
CBOW和Skip-Gram对比: