当前位置: 首页 > 网络应用技术

NLP基本 - 中国半读:迪亚曼电影评论的情感分析

时间:2023-03-06 21:27:14 网络应用技术

  NLP(自然式处理)是指自然语言处理,他的目的是允许计算机理解人类的单词。

  在下面,我将在20,000次Beancium电影审查培训之后,并最终推断出AI的结果后,将进入神经网络的新电影评论。

  阅读本文后,您可以获得以上技能。

  首先,我们希望找到要训练的数据集。我在这里是CSV文件,其中有50,000张电影和电视评论从douban获得。

  他的格式如下:

  电影名称1至5分的内容受到赞扬,并且0个不良评论的数据是这样:

  代码是:

  这里完成了一些任务:

  2.1中文单词重点关注这些单词。

  单词是中文独有的,英语不存在。

  以下是英语句子。

  这是英语感官。

  这句话中有几个单词?

  有6个,因为每个单词之间都有空格,所以计算机可以轻松识别和处理它。

  123456以下是中文句子。

  欢迎来到我的掘金博客。

  这句话中有几个单词?

  恐怕您必须阅读几次,然后将您的生活经验结合在一起以分裂,并且您也有各种各样的纠结。

  当今研究的重点不是分裂,因此我们一口气服用并使用了第三方下巴分割。

  安装方法

  代码与Python 2/3兼容

  介绍后,可以将呼叫分开。

  为什么有一个单词?因为单词是最小的语言单元,所以您可以在理解单词后理解语言。

  对于中文,在不同的情况下,相同的词是不同的。

  遵循以下“北京大学”:

  因此,中文的自然语言很难划分单词。

  在这一点上,我们的产品是以下格式:

  文本实际上,计算机无法直接知道文本,它只知道0和1。

  由于多次转换,您可以看到这些文本和图片。

  对于字母A,我们使用65说二进制为0100 0001。

  0100 000165a大写字母A0100 00100 001066B大写字母B0100 00100 00100C大写字母C010068D大写字母D0100 010169E Capital E.当您看到a,b,c时,实际上是0100001,0100001,0100 0010,0100 0010,01000011。

  提示:这就是为什么当您比较字母的字母时

  那么,我们的准备好的文本也需要转换为数字,这样更便于计算。

  3.1 fit_on_texts 分类有一个类叫Tokenizer,它是分词器,用于给文本分类和序列化。

  这里的分词器和上面我们说的中文分词不同,因为编程语言是老外发明的,人家不用特意分词,他起名叫分词器,就是给词语分类。

  上面做的就是找文本里有几类词语,并编上号。

  看输出结果知道:2句话最终抽出5种不同的词语,编号1~5。

  3.2 texts_to_sequences 文本变序列文本里所有的词语都有了编号,那么就可以用数字表示文本了。

  这样,计算机渐渐露出了笑容。

  3.3 pad_sequences 填充序列虽然给它提供了数字,但这不是标准的,有长有短,计算机就是流水线,只吃统一标准的数据。

  pad_sequences 会把序列处理成统一的长度,默认选择里面最长的一条,不够的补0。

  这样,长度都是一样了,计算机露出了开心的笑容。

  少了可以补充,但是如果太长怎么办呢?

  太长可以裁剪。

  至此,我们的产物是这样的格式:

  所谓模型,就是流水线设备。我们先来看一下流水线是什么感觉。

  看完了吧,流水线的作用就是进来固定格式的原料,经过一层一层的处理,最终出去固定格式的成品。

  模型也是这样,定义一层层的“设备”,配置好流程中的各项“指标”,等待上线生产。

  4.1 Sequential 序列你可以理解为整条流水线,里面包含各类设备(层)。

  4.2 Embedding 嵌入层嵌入层,从字面意思我们就可以感受到这个层的气势。

  嵌入,就是插了很多个维度。一个词语用多个维度来表示。

  下面说维度。

  二维的是这样的(长,宽):

  三维是这样的(长,宽,高):

  100维是什么样的,你能想象出来吗?除非物理学家,否则三维以上很难用空间来描述。但是,数据是很好体现的。

  性别,职位,年龄,身高,肤色,这一下就是5维了,1000维是不是也能找到。

  对于一个词,也是可以嵌入很多维度的。有了维度上的数值,我们就可以理解词语的轻重程度,可以计算词语间的关系。

  如果我们给颜色设置R、B、G 3个维度: | 颜色 | R |G |B | | --- | --- | --- | --- | | 红色|255|0|0| | 绿色|0|255|0| | 蓝色|0|0|255| | 黄色|255|255|0| | 白色|255|255|255| | 黑色|0|0|0|

  下面见证一下奇迹,懂色彩学的都知道,红色和绿色掺在一起是什么颜色?

  来,跟我一起读:红色+绿色=黄色。

  到数字上就是:[255,0,0]+[0,255,0] = [255,255,0]

  这样,颜色的明暗程度,颜色间的关系,计算机就可以通过计算得出了。

  只要标记的合理,其实计算机能够算出:国王+女性=女王、精彩=-糟糕,开心>微笑。

  然后,您说计算机理解单词的含义,这并不像您在情感上的理解,而是所有数值计算。

  嵌入式层是标记单词的合理维度。

  让我们看一下嵌入式层的定义:嵌入(vocab_size,embedding_dim,input_length)

  4.3 GlobalAweragePooling1d全球平均汇总到一个维度主要是维度。最终,我们只需要一个维度的结果,这是赞美或不良评论,但是现在有太多的维度,需要降低。

  4.4密度也缩小了尺寸,掉落到末端,最终输出就像在流线前进入面粉,水,肉,蔬菜和其他原材料一样。该活动是一个面包。

  4.5活动激活函数激活是激活函数,其主要作用是提供网络的非线性建模功能。

  SO称为线性问题是可以用线路解决的问题。您可以来到Tensorflow Playground进行测试。

  如果使用线性思维,神经网络可以快速区分这两个样本。

  但是,如果是以下样本,则无法解决该行。

  如果您使用Relu激活该功能,则可以轻松区分。

  这是激活函数的作用。

  常用的如下所示,其功能和图形下面。

  我们使用了Relu和Sigmoid。

  我们使用Sigmoid的最后一个密集,因为我们的数据浓度0是一个不好的评论,1是赞美。我们希望该模型的输出结果在0到1之间,以便我们可以判断它是否更接近赞美还是不良评论。这是正确的。

  4.1 FIT训练模型等同于启动装配线机器,通过训练数据并验证数据以及调用训练方法进行培训。

  启动后,日志打印就是这样:

  训练后,神经网络将根据输入和输出自动调整参数,包括确定单词的特定维度以及维度的值。该过程已成为黑匣子,这也是人工智能的地方和传统编程设计。

  最后,呼叫save_weights可以保存结果。

  5.1预测预测将返回预测值。这不是分类值,而是一个回归值(也可以分类,例如输出1或0,但我们要观察0.51和0.49有什么区别)。我们假设0.5是分区值,上面的。是赞美,以下是不好的评论。

  结果打印了:

  本文的阅读对象是主要人员。为了促进理解,他们故意省略了一些细节,知识点相对较浅。目的是介绍过程和原则,只有输入。完整的代码已由GitHub上传,请单击此处https://github.com/hlwgy/douban_embedding