首页 理论教育IMDb电影评论的情感分析

IMDb电影评论的情感分析

【摘要】:情感分析的商业价值在于,可提早得知顾客对公司或产品的观感,以调整销售策略的方向。IMDb网络电影数据库是一个与电影相关的在线数据库。IMDb开始于1990年,自1998年起称为亚马逊旗下的网站,至今已经累积大阿玲的电影信息。IMDb收录了共400多万部电影作品数据。IMDb数据集共有50000项“影评文字”,分为训练数据和测试数据各25000项,每一项“影评文字”都标记为“正面评价”或“负面评价”。⑦将“影评文字”转换成“数字列表”。

情感分析又称为意见挖掘,是使用“自然语言处理”、文字分析等方法找出作者某些话题上的态度、情感、评价或情绪。情感分析的商业价值在于,可提早得知顾客对公司或产品的观感,以调整销售策略的方向。

IMDb网络电影数据库是一个与电影相关的在线数据库。IMDb开始于1990年,自1998年起称为亚马逊旗下的网站,至今已经累积大阿玲的电影信息。IMDb收录了共400多万部电影作品数据。

IMDb数据集共有50000项“影评文字”,分为训练数据和测试数据各25000项,每一项“影评文字”都标记为“正面评价”或“负面评价”。经过大量“影评文字”训练后,此模型可以用于预测“影评文字”是“正面评价”或“负面评价”。

(1)数据预处理

①导入所需模块。

②下载IMDb数据。

③解压IMDb数据。

④读取IMDb数据函数。

⑤读取IMDb数据。

⑥建立token。

⑦将“影评文字”转换成“数字列表”。

x_train_seq=token.texts_to_sequences(train_text)

x_test_seq=token.texts_to_sequences(test_text)

⑧截长补短让所有“数字列表”的长度都为100。

x_train=sequence.pad_sequences(x_train_seq,maxlen=100)

x_test=sequence.pad_sequences(x_test_seq,maxlen=100)

(2)建立模型

①建立Sequential模型。

model=Sequential()

②将“嵌入层”加入模型。

model.add(Embedding(output_dim=32,input_dim=2000,input_length=100))

③将“平坦层”加入模型。

model.add(Flatten())

④将“隐藏层”加入模型。

model.add(Dense(units=256,activation='relu'))

⑤将“输出层”加入模型。

model.add(Dense(units=1,activation='sigmoid'))

(3)进行训练

①定义训练方式。

model.compile(loss='binary_crossentropy',optimizer='adam',metrics=['accuracy'])

②开始训练。

train_history=model.fit(x_train,np.array(y_train),validation_split=0.2,epochs=10,batch_size=100,verbose=2)

(4)以测试数据评估模型准确率

scores=model.evaluate(x_test,np.array(y_test),verbose=1)print(scores[1])

(5)进行预测

predict=model.predict_classes(x_test)

预测结果会放在prediction中,可以与y_test进行比对,查看预测效果。