自然语言中的短语和语法结构


“人工智能”(AI)是计算机科学的一个分支,试图赋予计算机理解口语和书面文字的能力,类似于人类,这是一个“自然语言处理”(NLP)的领域。

计算语言学结合了多种技术,包括深度学习、机器学习和统计学。结合这些技术使计算机能够完全“理解”文本和语音的含义,包括说话者或作者的意图和情感,并能够将人类语言解释为文本和音频数据。

为什么在NLP中使用语法结构很重要?

交流是通过来自共同符号系统的信息信号来共享信息的行为。交流帮助个人在一个并非所有事物都可见的世界中取得成功,因为它允许他们从他人的观察和推论中获得知识。由于人类比任何其他物种都更频繁地进行交流,因此计算机代理将需要学习语言才能有效运作。为了完全理解对话,需要比基本的垃圾邮件分类技术更高级的模型。这些模型涉及分析句子的语法结构,加入单词背后的含义,然后将其应用于翻译文本或识别语音等任务。

N-gram 模型就是这样一种模型,它用于许多自然语言处理应用程序中,包括语音识别、机器翻译和预测文本输入模型。N-gram 模型预测最有可能出现在 N-1 个单词序列之后的单词。它是一个概率模型,已经在文本语料库上进行了实践。

为了构建 N-gram 模型,我们计算单词序列在文本中出现的频率,并估计概率。然而,这些模型存在局限性,因此我们可以通过使用平滑、插值和回退等技术来改进。我们可以通过观察“红色汽车”比“汽车红色”和其他类似例子更常见来推断,在英语中,形容词通常出现在名词之前。虽然此规则存在例外,例如“主菜”中的形容词“主”,但了解词性是一种有用的概括。当我们将不同的词性组合成名词短语或动词短语等短语,然后将这些短语组合成以树为代表的句子结构时,这种理解就变得更有用,嵌套的短语由其各自的类别标记。

语法形式的类型

仅仅基于重写规则,乔姆斯基 (1957) 区分了四类语法形式。每个类别都可以描述较低能力类别可以描述的所有语言,以及一些额外的语言,并且这些类别可以按层次排列。语法形式可以根据它们生成或可以表示的语言数量进行分类。以下是乔姆斯基提出的四种分类:

  • 递归可枚举文法

  • 上下文无关文法

  • 正则文法

  • 上下文有关文法

递归可枚举文法

递归可枚举文法中没有语法规则。与规则 AB -> CD 一样,重写文法的左右两侧都允许包含任意数量的终结符和非终结符。这些文法的表达能力与图灵机相当。

示例

这是一个递归可枚举文法的示例:

S → aSb | ε

在这个文法中,S 作为起始符号,而“a”和“b”代表终结符,空字符串分别用ε表示。这个文法产生所有以零个或多个“a”符号开头,并且具有相同数量的“b”符号的字符串。例如,此语言产生诸如“ab”、“aabb”、“aaabbb”等字符串。

需要注意的是,由于此文法是递归可枚举的,因此没有算法能够在有限的时间内检测给定字符串是否属于此文法产生的语言。这是因为该文法支持无限递归,这使得“S”可以在非终结符“S”再次出现在右侧之前被替换为“aSb”。结果,这个文法产生无限数量的字符串。

上下文无关文法

上下文无关文法 (CFG) 是一种形式文法,它根据其组成元素(称为符号或非终结符)以及指定如何连接这些符号以构成可接受的句子或短语的规则来指定语言的结构。上下文无关文法 (CFG) 在左侧只有一个非终结符。每个规则允许在任何情况下将右侧重写为非终结符。CFG 广泛用于自然语言和编程语言的文法,尽管现在人们普遍认识到至少某些自然语言包含并非上下文无关的结构(Pullum,1991)。上下文无关文法可以表示 a 和 b,但不能表示 a 和 bn c。

示例

这是一个生成简单的算术表达式语言的上下文无关文法的示例:

S → A
A → A + M | M
M → M * K | K
K → A | num

在这个文法中,非终结符 A、M 和 K 分别代表表达式、项和因子。终结符 +、* 和 () 分别代表算术运算符和括号,而符号 num 表示数值。根据产生式规则,可以将这些符号连接起来以创建有效的表达式。例如,规则 M -> M * K 允许通过使用 * 运算符将较小的项与因子组合来生成项。规则 A -> A + M 允许通过使用 + 运算符将两个较小的表达式组合来形成表达式。

我们可以使用这种语言创建诸如“2 + 3 * 4”、“(5 + 6) * 7”和“8”之类的表达式。

正则文法

产生正则语言的形式文法称为正则文法。“正则语言”是指任何可以用正则表达式表示的语言,或者可以使用确定性或非确定性有限自动机表示的语言。每个规则的左侧只有一个非终结符,右侧有一个终结符,后面可能有一个非终结符。正则文法与有限状态机等效。它们不适合编程语言(aan bn 语言的子集),因为它们无法表达诸如平衡的开括号和闭括号之类的特性。最接近的是表达 a*b*,这是一系列任意数量的 a 后跟任意数量的 b。

示例

这是一个例子:

S -> 0K | 1M | ε
K -> 0K | 1K | ε
M -> 0M | 1M | ε

在这个文法中,起始符号是 S,空字符串用ε表示。该文法产生由 0 和 1 组成的字符串,以及可选的最终符号。例如,它可以产生空字符串、字符串“0110”、“101”和“0010”。产生式规则允许重复 0 或 1,也可以选择完全排除它们。可以使用具有三个状态的有限自动机(每个非终结符一个)来描述此文法。

上下文有关文法

上下文有关文法是一种形式文法,其产生式规则具有 A -> αBβ 的形式,其中 A 是非终结符,α 和 β 是任意符号串(终结符和非终结符),且 β 是一个非空的符号串。条件是β的字符串长度必须至少与α的字符串长度一样长。这意味着非终结符 A 只能在由字符串 α 和 β 指定的确切上下文中被替换为 β。

示例

这是一个上下文有关文法规则的示例:

SAB → SBB

根据此规则,非终结符 S 只有在它紧跟在字母“A”和“B”之后时才能被替换为 SBB。可以使用此规则将字符串“SABB”更改为“SBBBB”;但是,“SABAB”不能更改,因为“A”和“B”没有出现在上下文中。

直到 20 世纪 80 年代,语言学家才专注于上下文无关语言和上下文有关语言。由于需要快速吸收和学习千兆字节或太字节的互联网文本,即使这意味着更不深入的检查,近年来人们对正则文法的兴趣也再次兴起。

结论

已经建立了一个基本的英语文法,用于与 Wumpus 世界代理进行通信。它将被增强以更像真实的英语,并被称为 E0。但是,没有完美的英语文法,因为不同的人对什么是正确的英语有不同的看法。

更新于:2023年8月7日

浏览量 1K+

启动您的职业生涯

完成课程获得认证

开始学习
广告