《自然语言处理综论》学习笔记

ZhuYuanxiang 2019-06-06 00:00:00
Categories: Tags:

Ch02 正则表达式 与 自动机

正则表达式(regular expression, RE):描述文本序列的标准记录方式。在文本检索和信息抽取的各种类型的应用中,都使用正则表达式来描述文本中的符号串。

有限状态自动机(finite state automaton):不仅是一种用来实现正则表达式的数学工具,也是计算机语言学中最为有用的工具。

正则表达式

正则表达式是一种用于描述文本搜索符号串的语言。是专用语言中用于描述符号串()的简单类别的一个公式。

从形式上讲,正则表达式是用来刻画符号串集合的一个代数表述。

正则表达式的搜索需要提供的数据:搜索的模式(pattern)和被搜索的文本语料库(corpus)。

基本的正则表达式模式

正则表达式是由简单字符构成的一个序列,表达式是区分大小写的。

方括号[]内部的字符符号串表示字符是析取(disjunction)的。

正则表达式的基本算符

析取符(pipe symbol)|:析取算符(disjunction operator)。

圆括号():表示优先关系。把一个模式括在圆括号中使得它就像一个单独的字符来使用,而且在其中可以使用析取符和 Kleene * 等算符。例如,表达式「gupp(y|ies)」表示析取符仅应用于后缀 y 和 ies。

算符优先层级(operator precedence hierarchy):圆括号>计数符>序列与锚>析取符

贪心模式:正则表达式尽可能与最长的符号串匹配。

正则表达式的简单例子和复杂例子

错误类型:

处理目标:(两个目标是矛盾的)

正则表达式的高级算符

高级算符可以用简单算符来表达,高级算符可以简化表达式的内容,更加方便阅读和理解。

正则表达式的实际操作

替换(substitution)是正则表达式的用途之一。用正则表达式描述的符号串替换另一个用正则表达式描述的字符串。

在第一个模式的两侧加上圆括号,在第二个模式中使用数字算符(number operator)\1就可以回过头去参照第一个模式,从而实现替换。

数字算符使用数字存储器保存前面的模式,这些数字存储器称为寄存器(registers)。

有限状态自动机(FSA)

正则表达式

FSA的表示方式

自动机(automaton),也叫有限自动机,或者叫有限状态自动机,能够识别由符号串构成的集合。

自动机的表示方法:

自动机需要5个参数实现形式化定义:

D-RECOGNIZE 算法:确定性的识别器。确定性算法是一种没有选择点的算法,对于任何的输入,算法总是知道怎样工作。

FSA 中的形式语言

形式语言(formal language):是一个模型,这个模型能够而且只能够用来生成或者识别满足形式语言定义所要求的某一种形式语言的符号串。

形式语言是符号串的集合,而每一个符号串是由字母表(alphabet)中的有限的符号的集合组合而成。基于形式语言定义的自动机可以在封闭的形式中表示无限的集合。

生成语法(generative grammar):表示形式语言的语法,即自动机定义的能够生成一切可能的符号串的语言。

非确定的 FSA(NFSA)

非确定的有限自动机(Non-deterministic FSA,NFSA),一种是带有两难的判定点的自动机,另一种存在概率转移(ε-转移,ε-transition)的有概率的有限自动机(Probabilistic FSA,PFSA),。

相对应的自动机也可以称之为确定的有限自动机(Deterministic FSA,DFSA),当确定的自动机在识别的时候,当它处于某一个状态以及要查找某一个符号时,它的行为是完全确定的。

NFSA 接收符号串

三种非确定问题的解决方案(solution to the problem of non-determinism):

FSA 识别就是搜索

状态空间搜索(state-space search)算法:系统地探索自动机中所有可能的路径,从而正确地识别正则语言中的符号串。如果探索找到了一条路径以接收状态结束,那么自动机就接收该符号串,否则就拒绝这个符号串。搜索状态包括由机器状态和输入带子上的位置组成的偶对(pairing)。状态空间由给定自动机中一切可能的机器状态和带子位置的偶对所组成。搜索的目标就是从一个状态到另一个状态的探索这个空间,查找出由接收状态和带子位置的终点所组成的偶对。

DFSA与NFSA之间的关系

使用算法可以把 NFSA 转换为等价的 DFSA,因此 NFSA 与 DFSA 是完全等价的。

正则语言与有限状态自动机

正则语言的两个概念:

在 $\Sigma$ 上的正则语言的类(或者正则集)的形式化定义:

正则语言的运算:

正则表达式与自动机的等价转换,即正则表达式的每个基本操作都可以通过自动机模拟。

小结

本章重点:有限自动机(finite automaton)和正则表达式(regular expression)。