TensorFlow知识图谱实战
上QQ阅读APP看书,第一时间看更新

1.2.2 自然语言处理小练习:酒店评论的情感分类

本章开始介绍的是纯理论知识,目的是向读者阐述自然语言的传统方法和深度学习方法的差异,并介绍了其不同和各自的优缺点。下面以酒店评论为例,使用深度学习方法和Python语言做一个简单情感分类。

说明

本例的目的是为了演示一个demo,如果读者已经安装好开发环境,就可以直接运行。如果没有,可学习完本章后再回头练习。笔者会在后续的章节中详细介绍每一步的过程和设计方法。

第一步:数据的准备

做深度学习的第一步也是重要的一步,就是数据的准备,数据的来源多种多样,既有不同类型的数据集也有根据项目需求由项目组自行准备的数据集,本例中笔者准备一份酒店评论的数据集,形式如图1.1所示。

图1.1 一份酒店评论的数据集

这里由逗号将一个文本分成两部分,分别是情感分类和评价主体。其中标记为数字“1”的是正面评论,而标注为数字“0”的是负面评论。

第二步:数据的处理

我们遇到的第一个问题就是数据的处理。对于计算机来说,直接的文本文字是计算机所不能理解的,因此一个最简单的办法将文字转化成数字符号进行替代,之后对每个数字生成一个独一无二的“指纹”,也就是“词嵌入(embedding)”。在这里读者只需要将其理解成使用一个“指纹”来替代汉字字符。代码处理如下:

(1)创建3个“容器”,对切分出的字符进行存储。

(2)读取字符和文本。

(3)读取字符并获得字符的长度。

(4)将文本内容转换成数字符号,并对长度进行补全。

第三步:模型的设计

对于深度学习而言,模型的设计是一个非常重要的内容。本例只是演示,采用的是最为简单的一个判别模型,代码如下(仅供读者演示,详细的内容在后续章节中介绍):

第四步:模型的训练

下面一步是对模型的训练,在这里需要定义模型的一些训练参数,如优化器、损失函数、准确率的衡量,以及训练的循环次数等。代码如下(这里不要求读者理解,能够运行即可):

完整的程序代码如程序1-1所示。

【程序1-1】

第五步:模型的结果和展示

最后一步是模型的结果展示,这里使用epochs=10,即运行10轮对数据进行训练,结果如图1.2所示。

图1.2 结果展示

可以看到,经过10轮训练后,准确率达到了96%,这是一个不错的成绩。