目的:使用IMDB电影评论数据集进行二分类实验,基于深度学习的全连接神经网络模型DNN
平台:pycharm,tensorflow2.0
代码:

"""
# -*- coding: utf-8 -*-@author: SYM
@software: PyCharm
@time: 2022/5/10 0010 10:52
"""
#from keras.datasets import imdb
#import numpy as np
#from keras import models
#from keras import layers
#2.0需要使用后面的
from tensorflow.keras import models
from tensorflow.keras import layersimport matplotlib.pyplot as plt#from keras.datasets import imdb#(train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=10000)import numpy as np
old = np.load
np.load = lambda *a,**k: old(*a,**k,allow_pickle=True)
from keras.datasets import imdb
(train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=10000)#(train_data,train_labels),(test_data,test_labels) = imdb.load_data(num_words=10000)
# #第一条评论的单词索引列表
# print(train_data[0])*
# #1表示正面品论,0表示负面评论2
# print(train_labels[0])
# #取所有测试单词所有的最大的索引值
# print(max([max(sequence) for sequence in train_data]))# #某条评论解码为英文
# word_index = imdb.get_word_index()
# reverse_word_index = dict(
#     [(value,key) for (key,value) in word_index.items()]
# )
# decoded_review = ' '.join(
#     [reverse_word_index.get(i-3,'?') for i in train_data[0]]
# )
# print(decoded_review)#转换为10000维的向量,索引的位置是1,其他位置是0
def vectorize_sequences(sequences,dimension=10000):results = np.zeros((len(sequences),dimension))for i, sequence in enumerate(sequences):results[i,sequence] = 1.return results
#数据向量化
x_train = vectorize_sequences(train_data)
x_test = vectorize_sequences(test_data)
print(x_train[0])
#标签向量化
y_train = np.asarray(train_labels).astype('float32')
y_test = np.asarray(test_labels).astype('float32')#模型定义
model = models.Sequential()
#第一层全连接层
model.add(layers.Dense(16,activation='relu',input_shape=(10000,)))
#第二层全连接层
model.add(layers.Dense(16,activation='relu'))
#第三层全连接层
model.add(layers.Dense(1,activation='sigmoid'))
#定义优化器,损失函数,指标
model.compile(optimizer='rmsprop',loss='binary_crossentropy',metrics=['accuracy'])#取10000用于验证集
x_val = x_train[:10000] #验证集
partial_x_train = x_train[10000:]y_val = y_train[:10000] #验证集
partial_y_trail = y_train[10000:]#训练模型
history = model.fit(partial_x_train,partial_y_trail,epochs=4,batch_size=512,validation_data=(x_val,y_val))history_dict = history.history
print(history_dict.keys())loss_values = history_dict['loss']
val_loss_values = history_dict['val_loss']
acc_values = history_dict['accuracy']
val_acc_values  = history_dict['val_accuracy']epochs = range(1,len(loss_values)+1)# plt.plot(epochs,loss_values,'bo',label='Training loss') #bo是蓝色圆点
# plt.plot(epochs,val_loss_values,'b',label='Validation loss') #b是蓝色实线
# plt.title('Training and validation loss')
# plt.xlabel('Epochs')
# plt.ylabel('Loss')
# plt.legend()
# plt.show()
#
# plt.clf() #清空图表#acc_values = history_dict['accuracy']
#val_acc_values  = history_dict['val_accuracy']# plt.plot(epochs,acc_values,'bo',label='Training acc') #bo是蓝色圆点
# plt.plot(epochs,val_acc_values,'b',label='Validation acc') #b是蓝色实线
# plt.title('Training and validation accuracy')
# plt.xlabel('Epochs')
# plt.ylabel('Accuracy')
# plt.legend()
# plt.show()plt.figure(figsize=(10,8))
plt.plot(epochs, acc_values, color='red', marker='+', label='Training accuracy')
plt.plot(epochs, loss_values, color='blue', marker='*', label='Training loss')
plt.plot(epochs, val_acc_values, color='black', marker='p', label='validation accuracy')
plt.plot(epochs, val_loss_values, color='black', marker='>', label='validation loss')
plt.title('Training and validation accuracy/loss')
plt.xlabel('Epochs')
plt.ylabel('Accuracy')
#plt.plot(color="blue",lebel="loss")
#plt.plot(color="red",lebel="accuracy")
plt.legend()
#plt.show()
plt.show(block=True)result = model.evaluate(x_test,y_test)
print(result)predictResult = model.predict(x_test)
print(predictResult)



代码结果图:

基于DNN的IMDB电影数据集文本分类相关推荐

  1. ML之K-means:基于K-means算法利用电影数据集实现对top 100 电影进行文档分类

    ML之K-means:基于K-means算法利用电影数据集实现对top 100 电影进行文档分类 目录 输出结果 实现代码 输出结果 先看文档分类后的结果,一共得到五类电影: 实现代码 # -*- c ...

  2. ML之H-Clusters:基于H-Clusters算法利用电影数据集实现对top 100电影进行文档分类

    ML之H-Clusters:基于H-Clusters算法利用电影数据集实现对top 100电影进行文档分类 目录 输出结果 实现代码 输出结果 先看输出结果 实现代码 # -*- coding: ut ...

  3. 基于Kaggle数据的词袋模型文本分类教程

     基于Kaggle数据的词袋模型文本分类教程 发表于23小时前| 454次阅读| 来源FastML| 0 条评论| 作者Zygmunt Z 词袋模型文本分类word2vecn-gram机器学习 w ...

  4. 【文本分类】基于BERT预训练模型的灾害推文分类方法、基于BERT和RNN的新闻文本分类对比

    ·阅读摘要: 两篇论文,第一篇发表于<图学学报>,<图学学报>是核心期刊:第二篇发表于<北京印刷学院学报>,<北京印刷学院学报>没有任何标签. ·参考文 ...

  5. 基于Keras搭建CNN、TextCNN文本分类模型

    基于Keras搭建CNN.TextCNN文本分类模型 一.CNN 1.1 数据读取分词 1.2.数据编码 1.3 数据序列标准化 1.4 构建模型 1.5 模型验证 二.TextCNN文本分类 2.1 ...

  6. paddle2.0高层API实现自定义数据集文本分类中的情感分析任务

    paddle2.0高层API实现自定义数据集文本分类中的情感分析任务 本文包含了: - 自定义文本分类数据集继承 - 文本分类数据处理 - 循环神经网络RNN, LSTM - ·seq2vec· - ...

  7. 【文本分类】基于改进TF-IDF特征的中文文本分类系统

    摘要:改进TFIDF,提出相似度因子,提高了文本分类准确率. 参考文献:[1]但唐朋,许天成,张姝涵.基于改进TF-IDF特征的中文文本分类系统[J].计算机与数字工程,2020,48(03):556 ...

  8. 基于协同训练的半监督文本分类算法

    标签: 半监督学习,文本分类 作者:炼己者 --- 本博客所有内容以学习.研究和分享为主,如需转载,请联系本人,标明作者和出处,并且是非商业用途,谢谢! 如果大家觉得格式看着不舒服,也欢迎大家去看我的 ...

  9. AI:神经网络IMDB电影评论二分类模型训练和评估

    AI:Keras神经网络IMDB电影评论二分类模型训练和评估,python import keras from keras.layers import Dense from keras import ...

  10. 自然语言处理(NLP):05 基于 doc2vec 特征抽取+电影情感文本分类

    本章节研究内容: doc2vec 提取句子特征+基于doc2vec 特征工程 文本分类问题 基于Doc2Vec情感分析 词向量在NLP被广泛应用,通过引入Doc2Vec,不仅可以对单个词进行词向量表示 ...

最新文章

  1. seaborn heatmap绘制热力图cmap参数的含义
  2. 霍金的预言正在实现,我们已经离不开人工智能,而它们在脱离控制
  3. 在 Linux 上创建一个加密文件保险库
  4. 利用js代码引入其他js文件到页面中
  5. usb耳机android,USB 耳机:配件规范  |  Android 开源项目  |  Android Open Source Project...
  6. MDK 中 [WEAK] 的作用
  7. 【扩频通信】基于matlab GUI扩频通信系统仿真【含Matlab源码 772期】
  8. HolderView vs ViewHolder实例
  9. Android 开源项目和文章集合(更新:2022.03.21)
  10. 常用的线性充电IC和开关充电IC的区别
  11. VirtualBox调整分分辨率
  12. 国企招聘:中国空空导弹2023校园招聘正式启动
  13. arm64的ioremap_ARMv8 内存管理架构.学习笔记
  14. 小白学习PYTHON之路---PY文件转换成EXE可执行文件
  15. 如何在输入特殊符号,例如角度“∠”
  16. nba购票系统php,2019nba中国赛门票怎么买?(附票价+购票方式)
  17. python最简单的语言_Python语言的简单实用小工具
  18. 推荐书单(网课)-人生/编程/Python/机器学习
  19. Oracle,MySql和PostGreSql对中文字段按拼音排序
  20. 【推荐收藏】C++函数大全

热门文章

  1. 如何增加Win2003, Win2008下的文件类型下载
  2. 偏倚方差分解——R code
  3. (CVPR-2020)Strip Pooling:重新思考场景解析的空间池化
  4. paint.net ps证件照背景色
  5. 51单片机STC89C52控制LED跑马灯左移(使用C51自带库_crol_()实现),详细注释
  6. android获取wifi支持的信道,Android获取当前连接wifi的信道
  7. 第6章 分支语句和逻辑运算符
  8. 纬衡、金蝶、腾讯、迅雷获深圳软件明星企业称号
  9. 微信小程序地图定位当前位置
  10. 服务器收到syn包不回消息,TCP:SYN请求接收SYN响应代替SYN-ACK