自然语言情感分析

简介:

情感分析是基于自然语言处理的分类技术,主要解决的问题是判断一段话是正面的还是负面的。

例如网站上人们会发表评论,商家可以通过情感分析知道用户对产品的评价。还有不少基金公司会利用人们对某公司和行业的看法态度来预测未来股票的跌涨等。

首先处理数据:Keras自带了imdb的数据和调取数据的函数,所以我们直接调用load_data()函数就从亚马孙S3中下载了数据,并给每个词标注了一个索引(index),创建了字典,每段文字的每个词对应了一个数字。

import keras
import numpy as np
from keras.datasets import imdb
import matplotlib.pyplot as plt
(X_train, y_train), (X_test, y_test) = imdb.load_data()
np.reshape(X_train[0], (1, -1))
print(X_train.shape)
print(y_train.shape)
avg_len = list(map(len, X_train))
np.mean(avg_len)
plt.hist(avg_len, bins=range(min(avg_len), max(avg_len) + 50, 50))
plt.show()

跑出来的词频分布直方图是这样的:

 

处理数据有这么几个步骤:

1.文字分词。可以按分隔符,如英文用空格分词

2.建立字典,给每个词标号

3.把段落通过查字典翻译成数字,变成一个array

最后的工作就是做匹配然后进行分析了。

 

建模:

我们遇到了文字长短不均和词与词之间有联系的问题,所以引入了嵌入技术。其实就是给每个词赋一个向量。(在深入学习中叫张量tensor)。含义相近的词赋予的向量也相近。

1.通过多层全连接神经网络模型训练(假设模型中的所有上一层和下一层是相互连接)

from keras.models import Sequential
from keras.layers import Dense
from keras.layers import Flatten
from keras.layers.embeddings import Embedding
from keras.preprocessing import sequence
import keras
import numpy as np
from keras.datasets import imdb
(X_train, y_train), (
  • 6
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值