第八章 自然语言文本处理

1. 8.1自然语言文本处理简介

ppt page 1:

大家好,接下来给大家讲解第8章自然语言文本处理第1节,本节内容是自然语言文本处理简介

 

ppt page 2:

本小节学习目标:

1.理解自然语言文本处理相关概念

2. 理解Tensorflow文本处理的一般步骤

 

ppt page 3:

首先介绍一下什么是自然语言处理。

自然语言处理就是,利用计算机为工具对人类特有的书面形式和口头形式的自然语言的信息,进行各种类型处理和加工的技术。 

自然语言处理是人工智能领域中的一个重要研究方向,主要研究人与计算机之间用人类语言进行有效沟通的理论和方法。自然语言文本处理通过输入一段文本,让计算机识别这段文本表达的含义,包括文本本身的含义甚至表达的情感。

 

ppt page 4

自然语言处理的三个层面

1、 词法分析:包括分词、词性标注、命名实体识别。

2、 句法分析:是对输入的文本以句子为单位,进行分析以得到句子的句法结构的处理过程。

3、 语义分析:最终目的是理解句子表达的真实语义。

 

如下图所示,词法分析是分析这一句话哪些是动词,哪些是名词等;句法分析是分析这一句话的词语语法功能,比如哪个是主语,哪些是谓语等;语义分析是指这句话最终要表达出来的意思是什么。

 

ppt page 5:

自然语言处理的难点一是词法歧义,我们下面通过一些例子来说明

分词歧义:词语的切分边界比较难确定。例如严守一把手机关了,在不同的语境有不同的理解,如以下两种:

• 严守一/把/手机/关/了

• 严守/一把手/机关/了

词性标注歧义:同一个词语在不同的上下文中词性不同。如

• 我/计划/v 考/研/,此处计划为动词

• 我/完成/了/计划/n,此处计划为名词

命名实体识别歧义:人名、专有名称、缩略词等未登录词的识别困难。例如以下这些词:

• 高超/nr/a         华明/nr/nt         移动/nt/v

 

ppt page 6:

自然语言处理的难点二是句法歧义,句法层面上的依存关系受行文的影响。例如”咬死了猎人的狗”这句话在以下不同环境中,语法功能是不同的。

1)那只狼咬死了猎人的狗,此处,它是宾语

2)咬死了猎人的狗失踪了,此处,它是主语

 

ppt page 7:

自然语言处理的难点三是语义歧义,如以下英文句子:

At last, a computer that understands you like your mother.

它有几种不同的理解:

含义1:计算机会像你的母亲那样很好的理解你。

含义2:计算机理解你喜欢你的母亲。

含义3:计算机会像理解你母亲那样去理解你。

 

ppt page 8:

自然语言处理的难点四是语用歧义,如“你真坏,在不同的场景有不同的理解。

当对干了坏事的成年人说时,是一种严厉的苛责。

当妈妈对淘气的儿子说时,实际表达的是对儿子的一种疼爱。

当恋爱中的女孩对男友说时,则是女孩在男友面前撒娇的一种表现。

 

ppt page 9:

处理模型的选择

在自然语言文本处理,对输入的一段文本进行学习训练后,会生成一种对应输出。

对输入而言是一段自然语言文本,与上下文之间有着密切的关系,要理解这段文本,一般都会用到循环神经网络(RNN)模型。

对于输出而言,根据实际应用场景,主要有几种情况:

一、应用在稿件编写、对图像进行描述等场景中。这类场景都是针对一个主题,经过学习,输出一段有实际表达含义的语言文本。采用的神经网络模型一般包括了CNN和RNN模型。

二、应用在电影评论、图书评论等情感分析场景中。这类场景需要对输入的评价意见区别出积极或者消极的情感来。采用的模型包括基础模型、LSTM模型等。

三、应用在机器翻译中,例如输入一段英文语句,然后将其翻译为中文语句的场景。采用的模型一般是seq2seq模型。

 

ppt page 10:

文本映射

接下来看看文本映射。在前面章节对机器学习算法的将讲解中,我们都是直接对数字的处理。但是,自然语言文本并不是数字,如果将这些机器学习算法应用到自然语言文本的处理中,就必须将文本转化成数字。对于实现从文本到数字的转化,其实现方法经过了不断演化,主要的方法包括如下几种:

Ø 1.词袋模型(bag of words model

Ø 2.TF-IDF算法

Ø 3.词的分布式表示

Ø 4.Word2vec方法

接下来分别介绍这几种方式

 

ppt page 11:

1.词袋模型(bag of words model

词袋模型是将一个文本或文档看做是一袋子单词,不考虑其语法和词序关系,每个词都是独立的,然后对这一袋子单词进行编码。例如,我们需要处理的语句是:

TensorFlow is a good tool

我们需要将语句中出现的所有单词都转换为对应的数字。首先构造所有单词的词典,如下所示:

该词典中,数字表示为该单词的位置,即索引。

 

ppt page 12:

然后使用该词典对语句进行编码,一般采用的词向量的编码方式为one-hot编码。即如果词典中的单词在语句中出现了,则词典中该位置索引被标识为1,否则标识为0,按这种方式

TensorFlow is a good tool

对应标识为:

[1,1,1,1,1]

同样,我们对一个新的语句:

Machine learning is a good tool

依照词典进行编码,则表示为:

[0,1,1,1,1,1],因为Machine在词典中没有出现,所以对应的位置应当标记成0

 

ppt page 13:

词袋模型处理过程:

(1)构造所有单词的词典;

(2)使用该词典,采用one-hot编码对语句进行编码。

 

词袋模型特征:

第一,词袋模型没有考虑词语在文中上下文之间的相关信息,损失了语句中的单词的顺序特征。常常会出现两个含义完全不同的语句,如果使用的单词完全一样,则对应的编码也是相同的,例如以下两名英文句子:

这两个语句转化的结果是一样的  [1,1,1,1,1,1,1,1,1,1]

第二,对于每一个语句,无论语句长短如何,都会使用相同词典长度的编码。为了保证词典的覆盖范围,一般情况下不会选择非常大的词汇量作为词典。因此,语句的表示向量会非常稀疏

第三,每一个单词都具有相同的数字化索引,无法体现单词在语句中的重要性。例如,所处理语句中的单词TensorFlowis具有相同的数字索引值1,但是对于理解语句,单词TensorFlow明显比单词is更重要,词袋模型无法体现这种强弱关系

 

ppt page 14:

TF-IDF算法

为了解决词袋模型中每一个单词都具有相同的索引,无法体现不同单词重要程度的问题,创建了TF-IDF(Term-Frequency-Inverse Document Frequency,词频-逆向文件频率)算法。该算法利用词频和文件频率来评估一个单词对于一个文件集或一份文件对于一个语料库的重要程度。它从两方面来判断单词的权重值,分别是词频和文件频率

词频(TF):某个单词在文档中出现的频率,根据词频来确定每个单词的权重,公式如图1所示:

我们认为某个单词在文档中出现的次数越多,它就越重要

但是,对于一些通用的单词,如the、a等,虽然在文档中出现的频率都非常高,但是对于主题并没有太大的作用,所以单纯使用词频是不够的。

逆向文件频率(Inverse Document FrequencyIDF):对通用词,在每一篇文档中出现的频率都非常高,权重降低。而与文档主题有关的单词,仅仅会在某一篇文档中出现的频率较高,权重提高。

IDF的主要思想就是:在整个语料库中,包含词条t的文档越多,就说明词条t极有可能是通用单词,其与文档主题关联性较小,IDF较小;反之,包含词条t的文档越少,就说明 词条t极有可能与文档的主题相关,IDF越大。对于某一特定词条的IDF,上课以用总文件数除以包含该词条之文件的数目,再对得到的商对数来进行计算,公式为图2

 

ppt page 15:

结合词频和文件频率这两方面的权重设计,就找到了一种适合的计算方法,使得一个词条与主题的关联越强,其权重越大;关联越弱,其权重越小。所以对于每个单词在每个文档中的TF-IDF值可以表示为下图所示:

 

其中,Wtf是文档中词条的词频,Wdf是包含该词条的所有文档的总频率

清楚了一个词条的TF-IDF后,在实际计算时就能够找到重要的词语,过滤掉不那么重要的词语,从而可以在保证有效性的情况下降低运算量。

 

ppt page 16:

词的分布式表示

Harris1954年提出了分布假说认为:上下文相似的单词,语义也相似。词的语义由其上下文决定。

基于分布假说,对自然语言的表示分为两步:

(1)选择一种方式描述上下文

(2) 选择一种模型描述目标词与其上下文之间的关系。

在实践中,词的分布式表示实现方法分为基于矩阵的分布表示、基于聚类的分布表示、基于神经网络的分布表示三类。

基于神经网络的分布表示又称为词向量或词嵌入。由于神经网络词向量表示技术通过神经网络技术对上下文,以及上下文与目标此词之间的关系进行建模,因此在进行复杂的上下文,具有明显的优势。

除了解决单词顺序问题,还需要解决one-hot编码方式具有维度过大的缺点,因此在词向量表示中还进行了两点改进:一是将词向量中的每个元素由整形改为浮点型,变为整个实数范围;二是将原来稀疏的巨大维度压缩并嵌入到一个更小维度的空间

 

ppt page 17:

Word2vec方法

它是一种基于神经网络的词分布表示的实现方法,提出并实现了两种模型:

1CBOWContinuous Bag of Words,连续词袋模型)是通过上下文来预测目标词的模型;

2Skip-gram语言模型是从一个词文字来预测上下文的模型。

如下图所示:

 

CBOW模型是一个典型的神经网络。需要关注的是输入层、隐层、输出层以及损失函数。

skip-gram语言模型的训练过程类似,只不过输入和输出刚好相反。

 

ppt page 18:

Tensorflow文本处理的一般步骤

对于自然语言文本的处理一般分为文本初始化、模型构建、模型训练和评估。对于模型的构建、训练和评估,可以分为如下步骤:

(1)首先需要对原始数据进行初始化,主要包括了对原始数据的的清洗,主要包括对大小写字符、标点符号、数字、空白字符以及自然语言处理中的停用词(stopword)的处理;

(2)根据处理后的数据,通过生成词汇表、转化词编码的方式,将我们需要把文字与数值之间建立一个映射字典,并对输入数据进行编码;

(3)构建处理模型,一般在循环神经网络模型基础上进行调整;

(4)训练、评估模型。

 

ppt page 19:

本节小结:本节主要讲解自然语言文本处理相关概念及Tensorflow文本处理的一般步骤。本节讲到这里,谢谢大家