Natural Language Processing 简明教程

Natural Language Processing - Quick Guide

Natural Language Processing - Introduction

语言是一种沟通方式,借助它我们能够说话、阅读和写作。例如,我们用自然语言(确切地说,用文字)思考、做决定、制定计划等等。然而,在 AI 时代,我们面临的一个重大问题是,我们是否能够以类似的方式与计算机进行沟通。换句话说,人类是否可以用自己的自然语言与计算机沟通?对于我们来说,开发 NLP 应用程序是一项挑战,因为计算机需要结构化数据,但人类语言本质上是无结构且常常歧义的。

从这个意义上讲,我们可以说自然语言处理 (NLP) 是计算机科学,特别是人工智能 (AI) 的子领域,其关注的是使计算机能够理解和处理人类语言。从技术上讲,NLP 的主要任务是对计算机进行编程,以便其分析和处理大量自然语言数据。

History of NLP

我们将 NLP 的历史划分为了四个阶段。各个阶段有不同的关注点和风格。

First Phase (Machine Translation Phase) - Late 1940s to late 1960s

该阶段所做的工作主要集中在机器翻译 (MT)。这个阶段是一个充满热情和乐观主义的时期。

现在让我们看看第一阶段有什么内容:

  1. NLP 研究起始于 1950 年代初期,在 Booth & Richens 调查以及 Weaver 于 1949 年撰写的关于机器翻译的备忘录之后。

  2. 1954 年,在乔治城-IBM 实验中演示了从俄语到英语的自动翻译小实验。

  3. 同年,创办了期刊 MT(机器翻译)。

  4. 第一次国际机器翻译 (MT) 会议于 1952 年举行,第二次于 1956 年举行。

  5. 1961 年,在泰丁顿语言机器翻译和应用语言分析国际会议上展示的工作是这一阶段的高点。

Second Phase (AI Influenced Phase) – Late 1960s to late 1970s

在这个阶段,所做的工作主要与世界知识以及它在构造和操纵意义表征中的作用有关。这就是为什么这个阶段也被称为人工智能风味阶段。

该阶段包括以下内容:

  1. 1961 年初,开始解决寻址和构建数据或知识库的问题。这项工作受人工智能的影响。

  2. 同年,还开发了棒球问答系统。该系统的输入有限,涉及的语言处理很简单。

  3. 明斯基 (1968) 描述了一个更高级的系统。与棒球问答系统相比,这一系统得到了认可,并满足了在解释和响应语言输入时对知识库推理的需求。

Third Phase (Grammatico-logical Phase) – Late 1970s to late 1980s

这个阶段可以描述为语法逻辑阶段。由于上个阶段实际系统构建失败,研究人员转向使用逻辑进行人工智能中的知识表示和推理。

第三阶段包括以下内容:

  1. 十年末期,语法逻辑方法帮助我们获得了强大的通用句子处理器,如 SRI 的核心语言引擎和话语表示理论,这提供了处理更广泛话语的方法。

  2. 在这个阶段,我们获得了一些实际资源和工具,如解析器(例如 Alvey 自然语言工具)以及更多的操作和商业系统(例如数据库查询)。

  3. 20 世纪 80 年代词典方面的工作也指向了语法逻辑方法。

Fourth Phase (Lexical & Corpus Phase) – The 1990s

我们可以将此描述为词法和语料库阶段。该阶段采用了词法化语法方法,该方法出现在 20 世纪 80 年代末并产生越来越大的影响。随着机器学习算法在语言处理方面的引入,这个十年发生了自然语言处理的革命。

Study of Human Languages

语言是人类生活的一个至关重要的组成部分,也是我们行为的最基本方面。我们主要可以以两种形式体验到它——书面和口语。在书面形式中,它是一种将我们的知识从一代传递到下一代的方式。在口语形式中,它是人类在日常行为中相互协调的主要媒介。语言在各个学术学科中都得到研究。每个学科都有自己的一套问题和解决这些问题的方案。

考虑下表来理解这一点:

Discipline

Problems

Tools

Linguists

如何用单词形成词组和句子?什么限制了句子的可能含义?

关于正确性和含义的直觉。结构的数学模型。例如,模型理论语义学、形式语言理论。

Psycholinguists

人类如何识别句子的结构?如何识别单词的含义?理解何时发生?

主要用于衡量人类表现的实验技术。观察的统计分析。

Philosophers

单词和句子如何获得含义?单词如何识别对象?什么是含义?

使用直觉的自然语言论证。数学模型,如逻辑和模型理论。

Computational Linguists

我们如何识別句子的结构?如何对知识和推理进行建模?我们如何使用语言来完成特定的任务?

算法数据结构表示和推理的形式模型。诸如搜索和表示方法之类的 AI 技术。

Ambiguity and Uncertainty in Language

模糊性通常用于自然语言处理中,可以指能够以不止一种方式被理解的能力。简单来说,我们可以说模糊性是能够以不止一种方式被理解的能力。自然语言非常模棱两可。NLP 具有以下类型的模糊性−

Lexical Ambiguity

单个单词的模糊性称为词法模糊性。例如,将单词 silver 视为名词、形容词或动词。

Syntactic Ambiguity

当句子以不同方式进行解析时,就会出现这种类型的模糊性。例如,句子“这个人用望远镜看到了那个女孩”。模糊的是,这个人看到女孩拿着望远镜,还是他通过望远镜看到了她。

Semantic Ambiguity

当单词本身的含义可能被误解时,就会出现这种类型的模糊性。换句话说,语义模糊性发生在句子包含一个模棱两可的单词或短语时。例如,句子“这辆车在行驶时撞到了电线杆”具有语义模糊性,因为解释可以是“这辆车在行驶时撞到了电线杆”和“这辆车撞到了电线杆,而电线杆正在移动”。

Anaphoric Ambiguity

这种模糊性是由于话语中使用了指代实体而产生的。例如,马沿着小路跑。它非常陡峭。它很快就累了。这里,“它”在两种情况下的指代关系造成了模糊性。

Pragmatic ambiguity

此类模糊性是指短语的上下文赋予其多重解释的情况。简单来说,我们可以说,当表述不具体时,就会出现语用模糊性。例如,句子“我也喜欢你”可以有多种解释,例如我喜欢你(就像你一样喜欢我),我喜欢你(就像其他人一样)。

NLP Phases

下图显示了自然语言处理中的阶段或逻辑步骤−

phases or logical steps

Morphological Processing

这是 NLP 的第一阶段。此阶段的目的是将语言输入块分解为对应于段落、句子和单词的标记集。例如,像 “uneasy” 这样的单词可以分解成 “un-easy” 两个子词令牌。

Syntax Analysis

这是 NLP 的第二个阶段。此阶段的目的有两个:检查句子是否构成良好,以及将其分解为反映不同单词之间句法关系的结构。例如,像 “The school goes to the boy” 这样的句子将被语法分析器或解析器拒绝。

Semantic Analysis

这是 NLP 的第三个阶段。此阶段的目的是从文本中提取确切的含义,或者可以说成是词典含义。对文本进行了含义检查。例如,语义分析器会拒绝诸如“热冰淇淋”之类的句子。

Pragmatic Analysis

这是 NLP 的第四个阶段。语用分析仅适合实际对象/事件,这些对象/事件存在于给定上下文中,并在上一阶段(语义分析)中获得了对象引用。例如,句子“把香蕉放在架子上的篮子里”可以有两种语义解释,语用分析器将在这两种可能性之间进行选择。

NLP - Linguistic Resources

在本章中,我们将了解自然语言处理中的语言资源。

Corpus

语料库是在自然交流环境中生成的大型结构化机器可读文本集。它的复数形式是语料库。它们可以通过不同的方式派生,例如原本是电子的文本、口语转录和光学字符识别等。

Elements of Corpus Design

语言是无限的,但语料库必须是有限的。为了使语料库大小有限,我们需要对广泛的文本类型进行抽样和按比例包含,以确保良好的语料库设计。

现在让我们了解语料库设计的一些重要元素−

Corpus Representativeness

代表性是语料库设计的一个决定性特征。两位伟大研究人员——Leech 和 Biber 的以下定义将帮助我们理解语料库代表性−

  1. According to Leech (1991), “语料库被认为代表了它应该代表的语言变体,如果基于其内容的调查结果可以推广到所述语言变体”。

  2. According to Biber (1993), “代表性是指样本包含总体中完整变异范围的程度”。

通过这种方式,我们可以得出结论,语料库的代表性由以下两个因素决定:

  1. Balance − 语料库中包含的体裁范围

  2. Sampling − 如何选择每个体裁的段落。

Corpus Balance

语料库设计的另一个非常重要的元素是语料库平衡——语料库中包含的体裁范围。我们已经研究过,一般语料库的代表性取决于语料库平衡度如何。平衡的语料库涵盖广泛的文本类别,这些类别被认为是语言的代表。我们没有可靠的科学方法来衡量平衡度,但最好的估计和直觉在这方面起作用。换句话说,我们可以说,可接受的平衡度仅由其预期用途决定。

Sampling

语料库设计的另一个重要元素是抽样。语料库代表性和平衡性与抽样密切相关。这就是为什么我们可以说抽样在语料库构建中是不可避免的。

  1. 根据 Biber(1993) ,“在构建语料库时,首先要考虑的是总体设计:例如,包含的文本类型、文本数量、特定文本的选择、文本内部文本样本的选择以及文本样本的长度。这些每一个都涉及抽样决策,无论是有意识的还是无意识的。”

在获取代表性样本时,我们需要考虑以下内容:

  1. Sampling unit − 它指的是需要样本的单位。例如,对于书面文本,抽样单位可能是报纸、期刊或书籍。

  2. Sampling frame − 所有抽样单位的列表称为抽样框。

  3. Population − 可以将其称为所有抽样单位的集合。它是根据语言生产、语言接受或作为产品的语言定义的。

Corpus Size

语料库设计的另一个重要元素是它的规模。语料库应该多大?这个问题没有具体答案。语料库的规模取决于其预期用途以及以下一些实际考虑因素:

  1. 用户预期的查询类型。

  2. 用户研究数据的 methodology。

  3. 数据源的可用性。

随着技术的进步,语料库的规模也在增加。以下比较表将帮助您了解语料库规模的工作原理:

Year

Name of the Corpus

Size (in words)

1960s - 70s

Brown and LOB

1 Million words

1980s

The Birmingham corpora

20 Million words

1990s

The British National corpus

100 Million words

Early 21st century

英语语料库

650 Million words

在我们后面的章节中,我们将看一些语料库的示例。

TreeBank Corpus

它可以定义为对句法或语义句子结构进行注释的语言解析文本语料库。Geoffrey Leech创造了术语“树库”,它表示表示语法分析的最常用方法是通过树形结构。通常,树库是在语料库的基础上创建的,该语料库已经用词性标签进行了注释。

Types of TreeBank Corpus

语义树库和句法树库是语言学中最常见的两类树库。让我们现在详细了解这些类型:

Semantic Treebanks

这些树库使用句子语义结构的形式化表示。它们在语义表示深度方面各不相同。机器人指令树库、地理查询、格罗宁根意义库、RoboCup 语料库是一些语义树库示例。

Syntactic Treebanks

与语义树库相反,句法树库系统的输入是从句法分析树库数据转换中获得的形式语言表达式。此类系统的输出是基于谓词逻辑的意义表示。到目前为止,已经创建了各种不同语言的句法树库。例如, Penn Arabic Treebank, Columbia Arabic Treebank 是阿拉伯语创建的句法树库。 Sininca 是中文创建的句法树库。 Lucy, SusaneBLLIP WSJ 是英语创建的句法语料库。

Applications of TreeBank Corpus

以下是一些树库的应用:

In Computational Linguistics

如果谈到计算语言学,则树库的最佳用途是设计最先进的自然语言处理系统,例如词性标注器、解析器、语义分析器和机器翻译系统。

In Corpus Linguistics

在语料库语言学中,树库的最佳用途是研究句法现象。

In Theoretical Linguistics and Psycholinguistics

树库在理论和心理语言学中的最佳用途是交互证据。

PropBank Corpus

PropBank 更具体地称为“命题库”,它是一个语料库,其中附注了动词命题及其参数。该语料库是以动词为导向的资源;此处的注释更紧密地与句法级别相关。Martha Palmer 及科罗拉多大学博尔德分校语言学系共同开发了它。我们可以使用术语 PropBank 作为普通名词,指代任何已用命题及其参数进行注释的语料库。

在自然语言处理 (NLP) 中,PropBank 项目发挥了非常重要的作用。它有助于语义角色标记。

VerbNet(VN)

VerbNet(VN) 是英语中层次化的、与领域无关且最大的词法资源,它包含有关其内容的语义和句法信息。VN 是一个广泛覆盖的动词词库,它映射到其他词法资源,如 WordNet、Xtag 和 FrameNet。它被组织成动词类别,通过细化和添加子类别来扩展 Levin 类别,以便在类别成员之间实现句法和语义连贯性。

每个 VerbNet (VN) 类别包含:

A set of syntactic descriptions or syntactic frames

描述结构的可能表面实现,例如及物、不及物、介词短语、结果和大量的语态交替。

A set of semantic descriptions such as animate, human, organization

对参数允许的主题角色类型进行限制,并且可以施加进一步的限制。这将有助于指示可能与主题角色关联的成分的句法性质。

WordNet

WordNet 由普林斯顿创建,是英语语言的词汇数据库。它是 NLTK 语料库的一部分。在 WordNet 中,名词、动词、形容词和副词被分组到称为 Synsets 的认知同义词组中。所有同义词集都在概念语义和词汇关系的帮助下联系在一起。它的结构使其非常适合自然语言处理 (NLP)。

在信息系统中,WordNet 用于各种目的,例如消歧义、信息检索、自动文本分类和机器翻译。WordNet 最重要的用途之一是找出单词之间的相似性。对于此任务,已在各种包中实现了各种算法,例如 Perl 中的相似性、Python 中的 NLTK 和 Java 中的 ADW。

NLP - Word Level Analysis

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

Regular Expressions

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

Properties of Regular Expressions

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

  1. 美国的数学家史蒂芬·科尔·克莱尼将正则表达式语言形式化。

  2. RE 是特殊语言中的公式,它可用于指定简单的字符串类,即一连串的符号。换句话说,我们可以说 RE 是用于表征一组字符串的代数符号。

  3. 正则表达式需要两样东西,一个是希望搜索的模式,另一个是从其中需要搜索的文本语料库。

在数学上,正则表达式可以定义如下:

  1. ε 是正则表达式,它表示语言具有空字符串。

  2. φ 是正则表达式,它表示是空语言。

  3. 如果 XY 是正则表达式,那么 X, Y X.Y(Concatenation of XY) X+Y (Union of X and Y) X , Y*(X 和 Y 的克莱尼闭包)*

也是正则表达式。

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

Examples of Regular Expressions

下表列出了几个正则表达式的例子 −

Regular Expressions

Regular Set

(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, ababb, …………..}

(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, …………..}

Regular Sets & Their Properties

可以将其定义为表示正则表达式的值的一组,并且具有特定属性。

Properties of regular sets

  1. 如果对两个正则集合进行并集,则结果集也应该是正则的。

  2. 如果对两个正则集合进行交集,则结果集也应该是正则的。

  3. 如果对正则集合进行补集,则结果集也应该是正则的。

  4. 如果对两个正则集合进行差集,则结果集也应该是正则的。

  5. 如果对正则集合进行反转,则结果集也应该是正则的。

  6. 如果对正则集合进行闭包,则结果集也应该是正则的。

  7. 如果对两个正则集合进行连接,则结果集也应该是正则的。

Finite State Automata

自动机一词源自希腊语单词“αὐτόματα”,意为“自动”,它是“自动机”的复数形式,可以将其定义为一种抽象的自推进计算设备,它自动执行预定的操作序列。

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

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

  1. Q 是有限的状态集。

  2. Σ 是有限的符号集,称作自动机的字母表。

  3. δ 是过渡函数

  4. q0 是任何输入将从其中进行处理的初始状态(q0 ∈ Q)。

  5. F 是 Q 的终态/状态集(F ⊆ Q)。

Relation between Finite Automata, Regular Grammars and Regular Expressions

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

  1. 正如我们所知,有限状态自动机是计算工作的理论基础,而正规表达式是描述它们的一种方式。

  2. 我们可以说任何正规表达式都可以作为 FSA 来实现,而任何 FSA 都可以用正规表达式来描述。

  3. 另一方面,正规表达式是描述一种称为正规语言的语言的一种方式。因此,我们可以说正规语言可以在 FSA 和正规表达式的帮助下描述。

  4. 正规语法是一种可以是右正规或左正规的形式语法,是描述正规语言的另一种方式。

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

regular grammars

Types of Finite State Automation (FSA)

有限状态自动化有两種類型。让我们来看看這些類型是什么。

Deterministic Finite automation (DFA)

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

在数学上,DFA 可以表示为 5 元组 (Q, Σ, δ, q0, F),其中:

  1. Q 是有限的状态集。

  2. Σ 是有限的符号集,称作自动机的字母表。

  3. δ 是转换函数,其中 δ:Q × Σ → Q。

  4. q0 是任何输入将从其中进行处理的初始状态(q0 ∈ Q)。

  5. F 是 Q 的终态/状态集(F ⊆ Q)。

在图形上,DFA 可以通过称为状态图的有向图表示,其中:

  1. 状态由 @{ s0} 表示。

  2. 转换由标记的 @{ s1} 表示。

  3. 初始状态由 @{ s2} 表示。

  4. 最终状态由 double circle 表示。

Example of DFA

假设 DFA 为

  1. Q = {a, b, c},

  2. Σ = {0, 1},

  3. q0 = {a},

  4. F = {c},

  5. 转换函数 δ 在表中按如下方式显示 −

Current State

输入 0 时的下一状态

输入 1 时的下一状态

A

a

B

B

b

A

C

c

C

该 DFA 的图形表示如下 −

graphical representation

Non-deterministic Finite Automation (NDFA)

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

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

  1. Q 是有限的状态集。

  2. Σ 是有限的符号集,称作自动机的字母表。

  3. δ :-是转换函数,其中 δ: Q × Σ → 2 Q。

  4. q0 :-是从那里处理任何输入的初始状态 (q0 ∈ Q)。

  5. F :-是 Q 的一组最终状态 (F ⊆ Q)。

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

  1. 状态由 @{ s0} 表示。

  2. 转换由标记的 @{ s1} 表示。

  3. 初始状态由 @{ s2} 表示。

  4. 最终状态由双 circle 表示。

Example of NDFA

假设 NDFA 为

  1. Q = {a, b, c},

  2. Σ = {0, 1},

  3. q0 = {a},

  4. F = {c},

  5. 转换函数 δ 在表中按如下方式显示 −

Current State

输入 0 时的下一状态

输入 1 时的下一状态

A

a,

B

B

C

a, c

C

b,

C

该 NDFA 的图形表示如下 −

graphical represent

Morphological Parsing

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

从另一个意义上,我们可以说形态学是 −

  1. The formation of words.

  2. 单词的起源。

  3. 单词的语法形式。

  4. 词缀和后缀在单词形成中的使用。

  5. 如何形成语言的词性 (PoS)。

Types of Morphemes

词素是最小的带义单位,可分两类:

  1. Stems

  2. Word Order

Stems

它是单词的核心意义单位。我们也可称其为单词词根。例如,在单词 “foxes” 中,词干是 “fox”。

  1. Affixes −顾名思义,它们为单词添加了一些附加意义和语法功能。例如,在单词 “foxes” 中,缀是“es”。

缀进一步可细分为以下四类:

Word Order

单词顺序由形态句法分析决定。现在让我们了解构建形态句法分析器所需条件:

Lexicon

构建形态句法分析仪的最首要条件是词典,其中包括词干和缀的列表及其基本信息。例如,以下信息:词干是名词词干还是动词词干等。

Morphotactics

它基本上是词素排序模型。换句话说,该模型解释单词中哪类词素可跟在其他类词素后面。例如,词法事实表明,英语复数词素总是跟在名词后面,而不是在名词前面。

Orthographic rules

这些拼写规则用于对单词中发生的改变建模。例如,将单词中的 y 转换成 ie 的规则,比如 city+s = cities,而不是 citys。

Natural Language Processing - Syntactic Analysis

句法分析或解析或语法分析是 NLP 的第三个阶段。此阶段的目的是提取确切的含义,或者可以说从文本中提取字典含义。语法分析根据正式语法规则检查文本的意义。例如,语义分析器会拒绝“热冰淇淋”之类的句子。

从这个意义上讲,句法分析或解析可以被定义为分析自然语言中的符号串符合形式语法规则的过程。词 ‘parsing’ 来源于拉丁语 ‘pars’ ,意为 ‘part’

Concept of Parser

它用于实现解析任务。它可以定义为专门用于获取输入数据(文本)并根据形式语法检查正确语法后给出输入的结构表示的软件组件。它还构建了一个通常采用解析树、抽象语法树或其他层次结构形式的数据结构。

symbol table

解析的主要作用包括:

  1. 报告任何语法错误。

  2. 从常发错误中恢复后,可以继续处理程序的余下部分。

  3. To create parse tree.

  4. To create symbol table.

  5. 产生中间表示 (IR)。

Types of Parsing

导出将解析分解为以下两种类型−

  1. Top-down Parsing

  2. Bottom-up Parsing

Top-down Parsing

在此类解析中,解析器从开始符号开始构建解析树,然后尝试将开始符号转换为输入。自顶向下解析最常用的形式使用递归过程来处理输入。自顶向下解析的主要缺点是回溯。

Bottom-up Parsing

在此类解析中,解析器从输入符号开始构建解析树,直到开始符号。

Concept of Derivation

为了获取输入字符串,我们需要一系列产生式。导出是一组产生式。在解析过程中,我们需要决定要替换的非终结符,并决定借助其将要替换非终结符的产生式。

Types of Derivation

在本节中,我们将了解两种类型的导出,可用于决定要用产生式替换哪个非终结符 −

Left-most Derivation

在最左导出中,输入的句子形式从左到右进行扫描和替换。这种情况下的句子形式称为左句子形式。

Right-most Derivation

在最左导出中,输入的句子形式从右到左进行扫描和替换。这种情况下的句子形式称为右句子形式。

Concept of Parse Tree

可以将它定义为导出的图形描述。导出的开始符号用作解析树的根。在每个解析树中,叶节点是终结符,内部节点是非终结符。解析树的属性是:中序遍历将产生原始输入字符串。

Concept of Grammar

语法对于描述构造良好的程序的句法结构至关重要。从文学意义上来说,它们表示自然语言对话的语法规则。语言学自英语、印地语等自然语言诞生以来,就尝试定义语法。

形式语言理论也适用于计算机科学领域,主要在编程语言和数据结构中。例如,在“C”语言中,精确的语法规则说明了如何通过列表和语句来创建函数。

Noam Chomsky 在 1956 年给出了语法的数学模型,该模型可有效书写计算机语言。

在数学上,语法 G 可以正式写为一个 4 元组 (N, T, S, P),其中 −

  1. NVN = 非终结符符号集合,即变量。

  2. T = 终结符符号集合。

  3. S = 开始符号,其中 S ∈ N

  4. P 表示终结符和非终结符的产生式。它具有形式 α → β,其中 α 和 β 是 VN ∪ ∑ 上的字符串,并且 α 的至少一个符号属于 VN

Phrase Structure or Constituency Grammar

Noam Chomsky 提出的短语结构语法基于成分关系。这就是它也被称为成分语法的缘故。它与依存语法相反。

Example

在给出语群语法示例之前,我们需要了解语群语法和语群关系的基本点。

  1. 所有相关的框架都是根据语群关系来查看句子结构的。

  2. 语群关系是从拉丁语和希腊语语法的主题-谓语划分中得出的。

  3. 基本从句结构是根据{s0}和{s1}来理解的。

我们可以按如下所示书写句子{s2}:

constituency relation

Dependency Grammar

它与语群语法相反,并且基于从属关系。是由吕西安·泰尼埃首次提出的。从属语法 (DG) 与语群语法相反,因为它缺少短语节点。

Example

在给出从属语法示例之前,我们需要了解从属语法和从属关系的基本点。

  1. 在 DG 中,语言单元(例如单词)通过定向链接相互连接。

  2. 动词成为从句结构的中心。

  3. 每个其他句法单元都通过定向链接连接到动词。这些句法单元称为{s3}。

我们可以按如下所示书写句子{s4}:

illustrating the dependency

使用语群语法的解析树称为基于语群的解析树;而使用从属语法的解析树称为基于从属的解析树。

Context Free Grammar

无上下文文法,也称为 CFG,是一种用于描述语言的符号以及正则语法的超集。它可以在下图中看到:

context free grammar

Definition of CFG

CFG 由一组具有以下四个部分的有限语法规则组成:

Set of Non-terminals

它由 V 表示。非终结符是表示一组字符串的句法变量,这些字符串进一步帮助定义语法所生成的语言。

Set of Terminals

它也被称为标记并由 Σ 定义。字符串是由终结符的基本符号组成的。

Set of Productions

它由 P 表示。该集合定义了如何组合终结符和非终结符。每个产生式 (P) 由非终结符、箭头和终结符(终结符序列)组成。非终结符称为产生式的左侧,终结符称为产生式的右侧。

Start Symbol

产生式从开始符号开始。它由符号 S 表示。非终结符符号始终被指定为开始符号。

Natural Language Processing - Semantic Analysis

语义分析的目的是从文本中提取确切的含义,或者你可以说词典含义。语义分析器的作用是检查文本的含义。

我们已经知道词法分析也处理单词的含义,那么词法分析和语义分析有什么不同呢?词法分析基于较小的标记,但另一方面,语义分析则关注较大的块。这就是为什么语义分析可以分为以下两部分:

Studying meaning of individual word

它是语义分析的第一部分,其中执行单个单词的含义的研究。这部分称为词法语义。

Studying the combination of individual words

在第二部分中,单个单词将被组合起来为句子提供含义。

语义分析最重要的任务是获得句子的恰当含义。例如,分析句子“在这句话中,说话者正谈论罗摩勋爵或一个叫罗摩的人。”这就是为什么语义分析器获得句子恰当含义的工作非常重要。

Elements of Semantic Analysis

以下是语义分析的一些重要元素:

Hyponymy

它可以被定义为泛词与泛词实例之间的关系。这里的泛词称为上位词,其实例称为下位词。例如,词“颜色”是上位词,而词“蓝色”、“黄色”等是下位词。

Homonymy

它可以被定义为拼写或形式相同但含义不同且不相关的词。例如,单词“Bat”是一个同音异义词,因为bat可以是击球的工具,也可以是夜间飞行的哺乳动物。

Polysemy

多义词是一个希腊词,意为“许多符号”。它是一个具有不同但相关意义的单词或短语。换句话说,我们可以说多义词具有相同的拼写但不同且相关的含义。例如,单词“bank”是一个多义词,具有以下含义:

  1. A financial institution.

  2. 此类机构所在的建筑物。

  3. “依靠”的同义词。

Difference between Polysemy and Homonymy

多义词和同音异义词都具有相同的语法或拼写。它们之间的主要区别在于,在多义词中,单词的含义是相关的,而在同音异义词中,单词的含义是不相关的。例如,如果我们谈论同一个单词“Bank”,我们可以写出“金融机构”或“河岸”的含义。在这种情况下,这将是同音异义词的例子,因为这些含义彼此无关。

Synonymy

它是指具有不同形式但表示相同或相近含义的两个词素之间的关系。示例有“作者/作家”、“命运/天命”。

Antonymy

它是指两个词素之间在其语义成分相对于某个轴对称的关系。反义词的范围如下所示:

  1. Application of property or not - 示例有“生活/死亡”、“确定性/不确定性”

  2. Application of scalable property - 示例有“富/穷”、“热/冷”

  3. Application of a usage - 示例有“父亲/儿子”、“月亮/太阳”。

Meaning Representation

语义分析创建句子的含义表示。但在进入与含义表示相关的概念和方法之前,我们需要了解语义系统的构建模块。

Building Blocks of Semantic System

在词语表示或词语含义的表示中,以下构建模块发挥着重要作用:

  1. Entities - 它表示个体,例如特定的人、地点等,例如,哈里亚纳邦。印度,罗摩都是实体。

  2. Concepts - 它表示个体的通用类别,例如人、城市等。

  3. Relations - 它表示实体和概念之间的关系。例如,罗摩是一个人。

  4. Predicates - 它表示谓语结构。例如,语义角色和格语法是谓词的示例。

现在,我们可以理解语义表征展示了如何将语义系统的构建模块放在一起。换句话说,它展示了如何将实体、概念、关系和谓词组合在一起,以描述一种情况。它还能够推理语义世界。

Approaches to Meaning Representations

语义分析使用以下方法来表征意义——

  1. 一阶谓词逻辑 (FOPL)

  2. Semantic Nets

  3. Frames

  4. Conceptual dependency (CD)

  5. Rule-based architecture

  6. Case Grammar

  7. Conceptual Graphs

Need of Meaning Representations

这里出现的一个问题是我们为什么需要语义表征?以下是原因——

Linking of linguistic elements to non-linguistic elements

第一个原因是借助语义表征,可以将语言元素与非语言元素联系起来。

Representing variety at lexical level

借助语义表征,可以在词汇层面上表征明确的规范形式。

Can be used for reasoning

能使用语义表征来推理,以验证世界中什么是真实的,以及从语义表征中推断知识。

Lexical Semantics

语义分析的第一个部分——研究各个单词的含义被称为词汇语义。它包括单词、子词、词缀(子单位)、复合词和短语。所有单词、子词等统称为词汇项。换句话说,可以说词汇语义是词汇项、句子含义和句子语法之间的关系。

以下是在词汇语义中涉及的步骤——

  1. 在词汇语义中执行单词、子词、词缀等词汇项的分类。

  2. 在词汇语义中执行单词、子词、词缀等词汇项的分解。

  3. 还分析不同词汇语义结构之间的差异和相似性。

NLP - Word Sense Disambiguation

我们知道,根据其在句子中的使用上下文,单词具有不同的含义。如果我们谈论人类语言,那么它们也是模棱两可的,因为许多单词可以根据其出现的上下文中以多种方式解释。

在自然语言处理 (NLP) 中,词义消歧可能被定义为确定单词的哪种含义因在特定上下文中使用该单词而被激活的能力。词法歧义、句法或语义歧义是任何 NLP 系统面临的第一个问题之一。具有高准确率的词性 (POS) 标记器可以解决单词的句法歧义。另一方面,解决语义歧义的问题称为 WSD(词义消歧)。解决语义歧义比解决句法歧义更难。

例如,考虑单词 “bass” 的不同含义的两个示例 −

  1. 我可以听到低音

  2. 他喜欢吃烤鲈鱼。

bass 词的出现清楚地表明了不同的含义。在第一句话中,这意味着 frequency ,在第二句话中,这意味着 fish 。因此,如果通过WSD消除歧义,则可以将正确含义分配给以上句子,如下所示:

  1. 我可以听到低音/频率声音。

  2. 他喜欢吃烤鲈鱼/鱼。

Evaluation of WSD

WSD的评估需要以下两个输入:

A Dictionary

第一个评估WSD的输入是词典,用于指定要消除歧义的含义。

Test Corpus

WSD需要的另一个输入是具有目标或正确含义的高注释测试语料库。测试语料库可以分为两类和{s3}:

  1. 这种语料库用于系统中,需要消除一小组单词的歧义。

  2. 这种语料库用于系统中,其中预期消除一段运行文本中所有单词的歧义。

Approaches and Methods to Word Sense Disambiguation (WSD)

WSD的方法和分类根据单词消除歧义中使用的知识来源。

现在让我们看看WSD的四种常规方法:

Dictionary-based or Knowledge-based Methods

顾名思义,对于消除歧义,这些方法主要依赖于字典、treasure和词汇知识库。它们不使用语料库证据来消除歧义。Lesk方法是Michael Lesk在1986年引入的开创性字典方法。Lesk定义,Lesk算法基于它的是 “measure overlap between sense definitions for all words in context” 。然而,在2000年,Kilgarriff和Rosensweig给出了简化的Lesk定义,即 “measure overlap between sense definitions of word and current context” ,这进一步意味着一次识别一个单词的正确含义。这里的当前上下文是句子或段落周围单词的集合。

Supervised Methods

对于消除歧义,机器学习方法利用经过含义注释的语料库来训练。这些方法假设上下文自身可以提供足够的证据来消除含义的歧义。在这些方法中,单词知识和推理被认为是不必要的。上下文被表示为单词的一组“特征”。它还包括有关周围单词的信息。支持向量机和基于内存的学习是WSD最成功的监督学习方法。这些方法依赖于大量的经过手动含义标记的语料库,创建这些语料库非常昂贵。

Semi-supervised Methods

由于缺乏训练语料库,大多数单词含义消除歧义算法都使用半监督学习方法。这是因为半监督方法使用标记数据和未标记数据。这些方法只需要少量带注释的文本和大量未注释的纯文本。半监督方法使用的是从种子数据引导程序的技术。

Unsupervised Methods

这些方法假设相似的含义出现在相似的上下文中。这就是为什么可以根据上下文相似性度量使用单词出现集群来从文本中归纳意义。此任务称为单词含义归纳或区分。非监督方法有可能克服由于不依赖手动工作而导致的知识获取瓶颈。

Applications of Word Sense Disambiguation (WSD)

单词含义消除歧义(WSD)几乎应用于语言技术的所有应用中。

现在让我们看看WSD的范围:

Machine Translation

机器翻译或MT是WSD最明显的应用。在MT中,WSD用于对具有不同含义的不同翻译的单词进行词汇选择。MT中的含义表示为目标语言中的单词。大多数机器翻译系统不使用显式WSD模块。

Information Retrieval (IR)

信息检索(IR)可以定义为一个软件程序,用于处理来自文档存储库中的信息(特别是文本信息)的组织、存储、检索和评估。该系统基本上协助用户查找所需的信息,但不会明确返回问题的答案。WSD用于解决提供给IR系统的查询的歧义。与MT一样,当前的IR系统并不明确地使用WSD模块,他们依赖于这样一个概念:用户将在查询中输入足够多的上下文,以便仅检索相关文档。

Text Mining and Information Extraction (IE)

在绝大多数应用程序中,执行文本的精确分析需要 WSD。例如,WSD 能帮助智能收集系统标记正确的单词。例如,医学智能系统可能需要标记“非法药物”,而不是“医疗药物”。

Lexicography

WSD 和词典编纂可以在循环中协同工作,因为现代词典编纂基于语料库。通过词典编纂,WSD 提供粗略的经验义项分组以及语义在统计上的重要上下文指标。

Difficulties in Word Sense Disambiguation (WSD)

以下是词义消歧 (WSD) 面临的一些困难:

Differences between dictionaries

WSD 的主要问题是确定词义,因为不同的义项可能非常密切相关。甚至不同的词典和词库也可以针对词义提供不同的划分。

Different algorithms for different applications

WSD 的另一个问题是,不同的应用程序可能需要截然不同的算法。例如,在机器翻译中,它采取目标词选择的形式;而在信息检索中,不需要词义清单。

Inter-judge variance

WSD 的另一个问题是,WSD 系统通常通过将其结果应用于任务来进行测试,并与人类的任务进行比较。这被称为人际差异问题。

Word-sense discreteness

WSD 中的另一个困难是,单词无法轻松划分成离散的次义项。

Natural Language Discourse Processing

人工智能最困难的问题是用计算机处理自然语言,或者换句话说,自然语言处理是人工智能中最困难的问题。如果我们讨论 NLP 中的主要问题,那么 NLP 中的一个主要问题就是话语处理 − 建立关于话语如何粘在一起形成 coherent discourse 的理论和模型。事实上,语言总是包含搭配、结构化和连贯的句子组,而不是像电影那样的孤立且不相关的句子。这些连贯的句子组称为话语。

Concept of Coherence

连贯性和话语结构在许多方面是相互关联的。连贯性与好文本的属性一起,用于评估自然语言生成系统的输出质量。这里出现的问题是文本连贯意味着什么?假设我们从报纸的每一页收集一句话,那它会是话语吗?当然不是。这是因为这些句子没有表现出连贯性。连贯的话语必须具备以下特性 −

Coherence relation between utterances

如果话语在其话语之间有有意义的联系,那么它将是连贯的。此属性称为连贯关系。例如,必须有一些解释来证明话语之间的联系。

Relationship between entities

使话语连贯的另一个属性是实体之间必须存在某种关系。这种连贯性称为基于实体的连贯性。

Discourse structure

关于话语的一个重要问题是话语必须具有什么样的结构。这个问题的答案取决于我们应用于话语的分割。话语分割可以定义为确定大型话语的结构类型。实施话语分割非常困难,但对以下 information retrieval, text summarization and information extraction 类型的应用程序非常重要。

Algorithms for Discourse Segmentation

在本节中,我们将学习话语分割的算法。算法如下所述 −

Unsupervised Discourse Segmentation

无监督话语分割的类别通常表现为线性分割。我们可以借助一个示例了解线性分割的任务。在该示例中,有一个任务是将文本分割为多段落单位;这些单位代表着原始文本的段落。这些算法依赖于内聚力,内聚力可以定义为使用特定的语言设备将文本单位联系在一起。另一方面,词汇内聚力是两 (2) 个单位中两个 (2) 个或更多单词之间的关系指示的内聚力,例如使用同义词。

Supervised Discourse Segmentation

较早的方法没有任何手工标记的分割边界。另一方面,监督话语分割需要有边界标记的训练数据。获取该数据非常容易。在监督话语分割中,话语标记或提示词起着重要的作用。话语标记或提示词是表示话语结构的单词或短语。这些话语标记是特定于领域的。

Text Coherence

词汇重复是找出话语结构的一种方法,但它不满足连贯话语的要求。为了实现连贯话语,我们必须特别关注连贯关系。正如我们所知,连贯关系定义了话语中言语之间的可能联系。赫布提出了以下此种关系 −

我们采用两个术语 S0S1 来表示两个 (2) 个相关句子的含义 −

Result

它推断出术语 S0 断言的状态可能导致术语 S1 断言的状态。例如,两个 (2) 个表述表明关系结果:拉姆被困在火中。他的皮肤被烧伤了。

Explanation

它推断出术语 S1 断言的状态可能导致术语 S0 断言的状态。例如,两个 (2) 个表述表明关系 − 拉姆与夏姆的朋友打架。他喝醉了。

Parallel

它根据断言 S0 推断出 p(a1,a2,…) 并根据断言 S1 推断出 p(b1,b2,…)。此处所有 i 的 ai 和 bi 相似。例如,两个 (2) 个表述是平行的 − 拉姆想要汽车。夏姆想要钱。

Elaboration

两种 (2) 断言 S0S1 推断出相同的命题 P。例如,两个 (2) 个表述表明关系详细说明:拉姆来自昌迪加尔。夏姆来自喀拉拉邦。

Occasion

当可以从断言 S0 推断出状态更改,可以从 S1 推断出其最终状态,反之亦然时,就会发生这种情况。例如,两个 (2) 个表述表明关系场:拉姆拿起书。他把它给了夏姆。

Building Hierarchical Discourse Structure

还可以通过连贯关系之间的层次结构考虑整个话语的连贯性。例如,以下段落可以表示为层次结构 −

  1. S1 − 拉姆去银行存钱。

  2. S2 − 然后他乘火车去了夏姆的布店。

  3. S3 − 他想买些衣服。

  4. S4 − 他没有新衣服参加派对。

  5. S5 − 他还想和夏姆谈谈他的健康状况。

building hierarchical discourse structure

Reference Resolution

对任何话语中的句子进行解释是另一项重要任务,为了实现此项任务,我们需要知道讨论的是谁或什么实体。此处,解释参考是关键要素。 Reference 可以定义为表示实体或个体的语言表达。例如,在段落中,ABC 银行经理拉姆在一家商店见到了他的朋友夏姆。他去见他,拉姆、他的、他等语言表达是参考。

同样, reference resolution 可以定义为确定哪些语言表达指代哪些实体的任务。

Terminology Used in Reference Resolution

我们在引用消解中使用以下术语 −

  1. Referring expression − 用于执行引用的自然语言表达称为引用表达。例如,上面使用的段落是引用表达。

  2. Referent − 它是被指的实体。例如,在上一个给出的示例中,Ram 是一个指称对象。

  3. Corefer − 当两个表达式用来指称同一个实体时,它们被称为共指。例如, Ramhe 是共指。

  4. Antecedent − 该术语具有使用另一个术语的许可。例如, Ram 是引用 he 的先行词。

  5. Anaphora & Anaphoric − 可能将其定义为对句中先前引入过的实体的引用。并且,引用表达式被称为指代性。

  6. Discourse model − 包含了话语中被引用的实体的表示以及它们之间的关系的模型。

Types of Referring Expressions

现在让我们看一看不同类型的指称表达式。下面描述了五种类型的指称表达式 −

Indefinite Noun Phrases

这种引用表示对听众来说在话语上下文中是新的实体。例如 − 在句子“Ram 有一天四处走动给他带了一些食物”中 − some 是一种不确定的引用。

Definite Noun Phrases

与上述相反,这种引用表示对听众来说在话语上下文中并不新或不可识别的实体。例如,在句子“我过去常读《印度时报》”中 − 《印度时报》是一个明确的引用。

Pronouns

这是一种明确的引用。例如,Ram 尽可能大声地笑了。单词 he 表示代词指称表达式。

Demonstratives

它们与简单的明确代词不同,并且表现不同。例如,this 和 that 是指示代词。

Names

它是最简单的指称表达式类型。它还可以是个人、组织和地点的名称。例如,在上面的示例中,Ram 是人名指称表达式。

Reference Resolution Tasks

下面描述了这两个引用解析任务。

Coreference Resolution

这是在文本中查找引用同一实体的指称表达式的任务。用简单的话说,这是找到共指表达式的任务。一组共指表达式被称为共指链。例如 - 他、首席经理和他的 - 这些是作为示例给出的第一段中的指称表达式。

Constraint on Coreference Resolution

在英语中,共指解析的主要问题是代词 it。其背后的原因是代词 it 有很多用法。例如,它可以像 he 和 she 一样指代。代词 it 还指代不指特定事物的物体。例如,下雨了。真的很棒。

Pronominal Anaphora Resolution

不同于共指解析,代词指代解析可能被定义为查找代词先行词的任务。例如,代词是他的,代词指代解析的任务是找到单词 Ram,因为 Ram 是先行词。

Part of Speech (PoS) Tagging

标记是一种分类,可定义为对标记自动分配描述。这里的描述符称为标记,可以表示一部分语音、语义信息等。

现在,如果我们谈论词性标记 (PoS),那么可以将其定义为将各个词性分配给给定单词的过程。通常称为词性标记。简而言之,我们可以说词性标记是一项用适当的词性标记句子中每个单词的任务。我们已经知道词性包括名词、动词、副词、形容词、代词、连词及其子类别。

大多数词性标记属于规则词性标记、随机词性标记和基于转换的标记。

Rule-based POS Tagging

最古老的标记技术之一是基于规则的词性标记。基于规则的标记程序使用词典或词库来获取每个单词的可能标记。如果某个单词有多个可能的标记,则基于规则的标记程序使用手写规则来识别正确的标记。还可以通过分析单词的语言特征以及其前导词和后跟词来对基于规则的标记进行歧义消除。例如,假设单词的前导词是冠词,那么该单词必须是名词。

顾名思义,基于规则的词性标记中的所有此类信息都以规则的形式编码。这些规则可以是——

  1. Context-pattern rules

  2. 或者,作为编译成有限状态自动机的正则表达式,与词义模糊的句子表征相交。

我们还可以通过基于规则的词性标记的两级架构来理解它——

  1. First stage −在第一阶段,它使用字典为每个单词分配一个潜在词性的列表。

  2. Second stage −在第二阶段,它使用大量手工编写的消除歧义规则,对列表进行分类,为每个单词分配一个词性。

Properties of Rule-Based POS Tagging

基于规则的词性标注器具有以下属性−

  1. 这些标注器是知识驱动的标注器。

  2. 基于规则的词性标注中的规则是手动建立的。

  3. 信息以规则的形式编码。

  4. 我们有有限数量的规则,大约 1000 条。

  5. 平滑和语言建模在基于规则的标注器中被明确定义。

Stochastic POS Tagging

另一种标注技术是随机词性标注。现在,这里出现的问题是哪些模型可以是随机的。包含频率或概率(统计)的模型可以称为随机模型。任何数量的不同词性标注方法都可以称为随机标注器。

最简单的随机标注器对词性标注应用以下方法−

Word Frequency Approach

在此方法中,随机标注器根据单词出现特定标注的概率对单词进行消歧。我们还可以说,在训练集中单词最常遇到的标注是分配给该单词的歧义实例的标注。此方法的主要问题是,它可能会产生不可接受的标注序列。

Tag Sequence Probabilities

这是随机标注的另一种方法,其中标注器计算给定标注序列发生的概率。它也称为 n-gram 方法。之所以这么称呼,是因为给定单词的最佳标注是由它与前 n 个标注一起出现的概率决定的。

Properties of Stochastic POST Tagging

随机词性标注器具有以下属性−

  1. 此词性标注基于标注发生的概率。

  2. It requires training corpus

  3. 语料库中不存在的单词没有概率。

  4. 它使用不同的测试语料库(而不是训练语料库)。

  5. 这是最简单的词性标注,因为它选择了与训练语料库中的单词关联的最频繁的标注。

Transformation-based Tagging

基于转换的标注也称为 Brill 标注。它是基于转换的学习 (TBL) 的一个实例,TBL 是一个用于文本的自动词性标注的基于规则的算法。TBL 允许我们以可读的形式获取语言知识,通过使用转换规则将一个状态转换为另一个状态。

它从前面解释的标注器(基于规则和随机)中汲取灵感。如果我们看到基于规则和转换标注器之间的相似性,那么像基于规则一样,它也基于规则来指定需要将哪些标注分配给哪些单词。另一方面,如果我们看到随机和转换标注器之间的相似性,那么它就像随机一样,它是一种机器学习技术,其中规则是从数据中自动推导出来的。

Working of Transformation Based Learning(TBL)

为了理解转换式标记器的作用和概念,我们需要理解基于转换式学习的作用。考虑以下理解 TBL 工作原理的步骤 −

  1. Start with the solution − 通常 TBL 以解决问题的某种方式开始,并按循环进行。

  2. Most beneficial transformation chosen − 在每个循环中,TBL 将选择最有利的转换。

  3. Apply to the problem − 上一步中选择转换将应用于问题。

当步骤 2 中选择的转换不再增添价值或不再有转换可选时,算法将停止。这种类型的学习最适合分类任务。

Advantages of Transformation-based Learning (TBL)

TBL 的优点如下 −

  1. 我们学习简单的规则小集,并且这些规则足以进行标记。

  2. TBL 中的开发和调试很容易,因为学习的规则易于理解。

  3. TBL 中将机器学习规则和人工生成规则交织在一起,因此减少了标记的复杂性。

  4. 基于转换式的标记器比马尔可夫模型标记器快得多。

Disadvantages of Transformation-based Learning (TBL)

TBL 的缺点如下 −

  1. 基于转换式的学习 (TBL) 不提供标记概率。

  2. TBL 中的培训时间很长,尤其是在大型语料库中。

Hidden Markov Model (HMM) POS Tagging

在深入研究 HMM 词性标注之前,我们必须理解隐马尔可夫模型 (HMM) 的概念。

Hidden Markov Model

HMM 模型可以定义为双嵌入随机模型,其中基础随机过程是隐藏的。只有通过生成观察序列的另一组随机过程才能观察到这个隐藏的随机过程。

Example

例如,进行了一系列隐藏掷硬币的实验,我们只看到由正面和反面组成的观察序列。过程的实际细节(使用了多少枚硬币,选择这些硬币的顺序)对我们来说是隐藏的。通过观察这组正面和反面的序列,我们可以建立多个 HMM 来解释这个序列。以下是针对此问题的一种形式的隐马尔可夫模型 −

hidden markov model

我们假设 HMM 中有两个状态,每个状态对应于选择不同的偏置硬币。下矩阵给出了状态转换概率 −

A = \begin{bmatrix}a11 & a12 \\a21 & a22 \end{bmatrix}

在此,

  1. aij = 从 i 到 j 从一个状态转移到另一个状态的概率。

  2. a11 + a12 = 1,a21 + a22 = 1

  3. P1 = 第一枚硬币出现正面的概率,即第一枚硬币的偏差。

  4. P2 = 第二枚硬币出现正面的概率,即第二枚硬币的偏差。

我们还可以创建一个隐马尔可夫模型,假设有 3 枚或更多硬币。

这样,我们就可以通过以下元素表征隐马尔可夫模型:

  1. N,模型中状态的数量(在上面的示例中,N = 2,只有两种状态)。

  2. M,可以在上面示例中每个状态中出现的不同观测值的数目(M = 2,即 H 或 T)。

  3. A,状态转换概率分布——上面的示例中的矩阵 A。

  4. P,每个状态中可观测符号的概率分布(在我们的示例中,为 P1 和 P2)。

  5. I,初始状态分布。

Use of HMM for POS Tagging

词性标注过程是找到最可能生成给定单词序列的标签序列的过程。我们可以通过使用隐马尔可夫模型 (HMM) 建模此词性标注过程,其中 tags 是生成 observable output, (即 words )的 hidden states

在数学上,在词性标注中,我们始终有兴趣找到一个标签序列 ©,以最大化:

P (C|W)

其中,

C = C1、C2、C3…​ CT

W = W1、W2、W3、WT

另一方面,事实是,我们需要大量的统计数据才能合理估计此类序列。然而,为了简化问题,我们可以应用一些数学变换以及一些假设。

使用隐马尔可夫模型进行词性标注是贝叶斯推理的一个特例。因此,我们将首先使用贝叶斯规则重新表述该问题,贝叶斯规则指出上述条件概率等于:

(PROB (C1,…​, CT) * PROB (W1,…​, WT | C1,…​, CT)) / PROB (W1,…​, WT)

我们可以在所有这些情况下消除分母,因为我们有兴趣找到最大化上述值的序列 C。这不会影响我们的答案。现在,我们的问题简化为找到最大化以下内容的序列 C:

PROB (C1,…​, CT) * PROB (W1,…​, WT | C1,…​, CT) (1)

即使减少上述表达式中的问题,仍需要大量数据。我们可以对上述表达式中的两个概率做出合理的独立性假设来克服该问题。

First Assumption

标签的概率取决于前一个(双语模型)或前两个(三语模型)或前 n 个标签(n 元模型),从数学角度可以解释如下 −

PROB (C1,…​, CT) = Πi=1..T PROB (Ci|Ci-n+1…Ci-1) (n-gram model)

PROB (C1,…​, CT) = Πi=1..T PROB (Ci|Ci-1) (bigram model)

句子的开端可以通过假定每个标签的初始概率来解释。

PROB (C1|C0) = PROB initial (C1)

Second Assumption

上式(1)中的第二个概率可以通过假设单词出现在独立于前一类或后一类中的单词的类别中来近似,从数学角度可以解释如下 −

PROB (W1,…​, WT | C1,…​, CT) = Πi=1..T PROB (Wi|Ci)

现在,基于以上两个假设,我们的目标简化为寻找一个使函数最大化的序列 C

Πi=1…​T PROB(Ci|Ci-1) * PROB(Wi|Ci)

现在出现的问题是,将问题转换成上述形式是否真的对我们有帮助。答案是肯定的。如果我们有一个带标签的大语料库,则上述公式中的两个概率可以计算为 −

PROB (Ci=VERB|Ci-1=NOUN) = (# of instances where Verb follows Noun) / (# of instances where Noun appears) (2)

PROB (Wi|Ci) = (# of instances where Wi appears in Ci) /(# of instances where Ci appears) (3)

Natural Language Processing - Inception

在本章中,我们将讨论自然语言处理中的自然语言始源。首先,让我们了解什么是自然语言语法。

Natural Language Grammar

对语言学来说,语言就是一组任意的声乐标志。我们可以说语言是有创造性的、受规则制约的、与生俱来的,同时又是普遍的。另一方面,它也是人性的。语言的性质因人而异。对语言的性质有很多误解。这就是理解模棱两可的术语 ‘grammar’ 的含义非常重要的原因。在语言学中,语法术语可以定义为语言运行所依据的规则或原理。广义上来说,我们可以将语法分为两类−

Descriptive Grammar

由语言学家和语法学家制定说话者语法的那套规则称为描述性语法。

Perspective Grammar

这是一种截然不同的语法概念,它试图维持语言的正确性标准。这一类与语言的实际运作关系不大。

Components of Language

研究语言时将其划分为相互关联的成分,这些成分是语言调查中约定俗成的、任意的划分。对这些成分的解释如下−

Phonology

语言的第一个成分是音系学。它是对某一特定语言的语音进行的研究。这个词的起源可以追溯到希腊语,其中“phone”意为声音或语音。语音学是音系学的一个分支,它从语音的产生、感知或物理属性的角度研究人类语言的语音。国际音标 (IPA) 是一种在语音学研究中以规则的方式表示人声的工具。在国际音标中,每个书面符号只表示一个语音,反之亦然。

Phonemes

它可以被定义为语音单位之一,它将一个语言中的单词与另一个单词区分开来。在语言学中,音位用斜杠书写。例如,音位 /k/ 出现于 kit、skit 这样的单词中。

Morphology

这是语言的第二个部分。它是对某一特定语言中单词的结构和分类的研究。这个词的起源来自希腊语,其中“morphe”一词意为“形式”。形态学考虑语言中词语形成的原理。换句话说,声音如何组合成有意义的单位,如前缀、后缀和词根。它还考虑了如何将单词归类为词性。

Lexeme

在语言学中,与某个单词所采用的形式集合相对应的形态分析抽象单位被称为词素。词素在句子中的用法由其语法范畴决定。词素可以是单个单词,也可以是多单词。例如,单词 talk 是单个词素的例子,它可能具有很多语法变体,如 talks、talked 和 talking。多词素可以由多个正字法词语组成。例如,speak up、pull through 等都是多词素的例子。

Syntax

这是语言的第三个部分。它是对单词按序排列以及组合成更大单位的研究。这个单词可以追溯到希腊语,其中单词 suntassein 的意思是“按序排列”。它研究句子的类型及其结构、从句、短语。

Semantics

这是语言的第四个部分。它是对意义如何传达的研究。意义可以与外部世界相关,也可以与句子的语法相关。这个单词可以追溯到希腊语,其中单词 semainein 的意思是“表示”、“展示”、“信号”。

Pragmatics

这是语言的第五个部分。它是对语言功能及其在语境中的使用进行的研究。这个词的起源可以追溯到希腊语,其中单词“pragma” 的意思是“行为”、“事务”。

Grammatical Categories

语法范畴可以定义为语言语法内单元或特征的一类。这些单元是语言的组成部分,并具有共同的特征集合。语法范畴也称为语法特征。

语法范畴的清单如下所述−

Number

这是最简单的语法范畴。我们有与这一范畴相关的两个术语——单数和复数。单数是“一个”的概念,而复数是“多个”的概念。例如,dog/dogs,this/these。

Gender

语法性通过人称代词和第三人称的变异来表达。语法性的例子有:单数——he、she、it;第一人称和第二人称形式——I、we 和 you;第三人称复数形式 they 是普通性或中性。

Person

另一个简单的语法范畴是人称。在此之下,识别出以下三个术语−

  1. 1st person − 说出话的人称为第一人称。

  2. 2nd person − 说话人或被说话的人称为第二人称。

  3. 3rd person − 我们正在议论的人或事物称为第三人称。

Case

它是语法中最难的范畴之一。它可以被定义为名词短语 (NP) 功能的指示,或名词短语与句子中的动词或其他名词短语之间的关系。我们有以下三个在人称和疑问代词中表达的格:

  1. Nominative case − 它是主语功能。例如,“我、我们、你、他、她、它、他们”和“谁”是主格。

  2. Genitive case − 它是所有格功能。例如,“我的/我的、我们的/我们的、他的、她的/她的、它的、他们的/他们的、谁的”是所有格。

  3. Objective case − 它是宾语功能。例如,“我、我们、你、他、她、他们、谁”是宾格。

Degree

这个语法范畴与形容词和副词有关。它有以下三个术语:

  1. Positive degree − 它表示一种品质。例如,“大、快、美”是比较级。

  2. Comparative degree − 它表示两个项目中其中一个项目的更大程度或程度。例如,“更大、更快、更美”是比较级。

  3. Superlative degree − 它表示三个或更多个项目中其中一个项目的最高程度或程度。例如,“最大、最快、最美”是最高级。

Definiteness and Indefiniteness

这两个概念都非常简单。正如我们所知,确定性表示一个指称者,该指称者是说话者或听众所知道、熟悉或可识别的。相反,不确定性表示一个不为人所知或不熟悉的指称者。这个概念可以在冠词与名词的共现中理解:

  1. definite article − the

  2. indefinite article − a/an

Tense

这个语法范畴与动词有关,可以定义为动作时间语言指示。现在时建立了一种关系,因为它表示事件发生的时间与说话时刻的关系。从广义上讲,它有以下三种类型:

  1. Present tense − 表示动作发生在现在。例如,“Ram 努力工作”。

  2. Past tense − 表示动作发生在现在之前。例如,“下雨了”。

  3. Future tense − 表示动作发生在现在之后。例如,“它将下雨”。

Aspect

这个语法范畴可以定义为对事件的看法。它可以有以下类型:

  1. Perfective aspect − 该视图被视为一个完整且完整的方面。例如,英语中的简单过去时 yesterday I met my friend, 在语态上是完成时的,因为它将事件视为完整且完整的。

  2. Imperfective aspect − 该视图被视为正在进行且不完整的方面。例如,英语中表示现在进行时的 present participle 时态 I am working on this problem, 在语态上是不完成时态的,因为它将事件视为不完整和正在进行的。

Mood

这个语法范畴有点难以定义,但它可以简单地表示为说话者对他/她谈论内容的态度的迹象。它也是动词的语法特征。它不同于语法时态和语法语态。语态的例子是陈述语态、疑问语态、祈使语态、禁止语态、虚拟语态、可能语态、祈愿语态、现在分词和过去分词。

Agreement

它也被称为一致。当一个词从依赖于它所关联的其他词中发生改变时,就会发生这种情况。换句话说,它涉及使不同单词或词性之间的某些语法范畴的值达成一致。以下是基于其他语法范畴的一致性:

  1. Agreement based on Person − 它是主语和动词之间的协调。例如,我们总是使用“I am”和“He is”,但从不使用“He am”和“I is”。

  2. Agreement based on Number − 这是主语和谓语之间的一致性。在这种情况下,第一人称单数、第二人称复数等都有特定的谓语形式。例如,第一人称单数:I really am,第二人称复数:We really are,第三人称单数:The boy sings,第三人称复数:The boys sing。

  3. Agreement based on Gender − 在英语中,代词和它的先行词在性别上是一致的。例如,He reached his destination. The ship reached her destination.

  4. Agreement based on Case − 这种一致性不是英语的一个重要特征。例如,who came first − he or his sister?

Spoken Language Syntax

书面英语和口语语法有很多共同特征,但除此之外,它们在许多方面也有所不同。以下特征区分了口语和书面英语语法:

Disfluencies and Repair

这个引人注目的特征使得口语和书面英语语法彼此不同。它分别称为不流畅现象,统称为修复现象。不流畅包括以下用法:

  1. Fillers words −有时在句子中间,我们使用一些填充词。它们被称为填充停顿词。例如有“uh”和“um”。

  2. Reparandum and repair −句子中重复的词段称为待修复词。在相同的语段中,已更改的单词称为修复。考虑以下示例以理解这一个点:

Does ABC airlines offer any one-way flights uh one-way fares for 5000 rupees?

在上述句子中,单程航班是待修复词,单程航班是修复词。

Restarts

在填充停顿后,会出现重新开始。例如,在上述句子中,当说话者开始询问单程航班然后停止,用填充停顿更正自己,然后重新开始询问单程票价时,就会重新开始。

Word Fragments

有时我们会用较小的单词片段来说话。例如, wwha-what is the time? 这里是 w-wha 单词片段。

NLP - Information Retrieval

信息检索 (IR) 可以定义为一个软件程序,该程序处理信息库(尤其是文本信息)中的组织、存储、检索和评估。该系统协助用户查找所需信息,但它不会明确返回问题的答案。它会通知包含所需信息的文档的存在和位置。满足用户需求的文档称为相关文档。一个完美的信息检索系统只会检索相关文档。

借助以下图表,我们可以了解信息检索 (IR) 的过程:

relevant output about information

从上图可以明显看出,需要信息的用户必须以自然语言查询的形式制定请求。然后,IR 系统会通过以文档的形式检索所需信息的相关输出作出响应。

Classical Problem in Information Retrieval (IR) System

信息检索研究的主要目标是开发一个用于从文档库中检索信息的模型。这里,我们将讨论一个经典的问题 ad-hoc retrieval problem ,该问题与 IR 系统相关。

在即席检索中,用户必须以描述所需信息的自然语言输入查询。然后,IR 系统将返回与所需信息相关的所需文档。例如,假设我们在互联网上搜寻某样东西,它提供了符合我们要求的一些确切页面,但也可能有一些不相关的页面。这是由于即席检索问题。

Aspects of Ad-hoc Retrieval

以下是 IR 研究中涉及的即席检索的一些方面:

  1. 用户在相关反馈的帮助下如何改进对查询的原始表述?

  2. 如何实现数据库合并,即如何将来自不同文本数据库的结果合并到一个结果集中?

  3. 如何处理部分损坏的数据?哪种模型适合同样情况?

Information Retrieval (IR) Model

在数学上,模型在许多科学领域中使用,旨在了解现实世界中的一些现象。信息检索模型预测并解释用户将在与给定查询相关的内容中找到什么。IR 模型基本上是一种模式,它定义了检索过程的上述方面,并包括以下内容:

  1. A model for documents.

  2. A model for queries.

  3. 将查询与文档进行比较的匹配功能。

在数学上,检索模型包括:

D - 文档表示。

R - 查询表示。

F - D、Q 及其之间关系的建模框架。

R (q,di) - 根据查询对文档进行排序的相似性函数。它也称为排名。

Types of Information Retrieval (IR) Model

信息模型 (IR) 模型可以分为以下三种模型:

Classical IR Model

它是实现最简单、最容易的 IR 模型。此模型基于容易识别和理解的数学知识。布尔、向量和概率是三个经典的 IR 模型。

Non-Classical IR Model

它与经典 IR 模型完全相反。这种 IR 模型基于相似性、概率和布尔运算之外的原则。信息逻辑模型、情景理论模型和交互模型是非经典 IR 模型的示例。

Alternative IR Model

增强经典信息检索模型并利用其他一些领域中的部分特定技术。群集模型、模糊模型和潜在语义索引 (LSI) 模型就是替代信息检索模型的示例。

Design features of Information retrieval (IR) systems

下面我们来了解信息检索系统的设计特征。

Inverted Index

大多数信息检索系统的主要数据结构是以倒排索引的形式存在的。我们可以将倒排索引定义为一种数据结构,针对每一个单词,列出所有包含该单词的文档以及该单词在各文档中出现的频率。这使得针对查询词搜索“命中”结果变得轻而易举。

Stop Word Elimination

停用词是指这些高频词不太可能用于搜索。它们具有较低的语义权重。所有此类词都在称为停用词表的一个列表中。例如,冠词“a”、“an”、“the”和介词“in”、“of”、“for”、“at”等都是停用词的示例。停用词表可以显著减少倒排索引的大小。根据齐普夫定律,涵盖几十个单词的停用词表将倒排索引的大小减少近一半。另一方面,有时停用词的排除可能会导致消除对搜索有用的术语。例如,如果我们从“维生素 A”中删除字母“A”,那么它将没有任何意义。

Stemming

词干提取作为形态分析的简化形式,是一种通过切断单词末尾来提取单词基本形式的启发式过程。例如,单词 laughing、laughs、laughed 将被词干提取为词根 laugh。

在我们的后续章节中,我们将讨论一些重要且有用的信息检索模型。

The Boolean Model

这是最古老的信息检索 (IR) 模型。该模型基于集合论和布尔代数,其中文档为术语集,而查询是对术语的布尔表达式。布尔模型可以定义为:

  1. D − 一组单词,即文档中出现的索引术语。这里,每个术语要么存在 (1),要么不存在 (0)。

  2. Q − 布尔表达式,其中项是索引项而运算符是逻辑积 − AND,逻辑和 − OR 和逻辑差 − NOT

  3. F − 布尔代数介于项集以及文档集如果我们谈论相关性反馈,那么在布尔信息检索模型中,相关性预测可以定义如下 −

  4. R − 当且仅当文档满足查询表达式时,被预测为与查询表达式相关 −

((𝑡𝑒𝑥𝑡 ˅ 𝑖𝑛𝑓𝑜𝑟𝑚𝑎𝑡𝑖𝑜𝑛) ˄ 𝑟𝑒𝑟𝑖𝑒𝑣𝑎𝑙 ˄ ˜ 𝑡ℎ𝑒𝑜𝑟𝑦)

我们可以通过将查询项解释为文档集的明确定义来解释这个模型。

例如,查询项 “economic” 定义索引有项 “economic” 的文档集。

现在,在将项与布尔 AND 运算符组合之后结果会是什么?它会定义小于或等于任何单独项的文档集。例如,带有项 “social”“economic” 的查询将产生同时索引有这两个项的文档集。换句话说,具有两种集合交集的文档集。

现在,在将项与布尔 OR 运算符组合之后结果会是什么?它会定义大于或等于任何单独项的文档集。例如,带有项 “social”“economic” 的查询将产生索引有项 “social”“economic” 的文档集。换句话说,具有两种集合并集的文档集。

Advantages of the Boolean Mode

布尔模型的优点如下 −

  1. 基于集合的最简单的模型。

  2. 易于理解和实现。

  3. 仅检索完全匹配

  4. 为用户提供对系统的掌控感。

Disadvantages of the Boolean Model

布尔模型的缺点如下 −

  1. 模型的相似度函数为布尔。因此,不会有部分匹配。这可能让用户烦恼。

  2. 在这个模型中,布尔运算符的使用比关键单词有更大的影响。

  3. 查询语言富有表现力,但也很复杂。

  4. 对检索到的文档没有排名。

Vector Space Model

由于布尔模型的上述缺点,Gerard Salton 和他的同事们提出了一个基于 Luhn 相似度准则的模型。Luhn 制定的相似度准则指出,“两个表示在给定元素及其分布上越一致,则它们表示相似信息的概率就越高。”

考虑以下重要方面,以便更多地了解向量空间模型 −

  1. 索引表示形式(文档)和查询被视为嵌入在高维欧几里得空间中的向量。

  2. 文档向量与查询向量的相似度测量通常是它们之间夹角的余弦。

Cosine Similarity Measure Formula

余弦是一种归一化点积,可以用以下公式计算:

得分\lgroup\vec{d}\vec{q}\rgroup= \frac{\sum_{k=1}^m d_{k}\:.q_{k}}{\sqrt{\sum_{k=1}^m\lgroup d_{k}\rgroup^2}m\lgroup q_{k}\rgroup^2 }

得分\lgroup \vec{d} \vec{q}\rgroup =1\:当\:d =q

得分\lgroup\vec{d}\vec{q}\rgroup=0\:当\:d\:和\:q\:不共享任何项目时

Vector Space Representation with Query and Document

查询和文档由一个二维向量空间表示。术语为 carinsurance 。在向量空间中有一个查询和三个文档。

two dimensional vector space

作为对术语汽车和保险的响应,排名最高的文档将为文档 d2 ,因为 qd2 之间的角度最小。造成这一结果的原因在于,汽车和保险这两个概念在d2中都很突出,因此具有较高的权重。另一方面, d1d3 也提到了这两个术语,但在每个案例中,其中一个在文档中都不是一个中心重要的术语。

Term Weighting

术语加权表示向量空间中术余的权重。术语的权重越高,术语对余弦的影响就越大。应该为模型中更重要的术语分配更多权重。现在这里出现的问题是,我们如何对此建模。

执行此操作的一种方法是将文档中的单词作为其术语权重计数。但是,您认为这会是一种有效的方法吗?

另一种更有效的方法是使用 term frequency (tfij), document frequency (dfi)collection frequency (cfi)

Term Frequency (tfij)

可以将其定义为 djwi 出现的次数。术语频率捕获的信息是一个词在给定文档中的显着程度,或者换句话说,我们可以说,术语频率越高,该词就越能很好地描述该文档的内容。

Document Frequency (dfi)

可以将其定义为集合中出现wi的文档总数。这是信息性的一个指标。与语义不集中的单词不同,语义集中的单词将在文档中多次出现。

Collection Frequency (cfi)

可以将其定义为集合中 wi 出现的总数。

数学上,$df_{i}\leq cf_{i}\:and\:\sum_{j}tf_{ij} = cf_{i}$

Forms of Document Frequency Weighting

现在,让我们了解文档频率加权的不同形式。形式如下所述:

Term Frequency Factor

这也称为术语频率因子,这意味着如果某个术语 t 经常出现在某个文档中,那么包含 t 的查询应检索该文档。我们可以将单词 term frequency (tfij)document frequency (dfi) 组合成一个权重,如下所示:

权重 \left ( i,j \right ) =\begin{cases}(1+log(tf_{ij}))log\frac{N}{df_{i}}\:如果\:tf_{i,j}\:\geq1\\0 \:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\: 如果\:tf_{i,j}\:=0\end{cases}

在此 N 是文档的总数。

Inverse Document Frequency (idf)

这是另一种文档频率加权形式,通常称为 idf 加权或逆文档频率加权。idf 加权的重要点在于该术语在集合中的稀缺度是其重要性的衡量标准,而重要性与出现频率成反比。

在数学上,

idf_{t} = log\left(1+\frac{N}{n_{t}}\right)

idf_{t} = log\left(\frac{N-n_{t}}{n_{t}}\right)

在此,

N = 集合中的文档

nt = 包含术语 t 的文档

User Query Improvement

任何信息检索系统的首要目标都必须是准确性,即根据用户要求生成相关文档。然而,这里出现的问题是我们如何通过改进用户的查询形成样式来改进输出。当然,任何 IR 系统的输出都取决于用户的查询,格式良好的查询会产生更准确的结果。用户可以在 relevance feedback 的帮助下改进自己的查询,这是任何 IR 模型的一个重要方面。

Relevance Feedback

相关反馈采集到最初因给定查询而返回的输出。此初始输出可用于收集用户信息,并了解该输出是否与执行新查询相关。反馈可分类如下:

Explicit Feedback

它可以定义为从相关性评估者获得的反馈。这些评估者还将指示从查询中检索到的文档的相关性。为了改进查询检索性能,相关反馈信息需要与原始查询插值。

系统评估者或其他用户可以通过使用以下相关性系统明确指示相关性:

  1. Binary relevance system − 此相关反馈系统指示文档是针对给定查询相关 (1) 还是不相关 (0)。

  2. Graded relevance system − 分级相关反馈系统根据使用数字、字母或描述的分级来指示文档针对给定查询的相关性。描述可以是“不相关”、“有点相关”、“非常相关”或“相关”。

Implicit Feedback

它是从用户行为中推断出的反馈。行为包括用户花在查看文档上的时间、选择了哪些文档进行查看、哪些未查看、页面浏览和滚动操作等。隐式反馈的一个最佳示例是 dwell time ,它衡量用户在搜索结果中链接到的页面上花费了多少时间。

Pseudo Feedback

它也称为盲反馈。它提供了一种自动局部分析的方法。相关反馈的人工部分在伪相关反馈的帮助下实现自动化,这样用户无需进一步交互即可获得改进的检索性能。此反馈系统的主要优点是它不需要像明确相关反馈系统那样的评估者。

考虑以下步骤来实施此反馈:

  1. Step 1 − 首先,必须将初始查询返回的结果视为相关结果。相关结果的范围必须处于前 10-50 个结果中。

  2. Step 2 − 现在,从文档中选择 20-30 个最相关的术语,例如使用词频 (tf)-逆文档频率 (idf) 权重。

  3. Step 3 − 将这些术语添加到查询中,并匹配返回的文档。然后返回最相关的文档。

Applications of NLP

自然语言处理 (NLP) 是一项新兴技术,它派生出我们在当下看到的各种形式的 AI,并且它在为人类和机器之间创造无缝且互动式界面中的用处将继续成为当今和未来越来越多的认知应用程序的首要任务。在这里,我们将讨论NLP的一些非常有用的应用。

Machine Translation

机器翻译 (MT),将一种源语言或文本翻译成另一种语言的过程,是NLP最重要的应用之一。借助以下流程图,我们可以了解机器翻译的过程−

machine translation

Types of Machine Translation Systems

有不同类型的机器翻译系统。让我们看看不同的类型是什么。

Bilingual MT System

双语 MT 系统生成两种特定语言之间的翻译。

Multilingual MT System

多语言 MT 系统生成任何一对语言之间的翻译。它们在本质上可能是单向的或双向的。

Approaches to Machine Translation (MT)

让我们现在了解机器翻译的重要方法。MT 的方法如下 −

Direct MT Approach

这是较不流行但 MT 的最古老方法。使用此方法的系统能够将 SL(源语言)直接翻译成 TL(目标语言)。此类系统本质上是双语的,并且是单向的。

Interlingua Approach

使用 Interlingua 方法的系统将 SL 翻译成称为 Interlingua (IL) 的中间语言,然后将 IL 翻译成 TL。Interlingua 方法可以通过以下 MT 金字塔理解 −

interlingua approach

Transfer Approach

这种方法涉及三个阶段。

  1. 在第一阶段,源语言 (SL) 文本转换为抽象的 SL 导向表示。

  2. 在第二阶段,SL 导向表示转换为等效的目标语言 (TL) 导向表示。

  3. 在第三阶段,生成最终文本。

Empirical MT Approach

这是 MT 的一种新兴方法。基本上,它以平行语料库的形式使用大量的原始数据。原始数据由文本及其翻译组成。基于类比、基于示例和基于内存的机器翻译技术使用基于经验的 MT 方法。

Fighting Spam

如今最常见的问题之一是垃圾邮件。这使得垃圾邮件过滤器变得格外重要,因为它是针对此问题的第一道防线。

可以通过考虑主要的误报和漏报问题来使用 NLP 功能开发垃圾邮件过滤系统。

Existing NLP models for spam filtering

以下是用于垃圾邮件过滤的一些现有 NLP 模型 −

N-gram Modeling

N-Gram 模型是较长字符串的 N 字符切片。在此模型中,在处理和检测垃圾邮件时同时使用不同长度的 N-gram。

Word Stemming

垃圾邮件发送者通常会更改垃圾邮件中攻击性单词的一个或多个字符,以便他们可以突破基于内容的垃圾邮件过滤器。这就是为什么我们可以说,如果基于内容的过滤器无法理解电子邮件中单词或短语的含义,那么它们就没有用。为了消除垃圾邮件过滤中的此类问题,开发了一种基于规则的词干提取技术,它可以匹配看起来和听起来相似的单词。

Bayesian Classification

这现已成为垃圾邮件过滤的广泛使用技术。在统计技术中,电子邮件中单词的出现率针对其在未经请求的(垃圾邮件)和合法的(火腿)电子邮件消息数据库中的典型出现率进行衡量。

Automatic Summarization

在这个数字时代,最有价值的是数据,或者你可以说信息。然而,我们是否真正获得有用的以及所需数量的信息?答案是“否”,因为信息超载,我们获取知识和信息的能力远远超过理解它们的能力。我们迫切需要自动文本摘要和信息,因为互联网上的信息泛滥不会停止。

文本摘要可以定义为创建较长文本文档的简短准确摘要的技术。自动文本摘要将帮助我们在更短的时间内获得相关信息。自然语言处理 (NLP) 在开发自动文本摘要中起着重要作用。

Question-answering

自然语言处理 (NLP) 的另一个主要应用是问答。搜索引擎将世界的信息触手可及,但是当回答人类用自然语言提出的问题时,它们仍然存在缺陷。我们有谷歌等大型科技公司也在朝着这个方向努力。

问答是人工智能和 NLP 领域的计算机科学学科。它专注于构建系统,这些系统可以自动回答人类用其自然语言提出的问题。理解自然语言的计算机系统具有程序系统的能力,可以将人类编写的句子翻译成内部表示,以便系统能够生成有效答案。可以通过对问题进行语法和语义分析来生成确切的答案。词汇差距、歧义和多语言是 NLP 在构建良好的问答系统时面临的一些挑战。

Sentiment Analysis

自然语言处理 (NLP) 的另一个重要应用是情绪分析。顾名思义,情绪分析用于识别多条帖子中的情绪。它还用于识别未明确表达情绪的情感。公司正在使用自然语言处理的应用程序情绪分析来识别客户在线上的意见和情感。它将帮助公司了解客户对产品和服务有何看法。借助情绪分析,公司可以从客户帖子中判断其整体声誉。通过这种方式,我们可以说,除了确定简单的情绪外,情绪分析还可以理解上下文中包含的情绪,以帮助我们更好地理解表达意见背后的出发点。

Natural Language Processing - Python

在本章中,我们将学习使用 Python 进行语言处理。

以下功能使 Python 与其他语言不同:

  1. Python is interpreted − 在运行 Python 程序之前,无需对其进行编译,因为解释器在运行时处理 Python。

  2. Interactive − 我们可以直接与解释器交互来编写 Python 程序。

  3. Object-oriented − Python 本质上是面向对象的,它使用程序设计中的此技术将代码封装在对象中,因此用这种语言可以更轻松地编写程序。

  4. Beginner can easily learn − Python 也被称为初学者语言,因为它非常容易理解,并且支持开发广泛的应用程序。

Prerequisites

Python 3 的最新版本是 Python 3.7.1,可用于 Windows、Mac OS 和大多数 Linux OS。

  1. 对于 Windows,我们可以转到链接 www.python.org/downloads/windows/ 下载并安装 Python。

  2. 对于 Mac OS,可以使用链接 www.python.org/downloads/mac-osx/

  3. 对于 Linux,不同的 Linux 版本使用不同的软件包管理器来安装新软件包。例如,要在 Ubuntu Linux 上安装 Python 3,我们可以从终端使用以下命令:

$sudo apt-get install python3-minimal

为更深入地学习 Python 编程,请阅读 Python 3 基本教程 – Python 3

Getting Started with NLTK

我们将使用 Python 库 NLTK(自然语言工具包)对英语文本进行文本分析。自然语言工具包 (NLTK) 是一组 Python 库,专门设计用于识别和标记在自然语言(如英语)文本中找到的词性。

Installing NLTK

在开始使用 NLTK 之前,我们需要将其安装。我们可以使用以下命令在 Python 环境中安装它:

pip install nltk

如果我们正在使用 Anaconda,则可以使用以下命令构建 NLTK 的 Conda 软件包:

conda install -c anaconda nltk

Downloading NLTK’s Data

安装 NLTK 之后,另一项重要任务是下载其预设文本存储库,以便可以轻松使用它。但是,在此之前,我们需要像导入其他任何 Python 模块一样导入 NLTK。以下命令将帮助我们导入 NLTK:

import nltk

现在,使用以下命令下载 NLTK 数据:

nltk.download()

安装所有可用的 NLTK 软件包需要一些时间。

Other Necessary Packages

其他一些 Python 软件包(如 gensimpattern )对于文本分析以及通过使用 NLTK 构建自然语言处理应用程序也是非常必要的。软件包可以按如下所示安装:

gensim

gensim 是一个健壮的语义建模库,可用于许多应用程序。我们可以通过以下命令安装它:

pip install gensim

pattern

它可用于使 gensim 软件包正常工作。以下命令有助于安装 pattern:

pip install pattern

Tokenization

标记化可以定义为将给定文本分解为较小的称为标记的单元的过程。单词、数字或标点符号可以是标记。它也可以称为词语分割。

Example

Input - 床和椅子是家具的类型。

bed and chair

NLTK 提供了用于标记化的不同包。我们可以根据我们的要求使用这些包。包及其安装详细信息如下 -

sent_tokenize package

此包可用于将输入文本划分为句子。我们可以使用以下命令导入它 -

from nltk.tokenize import sent_tokenize

word_tokenize package

此包可用于将输入文本划分为单词。我们可以使用以下命令导入它 -

from nltk.tokenize import word_tokenize

WordPunctTokenizer package

此包可用于将输入文本划分为单词和标点符号。我们可以使用以下命令导入它 -

from nltk.tokenize import WordPuncttokenizer

Stemming

由于语法原因,语言包含很多变异。语言(包括英语和其他语言)的变异在于它们具有不同的单词形式。例如,像 democracydemocraticdemocratization 这样的单词。对于机器学习项目而言,对于机器而言非常重要的是理解上面这样的这些不同的单词具有相同的词根。这就是在分析文本时提取单词词根非常有用的原因。

词干提取是一个启发式过程,它通过切断词尾来帮助提取单词的词根。

NLTK 模块提供的用于词干提取的不同包如下 -

PorterStemmer package

这个词干提取包使用波特算法来提取单词的词根。借助以下命令,我们可以导入这个包 -

from nltk.stem.porter import PorterStemmer

例如, ‘writing’ 输入到这个词干提取器后, ‘write’ 将是输出。

LancasterStemmer package

这个词干提取包使用兰开斯特算法来提取单词的词根。借助以下命令,我们可以导入这个包 -

from nltk.stem.lancaster import LancasterStemmer

例如, ‘writing’ 输入到这个词干提取器后, ‘writing’ 将是输出。

SnowballStemmer package

这个词干提取包使用 Snowball 算法来提取单词的词根。借助以下命令,我们可以导入这个包 -

from nltk.stem.snowball import SnowballStemmer

例如, ‘writing’ 输入到这个词干提取器后, ‘write’ 将是输出。

Lemmatization

这是提取单词词根的另一种方式,通常旨在通过使用词汇和形态分析来删除屈折词尾。词形还原后,任何单词的词根称为词素。

NLTK 模块提供了用于词形还原的以下包 -

WordNetLemmatizer package

这个包将根据单词是用作名词还是动词来提取词根。可以使用以下命令导入这个包 -

from nltk.stem import WordNetLemmatizer

Counting POS Tags–Chunking

借助切分,我们可以识别词性(POS)和短语。这是自然语言处理中的重要过程之一。正如我们了解用于创建标记的标记化过程,切分实际上是对这些标记进行标记。换句话说,我们可以说我们可以借助切分过程获取句子的结构。

Example

在以下示例中,我们将通过使用 NLTK Python 模块实现名词短语切分,它是一种切分类别,它将在句子中找到名词短语块。

考虑以下步骤来实现名词短语切分 -

Step 1: Chunk grammar definition

在此步骤中,我们需要定义块分析的语法。它将由我们需要遵循的规则组成。

Step 2: Chunk parser creation

接下来,我们需要创建块解析器。它将解析语法并提供输出。

Step 3: The Output

在此步骤中,我们将以树状格式获取输出。

Running the NLP Script

首先从导入 NLTK 包开始 −

import nltk

现在,我们需要定义句子。

在此,

  1. DT is the determinant

  2. VBP is the verb

  3. JJ is the adjective

  4. IN is the preposition

  5. NN is the noun

sentence = [("a", "DT"),("clever","JJ"),("fox","NN"),("was","VBP"),
   ("jumping","VBP"),("over","IN"),("the","DT"),("wall","NN")]

接下来,语法应以正则表达式的形式给出。

grammar = "NP:{<DT>?<JJ>*<NN>}"

现在,我们需要为解析语法定义一个解析器。

parser_chunking = nltk.RegexpParser(grammar)

现在,解析器将按如下方式解析句子 −

parser_chunking.parse(sentence)

接下来,输出将显示在变量中,如下所示:-

Output = parser_chunking.parse(sentence)

现在,以下代码将帮助你以树的形式绘制你的输出。

output.draw()
running the nlp script