自然语言处理 - 快速指南
自然语言处理 - 简介
语言是一种交流方式,借助它我们可以说、读和写。例如,我们用自然语言思考、制定决策、计划等;确切地说,用言语来说。然而,在这个人工智能时代,我们面临的一个大问题是我们能否以类似的方式与计算机进行交流。换句话说,人类可以用自然语言与计算机进行交流吗?开发 NLP 应用程序对我们来说是一个挑战,因为计算机需要结构化数据,但人类语音是非结构化的,并且本质上常常是模糊的。
从这个意义上说,我们可以说自然语言处理(NLP)是计算机科学尤其是人工智能(AI)的子领域,它关注的是使计算机能够理解和处理人类语言。从技术上讲,NLP的主要任务是对计算机进行编程来分析和处理大量自然语言数据。
自然语言处理的历史
我们将NLP的历史分为四个阶段。这些阶段有独特的关注点和风格。
第一阶段(机器翻译阶段)- 20 世纪 40 年代末至 1960 年代末
这一阶段完成的工作主要集中在机器翻译(MT)方面。这个阶段是一个充满热情和乐观的时期。
现在让我们看看第一阶段的所有内容 -
在 Booth & Richens 的调查以及 1949 年 Weaver 的机器翻译备忘录之后,NLP 的研究开始于 20 世纪 50 年代初。
1954 年,Georgetown-IBM 实验展示了从俄语到英语的自动翻译的有限实验。
同年,MT(机器翻译)杂志创刊。
第一届机器翻译(MT)国际会议于1952年召开,第二届于1956年召开。
1961 年,特丁顿国际语言机器翻译和应用语言分析会议上提出的工作是这一阶段的高潮。
第二阶段(人工智能影响阶段)——20 世纪 60 年代末至 1970 年代末
在这个阶段,所做的工作主要与世界知识及其在意义表征的构建和操纵中的作用有关。因此,这个阶段也被称为AI风味阶段。
该阶段包含以下内容 -
1961 年初,工作开始于解决和构建数据或知识库的问题。这项工作受到了人工智能的影响。
同年还开发了BASEBALL问答系统。该系统的输入受到限制,并且涉及的语言处理很简单。
Minsky (1968) 描述了一个非常先进的系统。与棒球问答系统相比,该系统被认可并提供了在解释和响应语言输入时对知识库进行推理的需要。
第三阶段(语法逻辑阶段)——20世纪70年代末至80年代末
这个阶段可以被描述为语法逻辑阶段。由于上一阶段实际系统构建的失败,研究人员转向使用逻辑在人工智能中进行知识表示和推理。
第三阶段有以下内容 -
接近十年末的语法逻辑方法帮助我们开发了强大的通用句子处理器,例如 SRI 的核心语言引擎和话语表示理论,它提供了一种处理更扩展话语的方法。
在这个阶段,我们获得了一些实用的资源和工具,例如解析器,例如 Alvey 自然语言工具,以及更多的操作和商业系统,例如用于数据库查询的系统。
20世纪80年代的词汇工作也指向了语法逻辑方法的方向。
第四阶段(词汇和语料库阶段)——20 世纪 90 年代
我们可以将其描述为词汇和语料库阶段。这一阶段出现了 20 世纪 80 年代末出现的词汇化语法方法,影响力越来越大。随着用于语言处理的机器学习算法的引入,自然语言处理在这十年中发生了一场革命。
人类语言研究
语言是人类生活的重要组成部分,也是我们Behave最基本的方面。我们主要可以通过两种形式来体验它——书面的和口头的。以书面形式,这是将我们的知识代代相传的一种方式。在口头形式中,它是人类在日常Behave中相互协调的主要媒介。语言在各个学科中都有研究。每个学科都有自己的一系列问题和一套解决这些问题的解决方案。
请考虑下表来理解这一点 -
纪律 | 问题 | 工具 |
---|---|---|
语言学家 |
如何用单词组成短语和句子? 什么限制了句子的可能含义? |
关于格式良好和意义的直觉。 结构的数学模型。例如,模型理论语义、形式语言理论。 |
心理语言学家 |
人类如何识别句子的结构? 如何识别单词的含义? 理解什么时候发生? |
主要用于测量人类表现的实验技术。 观察结果的统计分析。 |
哲学家 |
单词和句子如何获得意义? 如何通过文字来识别物体? 什么意思? |
利用直觉进行自然语言论证。 数学模型,如逻辑和模型论。 |
计算语言学家 |
我们如何识别句子的结构 如何对知识和推理进行建模? 我们如何使用语言来完成特定的任务? |
算法 数据结构 表示和推理的形式模型。 人工智能技术,如搜索和表示方法。 |
语言的歧义和不确定性
歧义通常用于自然语言处理,可以指以多种方式理解的能力。简单来说,我们可以说歧义是一种以多种方式被理解的能力。自然语言是非常模糊的。NLP 有以下类型的歧义 -
词汇歧义
单个词的歧义称为词汇歧义。例如,将“银”一词视为名词、形容词或动词。
句法歧义
当以不同的方式解析一个句子时,就会出现这种歧义。例如,“男人用望远镜看到女孩”这句话。这名男子是看到了拿着望远镜的女孩,还是他通过望远镜看到了她,这一点并不清楚。
语义歧义
当单词本身的含义可能被误解时,就会出现这种歧义。换句话说,当句子包含歧义的单词或短语时,就会发生语义歧义。例如,句子“汽车在移动时撞到了杆子”就具有语义歧义,因为解释可以是“汽车在移动时撞到杆子”和“汽车在杆子移动时撞到杆子”。
照应歧义
这种歧义是由于在话语中使用照应实体而产生的。例如,马跑上山。非常陡峭。很快就累了。在这里,“it”在两种情况下的照应指代会引起歧义。
语用歧义
这种歧义是指一个短语的上下文赋予它多种解释的情况。简而言之,我们可以说,当陈述不具体时,就会出现语用歧义。例如,“我也喜欢你”这句话可以有多种解释,比如我喜欢你(就像你喜欢我一样),我喜欢你(就像其他人一样)。
自然语言处理阶段
下图显示了自然语言处理的阶段或逻辑步骤 -
形态处理
这是NLP的第一阶段。此阶段的目的是将语言输入块分解为与段落、句子和单词相对应的标记集。例如,像“uneasy”这样的单词可以分解为两个子词标记“un-easy”。
语法分析
这是NLP的第二阶段。此阶段的目的有两个:检查句子的结构是否良好,并将其分解为显示不同单词之间句法关系的结构。例如,像“The school gos to the boy”这样的句子会被语法分析器或解析器拒绝。
语义分析
这是NLP的第三阶段。此阶段的目的是得出准确的含义,或者您可以从文本中说出字典含义。检查文本的意义。例如,语义分析器会拒绝“热冰淇淋”这样的句子。
务实分析
这是NLP的第四阶段。实用分析只是适合实际的对象/事件,这些对象/事件存在于给定的上下文中,并在最后阶段(语义分析)中获得了对象引用。例如,句子“将香蕉放在架子上的篮子里”可以有两种语义解释,语用分析器将在这两种可能性之间进行选择。
NLP - 语言资源
在本章中,我们将了解自然语言处理中的语言资源。
语料库
语料库是在自然交流环境中生成的一组大型且结构化的机器可读文本。它的复数是语料库。它们可以通过不同的方式导出,例如最初的电子文本、口语转录和光学字符识别等。
语料库设计要素
语言是无限的,但语料库的大小必须是有限的。由于语料库的大小是有限的,我们需要采样并按比例包含各种文本类型,以确保良好的语料库设计。
现在让我们了解语料库设计的一些重要元素 -
语料库代表性
代表性是语料库设计的一个决定性特征。两位伟大的研究人员 - Leech 和 Biber 的以下定义将帮助我们理解语料库的代表性 -
根据 Leech(1991)的说法, “如果基于语料库内容的发现可以推广到所述语言品种,则语料库被认为代表了它应该代表的语言品种”。
Biber (1993) 认为, “代表性是指样本包含总体变异性的程度”。
这样,我们可以得出结论,语料库的代表性由以下两个因素决定:
平衡- 语料库中包含的流派范围
采样- 如何选择每种流派的块。
语料库平衡
语料库设计的另一个非常重要的元素是语料库平衡——语料库中包含的流派范围。我们已经研究过,通用语料库的代表性取决于语料库的平衡程度。平衡的语料库涵盖了广泛的文本类别,这些文本类别应该是语言的代表。我们没有任何可靠的科学方法来衡量平衡,但最好的估计和直觉在这方面发挥作用。换句话说,我们可以说可接受的平衡仅由其预期用途决定。
采样
语料库设计的另一个重要元素是采样。语料库的代表性和平衡性与采样密切相关。这就是为什么我们可以说采样在语料库建设中是不可避免的。
Biber(1993)认为,“构建语料库时首先要考虑的一些因素涉及整体设计:例如,包含的文本类型、文本数量、特定文本的选择、文本中文本样本的选择” ,以及文本样本的长度。其中每一个都涉及抽样决策,无论是有意识的还是无意识的。”
在获得代表性样本时,我们需要考虑以下因素 -
抽样单位- 指需要抽样的单位。例如,对于书面文本,采样单位可以是报纸、期刊或书籍。
抽样框- 所有抽样单位的列表称为抽样框。
人口- 它可以被称为所有抽样单位的集合。它是根据语言产生、语言接受或语言作为产品来定义的。
语料库大小
语料库设计的另一个重要元素是它的大小。语料库应该有多大?这个问题没有具体的答案。语料库的大小取决于其预期目的以及一些实际考虑因素,如下 -
用户预期的查询类型。
用户研究数据所使用的方法。
数据源的可用性。
随着技术的进步,语料库的规模也随之增大。下面的比较表将帮助您了解语料库大小的工作原理 -
年 | 语料库名称 | 大小(以字为单位) |
---|---|---|
20 世纪 60 年代 - 70 年代 | 棕色和LOB | 100万字 |
20世纪80年代 | 伯明翰语料库 | 2000万字 |
20世纪90年代 | 英国国家语料库 | 1 亿字 |
21世纪初 | 英语银行语料库 | 6.5 亿字 |
在后续部分中,我们将查看一些语料库示例。
树库语料库
它可以被定义为注释句法或语义句子结构的语言解析文本语料库。Geoffrey Leech 创造了“树库”这个术语,它表示表示语法分析的最常见方式是通过树结构。一般来说,树库是在语料库的顶部创建的,语料库已经用词性标签进行了注释。
TreeBank 语料库的类型
语义树库和句法树库是语言学中最常见的两种树库类型。现在让我们更多地了解这些类型 -
语义树库
这些树库使用句子语义结构的形式表示。它们的语义表示深度各不相同。机器人命令树库、Geoquery、格罗宁根意义库、RoboCup 语料库是语义树库的一些示例。
句法树库
与语义树库相反,句法树库系统的输入是通过解析树库数据的转换获得的形式语言的表达式。此类系统的输出是基于谓词逻辑的含义表示。到目前为止,已经创建了不同语言的各种句法树库。例如,宾夕法尼亚阿拉伯语树库、哥伦比亚阿拉伯语树库是用阿拉伯语创建的句法树库。用中文创建的Sininca句法树库。Lucy、Susane和BLLIP用英语创建的《华尔街日报》句法语料库。
TreeBank语料库的应用
以下是 TreeBanks 的一些应用 -
在计算语言学中
如果我们谈论计算语言学,那么 TreeBanks 的最佳用途就是设计最先进的自然语言处理系统,例如词性标注器、解析器、语义分析器和机器翻译系统。
在语料库语言学中
就语料库语言学而言,树库的最佳用途是研究句法现象。
理论语言学和心理语言学
树库在理论和心理语言学中的最佳用途是交互证据。
PropBank语料库
PropBank 更具体地称为“命题库”,是一个语料库,用口头命题及其论点进行注释。语料库是面向动词的资源;这里的注释与句法层面的关系更为密切。科罗拉多大学博尔德分校语言系的 Martha Palmer 等人开发了它。我们可以使用术语 PropBank 作为一个普通名词,指代任何用命题及其论点注释的语料库。
在自然语言处理(NLP)领域,PropBank项目发挥了非常重要的作用。它有助于语义角色标记。
VerbNet(越南)
VerbNet(VN) 是英语中存在的分层领域独立且最大的词汇资源,包含有关其内容的语义和句法信息。VN 是一个覆盖范围广泛的动词词典,具有到其他词汇资源(例如 WordNet、Xtag 和 FrameNet)的映射。它被组织成动词类,通过细化和添加子类来扩展莱文类,以实现类成员之间的句法和语义连贯性。
每个 VerbNet (VN) 类包含 -
一组句法描述或句法框架
用于描述诸如及物、不及物、介词短语、结果和大量素质交替等结构的论证结构的可能表面实现。
一组语义描述,例如动物、人类、组织
对于约束,可以施加参数允许的主题角色的类型以及进一步的限制。这将有助于表明可能与主题角色相关的成分的句法性质。
词网
WordNet 由普林斯顿大学创建,是一个英语词汇数据库。它是 NLTK 语料库的一部分。在 WordNet 中,名词、动词、形容词和副词被分组为认知同义词集,称为同义词集。所有同义词集都借助概念语义和词汇关系联系起来。它的结构使其对于自然语言处理(NLP)非常有用。
在信息系统中,WordNet 用于各种目的,例如词义消歧、信息检索、自动文本分类和机器翻译。WordNet 最重要的用途之一是找出单词之间的相似性。对于此任务,各种算法已在各种包中实现,例如 Perl 中的相似性、Python 中的 NLTK 和 Java 中的 ADW。
NLP - 词级分析
在本章中,我们将了解自然语言处理中的世界级分析。
常用表达
正则表达式 (RE) 是一种用于指定文本搜索字符串的语言。RE 帮助我们使用模式中保存的专门语法来匹配或查找其他字符串或字符串集。正则表达式用于以相同的方式在 UNIX 和 MS WORD 中搜索文本。我们有各种使用许多 RE 功能的搜索引擎。
正则表达式的属性
以下是 RE 的一些重要属性 -
美国数学家 Stephen Cole Kleene 形式化了正则表达式语言。
RE是一种特殊语言的公式,可用于指定简单的字符串类、符号序列。换句话说,我们可以说 RE 是一种用于表征一组字符串的代数符号。
正则表达式需要两件事,一是我们希望搜索的模式,二是我们需要搜索的文本语料库。
从数学上讲,正则表达式可以定义如下 -
ε是正则表达式,表示该语言有空字符串。
φ是一个正则表达式,表示它是一种空语言。
如果X和Y是正则表达式,则
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=城市而不是城市。
自然语言处理-句法分析
句法分析或解析或句法分析是 NLP 的第三阶段。此阶段的目的是得出准确的含义,或者您可以从文本中说出字典含义。与正式语法规则相比,语法分析检查文本的意义。例如,像“热冰淇淋”这样的句子会被语义分析器拒绝。
从这个意义上来说,句法分析或句法分析可以定义为对自然语言中符合形式语法规则的符号串进行分析的过程。“解析”一词源自拉丁语“pars”,意思是“部分”。
解析器的概念
它用于实现解析任务。它可以被定义为设计用于获取输入数据(文本)并在按照正式语法检查正确语法后给出输入的结构表示的软件组件。它还通常以解析树或抽象语法树或其他层次结构的形式构建数据结构。
解析的主要作用包括 -
报告任何语法错误。
从常见错误中恢复,以便可以继续处理程序的其余部分。
创建解析树。
创建符号表。
产生中间表示(IR)。
解析类型
推导将解析分为以下两种类型 -
自上而下的解析
自底向上解析
自上而下的解析
在这种解析中,解析器从起始符号开始构造解析树,然后尝试将起始符号转换为输入。自顶向下解析的最常见形式使用递归过程来处理输入。递归下降解析的主要缺点是回溯。
自底向上解析
在这种解析中,解析器从输入符号开始,并尝试构建解析器树直到起始符号。
推导的概念
为了获取输入字符串,我们需要一系列产生式规则。推导是一组产生式规则。在解析过程中,我们需要确定要替换的非终结符,并确定产生式规则,并借助生成规则来替换非终结符。
推导类型
在本节中,我们将了解两种类型的推导,它们可用于决定用产生式规则替换哪个非终结符 -
最左推导
在最左边的推导中,从左到右扫描和替换输入的句子形式。这种情况下的句子形式称为左句形式。
最右推导
在最左边的推导中,从右到左扫描和替换输入的句子形式。这种情况下的句子形式称为右句形式。
解析树的概念
它可以被定义为推导的图形描述。推导的起始符号作为解析树的根。在每个解析树中,叶节点是终端节点,内部节点是非终端节点。解析树的一个特性是中序遍历将产生原始输入字符串。
语法概念
语法对于描述格式良好的程序的句法结构非常重要。从文学意义上来说,它们表示自然语言对话的句法规则。自从英语、印地语等自然语言诞生以来,语言学就一直试图定义语法。
形式语言理论也适用于计算机科学领域,主要是编程语言和数据结构。例如,在“C”语言中,精确的语法规则规定了如何从列表和语句组成函数。
诺姆·乔姆斯基 (Noam Chomsky)于 1956 年给出了语法的数学模型,该模型对于编写计算机语言非常有效。
在数学上,语法 G 可以正式写为 4 元组 (N, T, S, P),其中 -
N或V N = 非终结符号集,即变量。
T或Σ = 终端符号集。
S = 起始符号,其中 S ∈ N
P表示终结符和非终结符的产生式规则。它的形式为 α → β,其中 α 和 β 是 V N ∪ Σ上的串,并且 α 的至少一个符号属于 V N
短语结构或成分语法
诺姆·乔姆斯基提出的短语结构语法是基于选区关系的。这就是为什么它也被称为选区语法。它与依存语法相反。
例子
在举例说明选区语法之前,我们需要了解选区语法和选区关系的基本要点。
所有相关框架都是从选区关系的角度来看待句子结构的。
选区关系源自拉丁语和希腊语语法的主谓划分。
基本从句结构可以通过名词短语 NP和动词短语 VP来理解。
我们可以将句子“这棵树正在说明选区关系”写如下 -
依存语法
它与选区语法相反,基于依赖关系。它是由 Lucien Tesniere 介绍的。依存语法(DG)与选区语法相反,因为它缺少短语节点。
例子
在给出依存语法的例子之前,我们需要了解依存语法和依存关系的基本要点。
在 DG 中,语言单元(即单词)通过有向链接相互连接。
动词成为从句结构的中心。
所有其他句法单元都通过有向链接与动词连接。这些语法单元称为依赖关系。
我们可以将句子“这棵树正在说明依赖关系”写成如下;
使用选区语法的解析树称为基于选区的解析树;使用依存语法的解析树称为基于依存语法分析树。
上下文无关语法
上下文无关语法,也称为 CFG,是一种描述语言的符号,是正则语法的超集。如下图所示 -
CFG的定义
CFG 由有限的语法规则集组成,具有以下四个组成部分 -
非终结符集
它用 V 表示。非终结符是表示字符串集合的语法变量,这进一步帮助定义由语法生成的语言。
端子组
它也称为代币,由 Σ 定义。字符串由终结符的基本符号组成。
作品集
它用 P 表示。该集合定义了终结符和非终结符如何组合。每个产生式(P)都由非终结符、箭头和终结符(终结符的序列)组成。非终结符称为产生式的左侧,终结符称为产生式的右侧。
开始符号
生产从起始符号开始。它由符号S表示。非终结符号总是被指定为起始符号。
自然语言处理-语义分析
语义分析的目的是得出准确的含义,或者你可以从文本中说出字典的含义。语义分析器的工作是检查文本的意义。
我们已经知道词法分析也是处理单词的含义,那么语义分析和词法分析有什么不同呢?词法分析基于较小的标记,但另一方面语义分析则侧重于较大的块。这就是为什么语义分析可以分为以下两个部分 -
研究单个单词的含义
它是语义分析的第一部分,其中研究单个单词的含义。这部分称为词汇语义。
研究单个单词的组合
在第二部分中,单个单词将被组合起来以提供句子中的含义。
语义分析最重要的任务是获得句子的正确含义。例如,分析句子“Ram is Great”。在这句话中,说话者要么谈论拉姆勋爵,要么谈论一个名叫拉姆的人。这就是为什么语义分析器的工作(获取句子的正确含义)很重要。
语义分析的要素
以下是语义分析的一些重要元素 -
下位义
它可以被定义为通用术语和该通用术语的实例之间的关系。这里通用术语称为上位词,其实例称为下位词。例如,单词颜色是上位词,颜色蓝色、黄色等是下位词。
同音异义
它可以被定义为具有相同拼写或相同形式但具有不同且不相关含义的单词。例如,“蝙蝠”一词是一个同音词,因为蝙蝠可以是击球的工具,或者蝙蝠也是一种夜间飞行的哺乳动物。
一词多义
Polysemy(一词多义)是一个希腊词,意思是“许多符号”。它是具有不同但相关含义的单词或短语。换句话说,我们可以说一词多义具有相同的拼写但不同且相关的含义。例如,“银行”一词是一个多义词,具有以下含义 -
一家金融机构。
该机构所在的大楼。
是“依靠”的同义词。
一词多义和同音异义之间的区别
多义词和同音异义词都具有相同的语法或拼写。它们之间的主要区别在于,在一词多义中,单词的含义是相关的,而在同形异义中,单词的含义不相关。例如,如果我们谈论同一个单词“Bank”,我们可以写出“金融机构”或“河岸”的意思。在这种情况下,这将是同音异义的例子,因为含义彼此无关。
同义词
它是两个具有不同形式但表达相同或相近含义的词项之间的关系。例如“作者/作家”、“命运/命运”。
反义词
它是两个词汇项之间的关系,它们的语义成分相对于轴具有对称性。反义词的范围如下 -
是否应用财产- 例如“生/死”、“确定/不确定”
可扩展属性的应用- 示例是“富/穷”、“热/冷”
用法的应用- 例如“父亲/儿子”、“月亮/太阳”。
含义表示
语义分析创建句子含义的表示。但在了解与意义表示相关的概念和方法之前,我们需要了解语义系统的构建块。
语义系统的构建模块
在单词表示或单词含义表示中,以下构建块发挥着重要作用 -
实体- 它代表个体,例如特定的人、位置等。例如,哈里亚纳邦。印度、拉姆都是实体。
概念- 它代表个体的一般类别,例如人、城市等。
关系- 它代表实体和概念之间的关系。例如,拉姆是一个人。
谓词- 它代表动词结构。例如,语义角色和格语法就是谓词的例子。
现在,我们可以理解意义表示展示了如何将语义系统的构建块组合在一起。换句话说,它展示了如何将实体、概念、关系和谓词放在一起来描述情况。它还可以对语义世界进行推理。
意义表示的方法
语义分析使用以下方法来表示含义 -
一阶谓词逻辑 (FOPL)
语义网
镜框
概念依赖(CD)
基于规则的架构
格语法
概念图
需要意义表达
这里出现的一个问题是为什么我们需要意义表示?以下是相同的原因 -
语言元素与非语言元素的联系
第一个原因是,借助意义表示,可以将语言元素与非语言元素联系起来。
在词汇层面上表示多样性
在意义表示的帮助下,可以在词汇层面上表示明确的、规范的形式。
可以用来推理
含义表示可用于推理以验证世界上的真实情况,以及从语义表示中推断知识。
词汇语义
语义分析的第一部分,研究单个单词的含义,称为词汇语义学。它还包括单词、子词、词缀(子单元)、复合词和短语。所有的词、子词等统称为词汇项。换句话说,词汇语义是词项、句子意义和句子语法之间的关系。
以下是词汇语义涉及的步骤 -
词汇项目(如单词、子词、词缀等)的分类是在词汇语义中进行的。
词汇项(如单词、子词、词缀等)的分解是在词汇语义中执行的。
还分析了各种词汇语义结构之间的差异和相似之处。
NLP - 词义消歧
我们知道单词根据句子中使用的上下文有不同的含义。如果我们谈论人类语言,那么它们也是含糊不清的,因为许多单词可以根据其出现的上下文以多种方式解释。
在自然语言处理(NLP)中,词义消歧可以被定义为确定通过在特定上下文中使用单词而激活单词的哪个含义的能力。词汇歧义、句法或语义是任何 NLP 系统面临的首要问题之一。高精度的词性(POS)标注器可以解决Word的句法歧义。另一方面,解决语义歧义的问题称为WSD(词义消歧)。解决语义歧义比解决句法歧义更难。
例如,考虑“低音”一词存在的不同含义的两个例子-
我能听到低音。
他喜欢吃烤鲈鱼。
低音一词的出现清楚地表明了不同的含义。在第一句话中,它意味着频率,在第二句话中,它意味着鱼。因此,如果 WSD 能够消除歧义,那么上述句子的正确含义可以分配如下 -
我可以听到低音/频率声音。
他喜欢吃烤鲈鱼/鱼。
水务署的评价
WSD 的评估需要以下两个输入 -
一本字典
WSD 评估的第一个输入是字典,它用于指定要消除歧义的含义。
测试语料库
WSD 所需的另一个输入是具有目标或正确含义的高注释测试语料库。测试语料库可以有两种类型:
词汇样本- 系统中使用这种语料库,需要消除少量单词样本的歧义。
All-words - 系统中使用这种语料库,期望消除一段运行文本中所有单词的歧义。
词义消歧(WSD)的途径和方法
WSD 的途径和方法根据单词消歧所使用的知识来源进行分类。
现在让我们看看 WSD 的四种传统方法 -
基于字典或基于知识的方法
顾名思义,这些方法主要依靠词典、宝库和词汇知识库来消歧。他们不使用语料库证据来消除歧义。Lesk 方法是 Michael Lesk 于 1986 年提出的开创性的基于字典的方法。Lesk 算法所基于的 Lesk 定义是“测量上下文中所有单词的语义定义之间的重叠”。然而,2000年,Kilgarriff和Rosensweig给出了简化的Lesk定义:“测量单词的意义定义与当前上下文之间的重叠”,这进一步意味着一次识别一个单词的正确意义。这里的当前上下文是周围句子或段落中的单词集合。
监督方法
为了消除歧义,机器学习方法利用意义注释的语料库进行训练。这些方法假设上下文本身可以提供足够的证据来消除含义的歧义。在这些方法中,知识和推理这两个词被认为是不必要的。上下文被表示为单词的一组“特征”。它还包括有关周围单词的信息。支持向量机和基于记忆的学习是 WSD 最成功的监督学习方法。这些方法依赖于大量手动标记的语料库,其创建成本非常昂贵。
半监督方法
由于缺乏训练语料,词义消歧算法大多采用半监督学习方法。这是因为半监督方法同时使用标记数据和未标记数据。这些方法需要非常少量的带注释的文本和大量的纯未注释文本。半监督方法使用的技术是从种子数据引导。
无监督方法
这些方法假设相似的含义出现在相似的上下文中。这就是为什么可以通过使用上下文相似性的某种度量对单词出现进行聚类来从文本中推断出含义。这项任务称为词义归纳或辨别。无监督方法由于不依赖手动工作而具有克服知识获取瓶颈的巨大潜力。
词义消歧(WSD)的应用
词义消歧(WSD)几乎应用于所有语言技术的应用中。
现在让我们看看 WSD 的范围 -
机器翻译
机器翻译(MT)是 WSD 最明显的应用。在 MT 中,对于不同含义具有不同翻译的单词的词汇选择是由 WSD 完成的。机器翻译中的语义被表示为目标语言中的单词。大多数机器翻译系统不使用显式的WSD模块。
信息检索(IR)
信息检索(IR)可以定义为处理文档存储库中的信息(特别是文本信息)的组织、存储、检索和评估的软件程序。该系统基本上帮助用户找到他们需要的信息,但它不会明确返回问题的答案。WSD 用于解决向 IR 系统提供的查询的歧义。与 MT 一样,当前的 IR 系统没有明确使用 WSD 模块,它们依赖于用户在查询中输入足够的上下文来仅检索相关文档的概念。
文本挖掘和信息提取(IE)
在大多数应用中,WSD是对文本进行准确分析所必需的。例如,WSD帮助智能采集系统对正确的单词进行标记。例如,医疗智能系统可能需要标记“非法药物”而不是“医用药物”
词典编纂
WSD 和词典编纂可以循环协同工作,因为现代词典编纂是基于语料库的。通过词典编纂,WSD 提供了粗略的经验意义分组以及统计上显着的意义上下文指标。
词义消歧困难(WSD)
以下是词义消歧(WSD)面临的一些困难 -
词典之间的差异
WSD 的主要问题是确定单词的含义,因为不同的含义可能非常密切相关。甚至不同的词典和同义词库也可以提供不同的词义划分。
不同的算法适合不同的应用
WSD的另一个问题是不同的应用可能需要完全不同的算法。例如,在机器翻译中,它采取目标词选择的形式;在信息检索中,不需要意义清单。
判断间差异
WSD 的另一个问题是,WSD 系统通常通过将任务结果与人类任务进行比较来进行测试。这称为判断间方差问题。
词义离散性
WSD 的另一个困难是单词不能轻易地划分为离散的子含义。
自然语言话语处理
人工智能最难的问题是计算机对自然语言的处理,或者说自然语言处理是人工智能最难的问题。如果我们谈论 NLP 的主要问题,那么 NLP 的主要问题之一就是话语处理——建立关于话语如何组合在一起形成连贯话语的理论和模型。事实上,语言总是由并置的、结构化的、连贯的句子组组成,而不是像电影那样孤立的、不相关的句子。这些连贯的句子组被称为话语。
连贯性的概念
连贯性和话语结构在很多方面是相互关联的。连贯性以及良好文本的属性被用来评估自然语言生成系统的输出质量。这里出现的问题是文本的连贯性意味着什么?假设我们从报纸的每一页收集一句话,那它会是一篇话语吗?当然不是。这是因为这些句子没有表现出连贯性。连贯的话语必须具备以下属性 -
话语之间的连贯关系
如果话语之间存在有意义的联系,那么话语就会是连贯的。这种性质称为相干关系。例如,必须有某种解释来证明话语之间的联系。
实体之间的关系
使话语连贯的另一个属性是与实体之间必须存在某种关系。这种一致性称为基于实体的一致性。
话语结构
关于话语的一个重要问题是话语必须具有什么样的结构。这个问题的答案取决于我们对话语的细分。语篇分段可以定义为确定大语篇的结构类型。实现语篇切分是相当困难的,但是对于信息检索、文本摘要和信息提取这类应用来说非常重要。
话语切分算法
在本节中,我们将学习话语分割的算法。算法描述如下 -
无监督话语分割
无监督话语分割的类别通常表示为线性分割。我们可以借助示例来理解线性分割的任务。在示例中,有一个将文本分割成多段落单元的任务;单位代表原文的段落。这些算法依赖于内聚力,内聚力可以定义为使用某些语言工具将文本单元连接在一起。另一方面,词汇衔接是通过两个单元中两个或多个单词之间的关系来表示的衔接,就像同义词的使用一样。
有监督的话语分割
早期的方法没有任何手工标记的段边界。另一方面,有监督的话语分割需要有边界标记的训练数据。获得同样的东西非常容易。在监督语篇分割中,语篇标记或提示词起着重要作用。话语标记或提示词是用于表示话语结构的单词或短语。这些话语标记是特定领域的。
文本连贯性
词汇重复是一种寻找语篇结构的方法,但它不能满足语篇连贯的要求。要实现话语的连贯,必须注重具体的连贯关系。众所周知,连贯关系定义了话语中话语之间可能的联系。赫布提出了如下这种关系 -
我们用两个术语S 0和S 1来表示两个相关句子的含义 -
结果
它推断项S 0断言的状态可能导致S 1断言的状态。例如,有两个语句显示关系结果:Ram 被火烧死。他的皮肤被烧伤了。
解释
它推断S 1断言的状态可能导致S 0断言的状态。例如,有两个语句显示了这种关系:Ram 与 Shyam 的朋友打架。他喝醉了。
平行线
它从S 0的断言推断出 p(a1,a2,...) ,并从断言S 1推断出 p(b1,b2,...) 。这里 ai 和 bi 对于所有 i 来说都是相似的。例如,两个陈述是平行的 - Ram 想要汽车。夏姆想要钱。
阐述
它从两个断言 - S 0和S 1推断出相同的命题 P例如,两个陈述显示了关系阐述:Ram was from Chandigarh。希亚姆来自喀拉拉邦。
场合
当可以从S 0的断言推断出状态的变化时,就会发生这种情况,并且可以从S 1推断出其最终状态,反之亦然。例如,这两个语句显示了关系场合:Ram拿起了书。他把它交给了夏姆。
构建层级话语结构
整个话语的连贯性也可以通过连贯关系之间的层次结构来考虑。例如,以下段落可以表示为层次结构 -
S 1 - Ram 去银行存钱。
S 2 - 然后他乘坐火车前往 Shyam 的布店。
S 3 - 他想买一些衣服。
S 4 - 他没有参加聚会的新衣服。
S 5 - 他还想与 Shyam 谈谈他的健康状况
参考分辨率
解释任何话语中的句子是另一项重要任务,为了实现这一目标,我们需要知道正在谈论的是谁或什么实体。这里,解释参考是关键要素。指称可以被定义为表示实体或个体的语言表达。例如,在段落中,ABC银行的经理Ram在一家商店看到了他的朋友 Shyam。他去见他,Ram、His、He 等语言表达都是参考。
同样,引用解析可以定义为确定哪种语言表达引用哪些实体的任务。
参考解析中使用的术语
我们在参考分辨率中使用以下术语 -
引用表达式- 用于执行引用的自然语言表达式称为引用表达式。例如,上面使用的段落是指称表达。
所指对象- 它是被引用的实体。例如,在最后一个给定的示例中,Ram 是一个所指对象。
Corefer - 当两个表达式用于引用同一实体时,它们被称为 c