logo

NLP:Nature Language Processing

wangzf / 2022-04-05


目录

NLP 介绍

自然语言处理(Nature Language Processing, NLP)是人工智能和语言学领域的分支学科。 此领域探讨如何处理及运用自然语言。NLP 包括多方面和步骤,基本有认知理解生成等部分。

自然语言认知和理解是让计算机把输入的语言变成有意思的符号和关系,然后根据目的再进行处理。 所以简单来说,NLP 就是让计算机理解人类语言。为了达到这样的目的,我们需要在理论上基于 数学和统计理论建立各种自然语言,然后通过计算机来实现这些语言模型。因为人类语言的多样性和复杂性, 所以总体而言 NLP 是一门极具挑战的学科和领域。

NLP 难度

NLP 是个非常庞杂的领域,学习和应用起来都颇有难度。 难度体现在 语言场景学习算法语料 三个方面:

NLP 结构

从自然语言的角度出发,NLP 结构如下:

NLP 模型

NLP 的模型基本包括两类:

NLP 任务

NLP 层面

NLP 技术

NLP 语料库

构建 NLP Pipeline

img

数据

London is the capital and most populous city of England and the United 
Kingdom. Standing on the River Thames in the south east of the island of 
Great Britain, London has been a major settlement for two millennia. It 
was founded by the Romans, who named it Londinium.

[数据来源 Wikipedia article “London”]

上面这段文本包含了一些有用的事实,我们需要让计算机能够理解以下内容:

分句

Sentence Segmentation

NLP Pipeline 的第一步就是 将文本分割为句子:

  1. “London is the capital and most populous city of England and the United Kingdom.”
  2. “Standing on the River Thames in the south east of the island of Great Britain, London has been a major settlement for two millennia.”
  3. “It was founded by the Romans, who named it Londinium.”

分词

Word Tokenization

img

img

分词对于英文来说非常容易,可以根据单词之间的空格对文本句子进行分割。 并且,也可以将标点符号也看成一种分割符,因为标点符号也是有意义的。

词性标注

Predicting Parts of Speech for Each Token

通过词性标注,可以知道每个词在句子中的角色,即词性,词性包括名词(noun)、 动词(verb)、形容词(adjective)等等,这样可以帮助计算机理解句子的意思。

通过将每个单词(以及其周围的一些额外单词用于上下文)输入到预先训练的词性分 类模型中进行词性标注. 词性分类模型完全基于统计数据根据以前见过的相似句子 和单词来猜词性。

img

img

通过词性标注后的信息,可以收集到一些关于句子的基本含义了,例如:可以看到句子中看到有"London"、 和 “captial” 两个名词(Noun),因此该句子可能在谈论 “London”。

Text Lemmatization

在 NLP 中,称此过程为 词性限制(lemmatization),即找出句子中每个单词的最基本形式或词缀(lemma)。

示例

在自然语言中,单词或词会以不同的形式同时出现:

上面两个句子中都在表达 pony,但是两个句子中使用了 pony 不同的词缀。

在计算机处理文本时,了解每个单词的基本形式很有帮助,这样就可以知道两个句子都在 表达相同的概念,否则,字符串 “pony” 和 “ponies” 对于计算机来说就像两个完全 不同的词.

同样对于动词(verb)道理也一样:

London 句子示例

img

识别停用词

Identifying Stop Words

停用词的识别主要是用来考虑句子中每个单词的重要性。

自然语言汇总有很多填充词,例如: “and”,“the”,“a”,这些词经常出现。 在对文本进行统计时,这些填充词会给文本数据带来很多噪音,因为他们比其他 单词更频繁地出现。一些 NLP Pipeline 会将它们标记为 停用词(Stop Word)。 这些停用词需要在进行任何统计分析之前将其过滤掉。

img

句法依赖分析

Dependency Parsing

命名实体识别

共指解析

构建 Python NLP Pipeline

img

参考 & TODO