计算语言学讲义(03)词法分析(一)

合集下载

北航编译原理课件 03.词法分析

北航编译原理课件 03.词法分析

3. 词法分析程序算法
北京航空航天大学计算机学院
17
1.单词及内部表示 单词及内部表示: 单词及内部表示
单词名称
BEGIN END FOR DO IF THEN ELSE 标识符 常数(整 常数 整) : + * , ( ) :=
保留字和分界符采用一符一类
记忆符
BEGINSY ENDSY FORSY DOSY IFSY THENSY ELSESY IDSY INTSY COLONSY PLUSSY STARSY COMSY LPARSY RPARSY ASSIGNSY
字母、数字
标识符 无符号整数
单字符分界符
S S S
字母
标 数字
非字母数字
出口
数字

非数字
出口
+ * , 单界 ( ) :
其他字符 非=
出口
双字符分界符
北京航空航天大学计算机学院
S
冒号
=
双界
其他字符
出口 15
查保留字表 读字符
字母、数字
S
字母
标 数字
非字母数字
标识符
非数字
数字

无符号整数 单字符分界符
如:b{ab} = {ba}b {a|b} = {{a} {b}} = (a*b*)*
北京航空航天大学计算机学院 23
例:设 ∑ = { a,b },下面是定义在∑上的正则表达式和正则集合 正则表达式 ba* a(a|b)* (a|b)*(aa|bb)(a|b)* 正则集合
北京航空航天大学计算机学院
北京航空航天大学计算机学院 20
‘*’ : ‘,’ : ‘(’ : ‘)’ : ‘:’ :

计算语言学讲义(03)词法分析(一)

计算语言学讲义(03)词法分析(一)
计算语言学讲义(04)词法分析I
6
序列标注问题
• 输入:一个符号序列 • 输出:给每一个输入符号赋予一个标记 • 常见具体问题:
– 音字转换:拼音序列 – 词性标注:词语序列 – 词义排歧:词语序列 汉字序列 词性序列 词义标记序列
计算语言学讲义(04)词法分析I
7
序列结构化
• 输入:一个符号序列 • 输出:一个结构,刻划符号之间的关系 • 常见具体问题:
• 输入:一段文本 • 输出:单词串 • 算法:(略)
计算语言学讲义(04)词法分析I
21
Stemming
屈折型语言的词语变化形式: • 屈折变化:即由于单词在句子中所起的语法作用的不同而 发生的词的形态变化,而单词的词性基本不变的现象,如 ( take, took, takes)。识别这种变化是词法分析的最 基本的任务。 • 派生变化:即一个单词从另外一个不同类单词或词干衍生 过来,如morphological morphology,英语中派生变化 主要通过加前缀或后缀的形式构成;在其他语言中,如德 语和俄语中,同时还伴有音的变化。 • 复合变化:两个或更多个单词以一定的方式组合成一个新 的单词。这种变化形式比较灵活,如well-formed, 6year-old等等。 Stemming的目的:将上述变化还原
– 成分句法分析:词语序列 短语结构树 – 依存句法分析:词语序列 依存树 – 语义分析:词语序列 语义网络
计算语言学讲义(04)词法分析I
8
问题与方法
• 计算语言学常用方法:
– 规则方法
• 形式语法理论 • 形式逻辑 • ……
– 统计方法
• • • • n元语法模型 隐马尔科夫模型 最大熵模型 ……
计算语言学讲义(04)词法分析I

编译原理中的词法分析与语法分析原理解析

编译原理中的词法分析与语法分析原理解析

编译原理中的词法分析与语法分析原理解析编译原理是计算机科学中的重要课程,它研究的是如何将源程序翻译成目标程序的过程。

而词法分析和语法分析则是编译过程中的两个重要阶段,它们负责将源程序转换成抽象语法树,为接下来的语义分析和代码生成阶段做准备。

本文将从词法分析和语法分析的原理、方法和实现技术角度进行详细解析,以期对读者有所帮助。

一、词法分析的原理1.词法分析的定义词法分析(Lexical Analysis)是编译过程中的第一个阶段,它负责将源程序中的字符流转换成标记流的过程。

源程序中的字符流是没有结构的,而编程语言是有一定结构的,因此需要通过词法分析将源程序中的字符流转换成有意义的标记流,以便之后的语法分析和语义分析的进行。

在词法分析的过程中,会将源程序中的字符划分成一系列的标记(Token),每个标记都包含了一定的语义信息,比如关键字、标识符、常量等等。

2.词法分析的原理词法分析的原理主要是通过有限状态自动机(Finite State Automaton,FSA)来实现的。

有限状态自动机是一个数学模型,它描述了一个自动机可以处于的所有可能的状态以及状态之间的转移关系。

在词法分析过程中,会将源程序中的字符逐个读取,并根据当前的状态和字符的输入来确定下一个状态。

最终,当字符读取完毕时,自动机会处于某一状态,这个状态就代表了当前的标记。

3.词法分析的实现技术词法分析的实现技术主要有两种,一种是手工实现,另一种是使用词法分析器生成工具。

手工实现词法分析器的过程通常需要编写一系列的正则表达式来描述不同类型的标记,并通过有限状态自动机来实现这些正则表达式的匹配过程。

这个过程需要大量的人力和时间,而且容易出错。

而使用词法分析器生成工具则可以自动生成词法分析器的代码,开发者只需要定义好源程序中的各种标记,然后通过这些工具自动生成对应的词法分析器。

常见的词法分析器生成工具有Lex和Flex等。

二、语法分析的原理1.语法分析的定义语法分析(Syntax Analysis)是编译过程中的第二个阶段,它负责将词法分析得到的标记流转换成抽象语法树的过程。

第3章词法分析1

第3章词法分析1

第三章 词法分析知识结构:功能 词法分析器的要求 单词符号分类 词法分析 单词内部形式器的设计 设计方发词法分析器的设计 状态图词法分析器组成正规表达式单词描述工具 正规集词法分析器 正规文法确定有限自动机(DFA )单词识别工具 非确定有限自动机(NFA )DFA 的最小化FA 的等价转换等价转换FA 的等价转换第一节 对词法分析器的要求一、词法分析器的功能输入源程序,输出单词符号(二元式表示)。

关键字:是由程序语言定义的具有固定意义的标识符。

标识符:用来表示各种名字,如变量等。

常数:常数的类型有整型,实型等。

运算符:算术运算符,关系运算符,逻辑运算符。

界限符:逗号,分号等。

三、单词符号内部的表示形式内部的单词符号TOKEN字(二元式),TOKEN字占用机器字的长度,依据信息量的多少而定。

1、TOKEN字结构CLASS:用整数表示。

VALUE:表示单词符号的属性(符号表指针)。

2、TOKEN的作用CLASS:用于语法分析器对源程序结构的分析。

VALUE:用于语义分析器对源程序具体操作的分析。

3、单词种别码划分原则CLASS:关键字,运算符,界限符(编译程序定义的符号)使用一字一种编码。

VALUE值省略。

VALUE:标识符,常数(用户定义的符号),存放符号表常数表的指针。

标识符,常数每一类为一种编码。

例:BEGIN A:= B END;词法分析结果:符号表(BEGIN,---- )Array(A ,K1 ) K1(:= ,--- )(B ,K3 ) K3(END ,--- )(;,--- )四、词法分析器的结构1、一遍扫描(交互式结构)。

2、多遍扫描(独立式结构)。

第二节词法分析器的设计一、设计步骤1、确定词法分析器的接口关系;2、确定单词分类和TOKEN字的结构;3、对每一类单词构造状态转换图;4、根据状态转换图设计算法。

二、功能描述1、组织源程序输入;2、按词法规则拼读单词符号,并转换成二元式;3、删除注解行,空格和无用符号;4、检查词法错误。

词法分析及词法分析程序..课件

词法分析及词法分析程序..课件

PART 03
词法分析程序的设计
词法分析程序的输入
源代码
词法分析程序的输入是源代码,包括 各种编程语言的源代码。
语法规则
词法分析程序需要使用语法规则来指 导如何解析源代码。
词法分析程序的
标记序列
词法分析程序的输出是一组标记序列, 每个标记代表源代码中的一个单词或符 号。
VS
识别结果
词法分析程序通过识别源代码中的单词或 符号,将其归类为不同的标记,从而生成 标记序列。
词法分析程序可以帮助搜索引擎理解用户的查询意图,从而提供更相关的搜索结果。
智能助手
智能助手需要理解用户的自然语言输入,通过词法分析程序可以将语音或文本输入分解成一个个的词素,从而理解用户的意 图。
智能助手的应用场景包括语音助手、智能客服、智能家居等。
2023-2026
END
THANKS
感谢观看
KEEP VIEW
PART 04
词法分析程序的实现
词法分析程序的语法分析
词法分析程序的语法分析是词法分析程序的核心部分,它负责将输入的字 符串分割成一个个单独的词素或标记。
语法分析器通常采用有限自动机或正则表达式等算法,根据预定义的语法 规则对输入字符串进行解析,并生成一棵语法分析树。
语法分析器还需要处理各种语法错误和异常情况,以确保输入字符串符合 预定义的语法规范。
词法分析程序的语义分析
01
语义分析是词法分析程序的另 一个重要组成部分,它负责对 语法分析树进行语义检查和解 释。
02
语义分析器通常会检查语法分 析树中的各个节点是否符合语 义规则,例如检查变量是否已 声明、函数是否已定义等。
03
语义分析器还会生成一些中间 代码或抽象语法树,以供后续 的代码生成器使用。

计算语言学讲义_词法分析(二)

计算语言学讲义_词法分析(二)

•பைடு நூலகம்N=2 时:二元语法模型
– 相当于一个转移矩阵,给出每一个词后面出现另一 个词的概率
• N=3 时:三元语法模型
– 相当于一个三维转移矩阵,给出每一个词对儿后面 出现另一个词的概率
• 在自然语言处理中, N 元语法模型可以在汉字 层面,也可以在单词层面,还可以在概念层面 ……
计算语言学讲义 (04) 词法分析 ( 二 ) 10
• 估计对于汉语而言四元语法模型效果较好 • 实用系统:智能狂拼,微软拼音
计算语言学讲义 (04) 词法分析 ( 二 ) 17
N 元语法模型的参数估计
• 最大似然估计: 选择参数,使得训练语料出现的概率最大
f w 1. .. w n p w n∣w 1 w 2 ... w n−1 = f w 1. .. w n−1
13
代码识别问题 (1)
• 给出一段汉语文本,需要识别出其是 GB 码还是 BIG5 码
code = arg max P code∣text
code
P text∣code P code = arg max P text code = arg max P text∣code P code
i =1 n
≈ ∏ p ( w i∣w i − N +1 w i − N +2 ... w i −1 )
i =1
• 假设:单词 wi 出现的概率只与其前面的 N-1 个单词有关
计算语言学讲义 (04) 词法分析 ( 二 ) 9
N 元语法模型-举例
• N=1 时:一元语法模型
– 相当于词频表,给出所有词出现的频率
计算语言学讲义 (04) 词法分析 ( 二 ) 6

编译原理的词法分析与语法分析

编译原理的词法分析与语法分析

编译原理的词法分析与语法分析编译原理是计算机科学中的一门重要课程,它研究如何将源代码转换为可执行的机器代码。

在编译过程中,词法分析和语法分析是其中两个基本的阶段。

本文将分别介绍词法分析和语法分析的基本概念、原理以及实现方法。

1. 词法分析词法分析是编译过程中的第一个阶段,主要任务是将输入的源代码分解成一个个的词法单元。

词法单元是指具有独立意义的最小语法单位,比如变量名、关键字、操作符等。

词法分析器通常使用有限自动机(finite automaton)来实现。

在词法分析的过程中,需要定义词法规则,即描述每个词法单元的模式。

常见的词法规则有正则表达式和有限自动机。

词法分析器会根据这些规则匹配输入的字符序列,并生成相应的词法单元。

2. 语法分析语法分析是编译过程中的第二个阶段,它的任务是将词法分析器生成的词法单元序列转换为语法树(syntax tree)或抽象语法树(abstract syntax tree)。

语法树是源代码的一种抽象表示方式,它反映了源代码中语法结构和运算优先级的关系。

语法分析器通常使用上下文无关文法(context-free grammar)来描述源代码的语法结构。

常见的语法分析算法有递归下降分析法、LR分析法和LL分析法等。

递归下降分析法是一种自顶向下的分析方法,它从源代码的起始符号开始,递归地展开产生式,直到匹配到输入的词法单元。

递归下降分析法的实现比较直观,但对于左递归的文法处理不方便。

LR分析法是一种自底向上的分析方法,它使用一个自动机来分析输入的词法单元,并根据文法规则进行规约操作,最终生成语法树。

常见的LR分析法有LR(0)、SLR、LR(1)和LALR等。

LL分析法是一种自顶向下的分析方法,它从源代码的起始符号开始,预测下一个要匹配的词法单元,并进行相应的推导规则。

LL分析法常用于编程语言中,如Java和Python。

3. 词法分析和语法分析的关系词法分析是语法分析的一个子阶段,它为语法分析器提供了一个符号序列,并根据语法规则进行分析和匹配。

编译原理词法分析(1)课件

编译原理词法分析(1)课件

分析阶段
词法分析器
语法分析器
符 号
语义分析器






中间代码生成



代码优化
代码生成
综合阶段
目标程序
0、回顾:词法分析
• 词法分析是编译过程中将字符流转换成为符号流 的一个工作阶段,是编译的第一步工作,其后续 工作是语法分析。
▫ 词法分析的输入是源代码; ▫ 词法分析的输出是符号流; ▫ 词法分析需要识别词法错误,即非法的符号、单词
示例:词法分析的输入和输出
• ffoorr ( i(=1i;=i1<;=1i0<0=1; 0i+0;+)i++) • sumsu=msu=msu+mi;+ i;
• <保留字,for> <分隔符,(> <标识符,i> <算符 ,= > <常量,1> <分隔符,;> <标识符,i> <算符 ,<= > <常量,100> <分隔符,;> <标识符,i> < 算符,++ > <分隔符,)> <标识符,sum> <算 符,= > <标识符,sum> <算符,+ > <标识符,i> < 分隔符,;>
αn 定义为 αα…αα n个α连接 α1 =α, α2 =αα,注:α0 =ε
2.1 串和语言
连接(乘积) 两个符号串集合 A 和 B 的乘积定义为: AB ={ xy | x A 且 y B } 例如:集合A={ab,cde} B={0,1} 则 AB={ ab1,ab0,cde0,cde1 }

编译原理词法分析与语法分析

编译原理词法分析与语法分析

编译原理词法分析与语法分析在计算机科学领域,编译器是一个非常重要的工具,它将高级程序语言转换为能够被计算机处理的低级机器语言。

编译器的设计与开发离不开以下两个主要部分:词法分析和语法分析。

本文将着重介绍编译原理中的词法分析和语法分析的定义、原理、方法以及它们之间的关系。

一、词法分析词法分析是编译器的第一个阶段,负责将源代码转化为一个个“词法单元”,也称为“记号”。

词法单元是计算机程序中的最小语义单位,例如变量名、关键字、操作符等。

词法分析器会从源代码中连续读取字符,并将其组成具有独立意义的词法单元。

词法分析的主要任务是识别代码中的词法单元,并将其分类。

它采用正则表达式来定义词法单元的模式,并通过有限状态自动机(FSM)进行匹配。

以下是词法分析的一般步骤:1. 输入源代码,逐字符读取。

2. 将字符组合成词法单元。

3. 跳过空格、换行符等不相关的字符。

4. 使用正则表达式判断词法单元的类型。

5. 将识别出的词法单元传递给语法分析阶段。

二、语法分析语法分析是编译器的第二个阶段,它将从词法分析器获得的词法单元串转换为语法树。

语法树是一种树状结构,用于表示程序的语法结构。

它通过分析词法单元之间的关系来检查程序是否符合语法规则。

在语法分析过程中,会根据源代码中的语法规则使用上下文无关文法(Context-Free Grammar)进行分析。

常用的语法分析算法有自顶向下分析(Top-Down Parsing)和自底向上分析(Bottom-Up Parsing)。

自顶向下分析是从语法的起始符号开始,逐步展开已识别的符号,直到生成源代码。

这种分析方法常用的算法有LL(k)和递归下降(Recursive Descent)。

自顶向下分析器按照语法规则从上到下预测并展开符号。

自底向上分析是从词法单元串的底部开始,逐步归约已识别的符号,直到生成源代码。

这种分析方法常用的算法有LR(k)和LALR(k)。

自底向上分析器按照语法规则从下往上扫描,并进行归约操作。

编译原理之词法分析

编译原理之词法分析
析提供基础。
词法分析是编译原理中的基础阶段,主要负责 将源代码分解成一个个单独的词素或标记,为 后续的语法分析提供基础。
词法分析器的实现可以采用多种方法,如有限自 动机、正则表达式等,其中有限自动机是最常用 的方法之一。
展望
• 随着计算机科学的发展,编译原理中的词法分析技术也在不断进步。未来,词 法分析器可能会采用更加智能的方法来识别源代码中的元素,如基于机器学习 的识别算法。
识别宏定义
词法分析器可以扩展为识别宏定 义,将宏替换为相应的代码片段, 提高编译效率。
词法分析的优化
减少词法分析时间
通过优化词法分析算法,减少词法分析的时间复杂度,提高编译 器的编译速度。
优化符号表管理
在词法分析阶段,可以优化符号表的管理方式,减少符号表的查 找和更新时间,提高编译效率。
减少错误处理时间
通过优化错误处理机制,减少在词法分析阶段处理错误的时间, 提高编译器的容错能力。
词法分析的并行化处理
并行扫描
将词法分析任务划分为多个子任务,并分配 给多个处理器并行执行,以提高词法分析的 效率。
并行构建符号表
在词法分析阶段,可以并行构建符号表,将多个符 号表的构建任务分配给多个处理器同时处理。
并行错误处理
02
词法分析器的设计和实现
设计词法分析器
确定词法分析器的功能和目标
01
明确词法分析器需要完成的任务,如识别关键字、标识符、常
量、运算符等。
设计词法规则
02
根据编程语言的语法规则,制定相应的词法规则,如正则表达
式等。
确定输入和输出格式
03
定义输入源代码的格式,以及输出识别结果的格式。
实现词法分析器
• 随着人工智能和自然语言处理技术的发展,未来的编译原理可能会更加注重自 然语言处理和代码生成。因此,词法分析器可能会更加注重对自然语言的理解 和处理,以提高代码生成的质量和效率。

词法分析及词法分析程序..课件

词法分析及词法分析程序..课件
• 缓存技术:利用缓存机制存储常用词汇单元的信息,减少重复计算。
性能优化与评估
召回率
实际存在的词汇单元被成功识别的比例。
准确率
识别出的词汇单元与实际词汇单元相匹配的 比例。
F1分数
准确率和召回率的调和平均数,综合评估词 法分析的性能。
CHAPTER 06
词法分析的应用场景与案例
在自然语言处理领域的应用
词法分析及词法分析程 序课件
CONTENTS 目录
• 词法分析概述 • 词法分析的步骤 • 词法分析的算法 • 词法分析工具与资源 • 词法分析程序的设计与实现 • 词法分析的应用场景与案例
CHAPTER 01
词法分析概述
词法分析概述
词法分析是自然语言处理中的一项基 本任务,主要负责对输入的文本进行 分词,即将连续的文本切分成一个个 独立的词或词素。
在机器翻译领域的应用
词对齐
在机器翻译中,通过词法分析将源语言和目标语言中的词汇进行对齐。
翻译质量评估
对机器翻译结果进行词法分析,评估翻译质量。
在智能问答系统中的应用
问题理解
通过词法分析理解用户问题的意图和关 键信息。
VS
答案生成
基于问题中的关键词,通过词法分析生成 相关答案。
THANKS
[ 感谢观看 ]
01
需求分析
首先明确需求,如需要处理的数据 量、处理速度、精度要求等。
资源质量
评估公开资源的数量和质量,确保 能够满足需求。
03
02
工具性能
比较不同工具的性能,包括分词精 度、处理速度、可扩展性等。
易用性
考虑工具的易用性和文档支持,降 低使用门槛。
04
CHAPTER 05

词法分析知识点总结

词法分析知识点总结

词法分析知识点总结一、词法分析的基本概念1. 词法分析的定义词法分析是自然语言处理和计算机语言处理中的一个重要领域,它涉及到研究自然语言的词法结构、词法规则、单词辨识和语言模式匹配等内容。

通过词法分析,我们可以更好地理解和解释文本中的语言现象,处理和管理大量的文本数据,并且可以进行文本分类、关键词提取、信息检索和语言模式匹配等各种应用。

2. 词法分析的基本任务词法分析的基本任务包括:单词辨识、分词和断句。

单词辨识是指根据相应的词法规则将文本中的单词和标点符号识别出来;分词是指将文本按照相应的语言规则进行分割,形成一个个有意义的词单元;断句是指将文本按照相应的语言规则进行分割,形成一个个有意义的句子。

3. 词法分析的基本方法词法分析的基本方法包括:基于规则的词法分析和基于统计的词法分析。

基于规则的词法分析是指根据语言的词法规则和语法规则,通过对文本进行分析和处理,得到相应的词法信息;基于统计的词法分析是指根据大量的语料库数据,通过统计分析和机器学习等技术,得到文本中的词法信息。

4. 词法分析的基本原理词法分析的基本原理包括:正则表达式、自动机理论和语言模型。

正则表达式是一种描述文本模式的表达式,通过对文本进行匹配和识别,得到相应的词法信息;自动机理论是一种描述文本结构的理论,通过对文本进行分析和处理,得到相应的词法信息;语言模型是一种描述文本语言现象的模型,通过对文本进行建模和分析,得到相应的词法信息。

二、词法分析的相关知识点1. 词法规则的设计词法规则是词法分析的基础,它包括:单词的形态、语义和用法规则。

单词的形态规则是指单词的结构、词根、词缀、词性和语法等规则;单词的语义规则是指单词的含义、词义和搭配等规则;单词的用法规则是指单词的用法、谓词、主语、宾语和修饰等规则。

2. 分词和断句的处理方法分词和断句是词法分析的基本任务,它包括:正向最大匹配、逆向最大匹配、最短路径匹配和动态规划匹配。

正向最大匹配是指从文本的左边开始匹配,匹配长度最大的词;逆向最大匹配是指从文本的右边开始匹配,匹配长度最大的词;最短路径匹配是指通过路径规划算法,得到最短路径匹配结果;动态规划匹配是指根据文本的属性和上下文,得到最佳的匹配结果。

编译原理基础:词法分析与语法分析

编译原理基础:词法分析与语法分析

编译原理基础:词法分析与语法分析一、引言- 编译器是一种将高级语言翻译成机器语言的重要工具,是计算机科学中的核心概念之一。

编译器的基本工作分为两个阶段:词法分析和语法分析。

本文将详细介绍和分析这两个步骤的内容和流程。

二、词法分析1. 定义- 词法分析是编译器的第一个阶段,也是最基本的阶段。

它负责对源代码进行词法单位的划分,生成词法单元流。

每个词法单元包括一个标识符和一个属性值。

2. 步骤- 读入源代码:编译器首先从源代码文件中读入整个代码内容。

- 去除空格和注释:通过正则表达式或其他方法,编译器去除源代码中的空格和注释,以便更好地处理剩余的代码。

- 划分词法单元:编译器根据一定的规则将代码划分为不同的词法单元,如关键字、标识符、运算符、常量等。

- 构建符号表:编译器将关键字和标识符添加到符号表中,以便后续的语法分析和语义分析过程中使用。

三、语法分析1. 定义- 语法分析是编译器的第二个阶段,它将词法分析生成的词法单元流作为输入,根据语法规则生成语法树或抽象语法树。

2. 步骤- 定义语法规则:编译器根据语言的语法规范定义语法规则,通常使用上下文无关文法(Context-Free Grammar)来描述。

- 构建语法分析器:编译器使用递归下降法或者LR分析法等算法来实现语法分析器。

递归下降法通过递归地调用子过程来实现语法分析,而LR分析法则通过建立一个有限状态机来分析源代码。

- 生成语法树或抽象语法树:编译器根据语法规则和输入的词法单元流,生成对应的语法树或抽象语法树。

语法树表示源代码的语法结构,抽象语法树还会剔除掉不必要的细节。

- 错误处理:在生成语法树或抽象语法树的过程中,编译器会检测到一些语法错误。

此时,编译器会输出错误信息,并尽可能恢复到正常的语法分析流程。

四、词法分析与语法分析的关系- 词法分析和语法分析是紧密关联的两个阶段。

词法分析阶段提供给语法分析阶段的词法单元流作为输入,语法分析阶段通过分析词法单元的序列来理解源代码的语法结构。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算语言学讲义 (04) 词法分析 I
7
序列结构化
• 输入:一个符号序列 • 输出:一个结构,刻划符号之间的关系 • 常见具体问题:
– 成分句法分析:词语序列 → 短语结构树 – 依存句法分析:词语序列 → 依存树 – 语义分析:词语序列 → 语义网络
计算语言学讲义 (04) 词法分析 I
8
问题与方法
32
汉语双字动词的重叠形式
动词 (AB) 研究 讨论 哆嗦 唠叨 嘀咕 唠叨唠叨 ABAB 式 研究研究 讨论讨论 哆哆嗦嗦 唠唠叨叨 嘀嘀咕咕 AABB 式
计算语言学讲义 (04) 词法分析 I
33
汉语单字动词的重叠形式
动词( V ) 听 想 玩 醒 试 笑 讲 VV 式 听听 想想 玩玩 醒醒 试试 笑笑 讲讲 V一V式 听一听 想一想 玩一玩 醒一醒 试一试 笑一笑 讲一讲 试了试 笑了笑 讲了讲 试了一试 笑了一笑 讲了一讲 V 了 V 式 V 了一 V 式 听了听 想了想 玩了玩 听了一听 想了一想 玩了一玩
计算语言学
第3讲 词法分析(一) 刘群
中国科学院计算技术研究所 liuqun@ 中国科学院研究生院 2011 年春季课程讲义
内容提要
计算语言学讲义 (04) 词法分析 I
2
内容提要
计算语言学讲义 (04) 词法分析 I
3
问题与方法
• 计算语言学主要问题:
– 机器翻译 – 自动问答 – 音字转换 – 自动文摘 – 信息抽取 – ……
计算语言学讲义 (04) 词法分析 I
汉语单字形容词的重叠形式
形容词( A ) 黑 白 红 亮 恶 香 滑 香香 滑滑 AA 式 黑黑 白白 红红 亮亮 ABB 式 黑压压 白花花 红彤彤 亮晶晶 恶狠狠 香喷喷 滑溜溜 ABCD 式 黑不溜秋 白不呲咧
计算语言学讲义 (04) 词法分析 I
计算语言学讲义 (04) 词法分析 I 14
语言的分类
传统语言学根据词的形态把语言分为四大类: • 分析语:每个词只有一个词素
– 孤立语(词根语):词基本上没有专门表示语法意义的附加成 分,形态变化很少,语法关系靠词序和虚词来表示。如汉语。
• 综合语:每个词有多个词素
– 黏着语:词内有专门表示语法意义的附加成分,一个附加成分 表达一种语法意义,一种语法意义也基本上由一个附加成分来 表达,词根或词干跟附加成分的结合不紧密。如芬兰语、日语 、蒙古语等。 – 屈折语:用词的形态变化表示语法关系,一个形态成分可以表 示若干种不同的语法意义,词根或词干跟词的附加成分结合得 很紧密,往往不易截然分开。如:英语、德语和法语等。 – 多式综合语(编插语):最复杂的综合语,一个词语通常非常 长,由很多词素组成。
Tokenization
• 数字: 123,456.78 90.7% 3/8 11/20/2000 • 缩略(包含不同的情况):
– 字母-点号-字母-点号组成的序列,比如: U.S. i.e. 等等; – 字母开头,最后以点号结束,比如: A. b. Mr. eds.prof. ;
• 包含非字母字符,比如: AT&T Micro$oft • 带杠的词串,比如: three-year-old , one-third , socalled • 带瞥号的词串,比如: I'm can't dog's let's • 带空格的词串,比如: "and so on" , "ad hoc" • 其他:如网址( )、公式等
– 文本校对 – 汉语词语切分、音字转换等很多问题都可以 转化成序列评估问题
计算语言学讲义 (04) 词法分析 I 6
序列标注问题
• 输入:一个符号序列 • 输出:给每一个输入符号赋予一个标记 • 常见具体问题:
– 音字转换:拼音序列 → 汉字序列 – 词性标注:词语序列 → 词性序列 – 词义排歧:词语序列 → 词义标记序列
计算语言学讲义 (04) 词法分析 I 23
Stemming 规则示例 (1)
• 名词复数
*s *, (PLUR) *es *, (PLUR) *ies *y, (PLUR)
• 动词第三人称单数
*s * (SINGULAR) (THIRDPERSON) (PRESENT) *es * (SINGULAR) (THIRDPERSON) (PRESENT) *ies *y (SINGULAR) (THIRDPERSON) (PRESENT)
计算语言学讲义 (04) 词法分析 I
24
Stemming 规则示例 (2)
• 动词现在分词
–*ing * –*ing *e –*ying *ie –*??ing *? (VING) (VING) (VING) (VING)
• 动词过去分词、过去式
–*ed * (PAST,VEN) –*ed *e (PAST,VEN) –*ied *y (PAST,VEN) –*??ed *? (PAST,VEN)
计算语言学讲义 (04) 词法分析 I 18
Tokenization 问题
• 例外较多,跟文本来源有关 • 歧义现象(如点号的句子边界歧义)
计算语言学讲义 (04) 词法分析 I
19
数字的识别
数词的识别一般可以用有限状态自动机来实现 • 识别分数的正则表达式:
– [0-9]+ / [0-9]+ – e.g. 12/21
• 汉语词能否重叠具有很强的个性特点
计算语言学讲义 (04) 词法分析 I 28
内容提要
计算语言学讲义 (04) 词法分析 I
29
汉语词法分析所面临的问题
• 汉语词形变化:
– 重叠词、离合词、词缀 – 缩合词、四字格
• 汉语词语的切分歧义 • 汉语未定义词 • 词性标注
计算语言学讲义 (04) 词法分析ห้องสมุดไป่ตู้I
30
汉语双字形容词的重叠形式
Stemming 常见的问题
• 半规则变化
– flied fly + ~ed – rebelled rebel + ~ed
• 不规则变化
– good, better, best – child, children
• 歧义现象
– better good + ~er or well + ~er ? – works work + ~s or works ?
形容词 (AB) 高兴 明白 热闹 潇洒 糊涂 流气 粘乎 凉快 ABAB 式 高兴高兴 明白明白 热闹热闹 潇洒潇洒 粘乎粘乎 凉快凉快 AABB 式 高高兴兴 明明白白 热热闹闹 潇潇洒洒 糊糊涂涂 粘粘乎乎 凉凉快快 A 里 AB 式 糊里糊涂 流里流气
31
计算语言学讲义 (04) 词法分析 I
34
汉语其他词类的重叠形式
• 名词
– 哥哥,人人 – 山山水水,是是非非,方方面面,头头脑脑
• 数词
– 一一做了回答,两两结伴而来
• 量词
– 个个都是好样的,回回考满分
• 副词
– 常常,仅仅,的的确确
计算语言学讲义 (04) 词法分析 I 35
汉语重叠词的特点
• 计算语言学常用方法:
– 规则方法
• 形式语法理论 • 形式逻辑 • ……
– 统计方法
• • • • n 元语法模型 隐马尔科夫模型 最大熵模型 ……
计算语言学讲义 (04) 词法分析 I 9
本课程的组织
• 按问题组织
– 词法分析 – 句法分析 – 语义篇章分析 – 机器翻译 – ……
计算语言学讲义 (04) 词法分析 I
计算语言学讲义 (04) 词法分析 I 25
Stemming 算法
• 输入:一个单词 • 输出:一个或多个单词,其中每个单词 还原为原形加前后缀(可以有多个) • 算法:(略)
计算语言学讲义 (04) 词法分析 I
26
基于有限状态自动机的 Stemming
• 有限状态自动机是 Stemming 中的常用 算法 • 有限状态自动机的优点是表现形式直观 ,效率高
• 识别百分数的正则表达式:
– ([+ | -]) ? [0-9]+ ( . [0-9]* ) ? % – e.g. -5.9% 91%
• 识别十进制数字的正则表达式:
– ( [0-9]+( , )? )+ ( . [0-9]+ )? – e.g. 12,345
计算语言学讲义 (04) 词法分析 I
计算语言学讲义 (04) 词法分析 I 13
语言的形态
• 形态:又叫词形变化,同一个词在造句时,因 其句法位置的差异而发生的不同变化,是表达 语法意义的重要手段。这些不同的变化形成一 个聚合。包括词尾,内部曲折,异根等方面。 • 语法范畴:词的变化形式所表示的意义方面的 聚合。常见的语法范畴有:性、数、格、体、 时态、人称、级等。 • 形态跟语法范畴有对应关系,但不是一回事。
takes take + ~s took take + ~ed
– 对派生进行还原。
tokenization token + ~ize + ~tion
• Stemming 也称为 Lemmatization 。 • POS-Tagging: 词性标注
计算语言学讲义 (04) 词法分析 I 17
计算语言学讲义 (04) 词法分析 I
27
Stemming 要做到何种程度
• 词干层。如: impossibilitiesimpossibility+ies • 词根层。如: impossibilitiesim+poss+ibil+it+ies • 分析程度取决于自然语言处理系统的 深度:
相关文档
最新文档