NLP - 词级分析


在本章中,我们将了解自然语言处理中的世界级分析。

常用表达

正则表达式 (RE) 是一种用于指定文本搜索字符串的语言。RE 帮助我们使用模式中保存的专门语法来匹配或查找其他字符串或字符串集。正则表达式用于以相同的方式在 UNIX 和 MS WORD 中搜索文本。我们有各种使用许多 RE 功能的搜索引擎。

正则表达式的属性

以下是 RE 的一些重要属性 -

  • 美国数学家 Stephen Cole Kleene 形式化了正则表达式语言。

  • RE是一种特殊语言的公式,可用于指定简单的字符串类、符号序列。换句话说,我们可以说 RE 是一种用于表征一组字符串的代数符号。

  • 正则表达式需要两件事,一是我们希望搜索的模式,二是我们需要搜索的文本语料库。

从数学上讲,正则表达式可以定义如下 -

  • ε是正则表达式,表示该语言有空字符串。

  • φ是一个正则表达式,表示它是一种空语言。

  • 如果XY是正则表达式,则

    • X、Y

    • XY(XY 的串联)

    • X+Y(X 和 Y 的并集)

    • X*, Y*(X 和 Y 的克莱恩闭包)

也是正则表达式。

  • 如果一个字符串是从上述规则派生出来的,那么它也将是一个正则表达式。

正则表达式示例

下表显示了正则表达式的一些示例 -

常用表达 常规套装
(0 + 10*) {0, 1, 10, 100, 1000, 10000, … }
(0*10*) {1, 01, 10, 010, 0010, …}
(0 + ε)(1 + ε) {ε, 0, 1, 01}
(a+b)* 它将是任意长度的 a 和 b 字符串的集合,其中还包括空字符串,即 {ε, a, b, aa , ab , bb , ba, aaa ….}
(a+b)*abb 它将是以字符串 abb 结尾的 a 和 b 字符串的集合,即 {abb, aabb, babb, aaabb, abbabb, …………..}
(11)* 它将被设置为由偶数个 1 组成,其中还包括一个空字符串,即 {ε, 11, 1111, 111111, ……….}
(aa)*(bb)*b 它将是由偶数个 a 和奇数个 b 组成的字符串,即 {b, aab, aabbb, aabbbbb, aaaab, aaaabbb, …………..}
(aa + ab + ba + bb)* 它将是偶数长度的 a 和 b 的字符串,可以通过连接字符串 aa、ab、ba 和 bb 的任意组合(包括 null,即 {aa、ab、ba、bb、aaab、aaba、…………)来获得。 .}

正则集及其性质

它可以被定义为表示正则表达式的值并由特定属性组成的集合。

正则集的性质

  • 如果我们对两个正则集进行并集,那么结果集也将是正则集。

  • 如果我们对两个正则集进行交集,那么结果集也将是正则集。

  • 如果我们对正则集求补,那么结果集也将是正则集。

  • 如果我们对两个正则集进行差分,那么结果集也将是正则集。

  • 如果我们对正则集进行反转,那么结果集也将是正则集。

  • 如果我们采用正则集的闭包,那么结果集也将是正则集。

  • 如果我们将两个正则集连接起来,那么结果集也将是正则集。

有限状态自动机

自动机一词源自希腊语“αὐτόματα”,意思是“自作用”,是自动机的复数形式,可以定义为自动遵循预定操作序列的抽象自推进计算设备。

具有有限状态数的自动机称为有限自动机(FA)或有限状态自动机(FSA)。

在数学上,自动机可以用 5 元组 (Q, Σ, δ, q0, F) 表示,其中 -

  • Q 是有限状态集。

  • Σ 是有限符号集,称为自动机字母表。

  • δ 是过渡函数

  • q0 是处理任何输入的初始状态 (q0 ∈ Q)。

  • F 是 Q 的最终状态的集合 (F ⊆ Q)。

有限自动机、正则语法和正则表达式之间的关系

以下几点将使我们清楚地了解有限自动机、正则语法和正则表达式之间的关系 -

  • 众所周知,有限状态自动机是计算工作的理论基础,正则表达式是描述它们的一种方式。

  • 我们可以说任何正则表达式都可以实现为 FSA,并且任何 FSA 都可以用正则表达式来描述。

  • 另一方面,正则表达式是一种表征一种称为正则语言的语言的方式。因此,我们可以说正则语言可以借助 FSA 和正则表达式来描述。

  • 正则语法,一种可以是右正则或左正则的形式语法,是表征正则语言的另一种方式。

下图显示有限自动机、正则表达式和正则语法是描述正则语言的等效方式。

常规语法

有限状态自动化 (FSA) 的类型

有限状态自动化有两种类型。让我们看看都有哪些类型。

确定性有限自动化 (DFA)

它可以被定义为有限自动化的类型,其中对于每个输入符号,我们可以确定机器将移动到的状态。它具有有限数量的状态,这就是该机器被称为确定性有限自动机(DFA)的原因。

从数学上讲,DFA 可以用 5 元组 (Q, Σ, δ, q0, F) 表示,其中 -

  • Q 是有限状态集。

  • Σ 是有限符号集,称为自动机字母表。

  • δ 是过渡函数,其中 δ: Q × Σ → Q 。

  • q0 是处理任何输入的初始状态 (q0 ∈ Q)。

  • F 是 Q 的最终状态的集合 (F ⊆ Q)。

而在图形上,DFA 可以用称为状态图的图来表示,其中 -

  • 状态由顶点表示。

  • 过渡由标记的弧线显示。

  • 初始状态由空的传入弧表示。

  • 最终状态由双圆圈表示。

DFA 示例

假设 DFA 是

  • Q = {a, b, c},

  • Σ = {0, 1},

  • q 0 = {a},

  • F = {c},

  • 转换函数 δ 如下表所示 -

当前状态 输入 0 的下一个状态 输入 1 的下一个状态
A A
A
C C C

该 DFA 的图形表示如下 -

图示

非确定性有限自动化 (NDFA)

它可以被定义为有限自动化的类型,其中对于每个输入符号,我们无法确定机器将移动到的状态,即机器可以移动到状态的任何组合。它具有有限数量的状态,这就是该机器被称为非确定性有限自动化(NDFA)的原因。

在数学上,NDFA 可以用 5 元组 (Q, Σ, δ, q0, F) 表示,其中 -

  • Q 是有限状态集。

  • Σ 是有限符号集,称为自动机字母表。

  • δ :- 是过渡函数,其中 δ: Q × Σ → 2 Q

  • q0 :-是处理任何输入的初始状态 (q0 ∈ Q)。

  • F :-是 Q 的最终状态的集合 (F ⊆ Q)。

而在图形上(与 DFA 相同),NDFA 可以用称为状态图的图来表示,其中 -

  • 状态由顶点表示。

  • 过渡由标记的弧线显示。

  • 初始状态由空的传入弧表示。

  • 最终状态由双圆圈表示。

NDFA 示例

假设 NDFA 是

  • Q = {a, b, c},

  • Σ = {0, 1},

  • q 0 = {a},

  • F = {c},

  • 转换函数 δ 如下表所示 -

当前状态 输入 0 的下一个状态 输入 1 的下一个状态
A 甲、乙
C 一、三
C 乙、丙 C

该 NDFA 的图形表示如下 -

图形表示

形态解析

术语形态解析与语素的解析有关。我们可以将形态解析定义为识别一个单词分解为更小的有意义的单元(称为语素)并为其产生某种语言结构的问题。例如,我们可以将“ foses”这个词分成两个,“fox ”和“-es”我们可以看到, foxes这个词是由两个语素组成的,一个是Fox,另一个是-es

从其他意义上说,我们可以说形态学是对以下内容的研究:

  • 词语的形成。

  • 词的由来。

  • 单词的语法形式。

  • 在单词的构成中使用前缀和后缀。

  • 语言的词性 (PoS) 是如何形成的。

语素的类型

语素,最小的意义承载单位,可以分为两种类型 -

  • 词序

它是单词的核心有意义单位。我们也可以说它是这个词的词根。例如,在“foxes”这个词中,词干是“fox”。

  • 词缀- 顾名思义,它们为单词添加一些额外的含义和语法功能。例如,在单词“foxes”中,词缀是 - es。

此外,词缀还可以分为以下四种类型 -

    • 前缀- 顾名思义,前缀位于词干之前。例如,在单词 unbuckle 中,un 是前缀。

    • 后缀- 顾名思义,后缀跟在词干后面。例如,在“cats”一词中,-s 是后缀。

    • 中缀- 顾名思义,中缀插入到茎内。例如,单词 cupful 可以通过使用 -s 作为中缀来复数为 cupsful。

    • Circumfixes - 它们位于茎之前和之后。英语中有关抑扬符的例子非常少。一个非常常见的例子是“A-ing”,我们可以在前面使用 -A,而在词干后面使用 -ing。

词序

单词的顺序将由形态分析决定。现在让我们看看构建形态解析器的要求 -

词典

构建形态解析器的第一个要求是词典,其中包括词干和词缀的列表以及它们的基本信息。例如,词干是名词词干还是动词词干等信息。

形态学

它基本上是语素排序的模型。换句话说,该模型解释了单词中哪些类别的语素可以遵循其他类别的语素。例如,形态事实是英语复数语素总是在名词之后而不是在名词之前。

拼字法规则

这些拼写规则用于对单词中发生的变化进行建模。例如,单词中y转换为ie的规则,如city+s=城市而不是城市。