一、前期工作
二、神经网络模型构建
三、训练模型与测试
大家好,我是微学AI,今天给大家带来一个京东商品评论的情感分析与预测实战案例。
进几年网上购物越来越流行,在加上疫情的缘故,很多人足不出户,使得更多人选择网购。这让京东、淘宝、拼多多等电商平台得到了很大的发展机遇。但是,这种需求也引发了更多的店商平台的激列竞争。在这种电商平台激烈竞争的大背景下,除了提高商品质量、压低商品价格外。了解更多消费者的心声对干店商平台来说也变得越来越有必要,其中非常重要的方式就是对消费者的文本评论等非结构化的数据进行内在信息的数据挖掘和分析,有利于对应商品的生产厂家自身竞争力的提升。
对某商品的评论进行文本挖掘分析,目的是分析用户对某商品的情感倾向,从商品评论中挖掘产品的优点和缺点,提炼出不同品牌商品的卖点。
import data_loader
from tensorflow.keras.preprocessing import sequence
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Embedding
from tensorflow.keras.layers import Flatten
from tensorflow.keras.utils import to_categorical
import numpy as np
代码中导入data_loader模型,做数据处理和导入,详细代码包和数据集:https://pan.baidu.com/s/14Do1RrZXOzZokNAcX4Yz2A
提取码:wxai
x_train,y_train,x_test,y_test =data_loader.load_data()
#创建评论数据的词库索引
vocalen,word_index = data_loader.createWordIndex(x_train,x_test)
print(vocalen)
#获取训练数据每个词的索引
x_train_index =data_loader.word2Index(x_train,word_index)
x_test_index=data_loader.word2Index(x_test,word_index)
#最大长度的限制
maxlen =25
x_train_index =sequence.pad_sequences(x_train_index,maxlen=maxlen )
x_test_index =sequence.pad_sequences(x_test_index,maxlen=maxlen)
y_train= to_categorical(y_train)
y_test= to_categorical(y_test)
model =Sequential()
model.add(Embedding(trainable=False, input_dim= vocalen+1, output_dim=300, input_length=maxlen))
model.add(Flatten())
model.add(Dense(256, activation='relu'))
model.add(Dense(256, activation= 'relu'))
model.add(Dense(256, activation='relu'))
model.add(Dense(1, activation= 'sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam',metrics=['accuracy']) #二分类问题
model.fit(x_train_index, y_train,batch_size=512, epochs=200)
score, acc = model.evaluate(x_test_index, y_test)
print('Test score:', score)
print('test accuracy:',acc)
test = np.array([x_test_index[1000]])
print(test)
print(test.shape)
predict = model.predict(test)
print(predict)
print(np.argmax(predict,axis=1))
运行结果:
Test score: 1.740
test accuracy: 0.8563
在测试集的准确率为0.8563
机器借助模型可以对评论标注情感分析的标签,本文适合入门者阅读调试,后续将进行文本主题挖掘,分析商品的优点与缺点,提供需要改进的方向。