数据集资源:http://www.imdb.com/interfaces/
该数据集中包含了5万条影评(包括正面评价和负面评价),利用这5万条影评进行数据分析。

数据格式:
5万条影评分别处于5万个txt文件中

工作步骤如下:

  • 1-将这50000个txt文件(评论)整合成一个表格,表格分为两列,第一列表示评论的内容,第二列表示评论是属于正面(用1表示)还是负面(用0表示)
  • 2-将评论的内容(原始语料进行预处理),
  • 3-将处理后的文本进行特征提取并向量化
  • 4-进行情感的分类
# -*-coding: UTF-8 -*-
# @Time:2019/9/1016:11
# @author superxjz
# @func
import pandas as pd
import os
import numpy as np
from nltk.corpus import stopwords
import re
from sklearn import model_selection
from sklearn import svm
from sklearn.metrics import accuracy_score
import nltk
from sklearn.feature_extraction.text import  CountVectorizer
from sklearn.ensemble import RandomForestClassifier
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import confusion_matrix
from sklearn.metrics import precision_score
import gensim#第一步---对原始数加工成表格一个csv文件
def dataToexcel():#创建数据的形式data = pd.DataFrame()#对文件进行遍历for s in ("test","train"):for l in ("pos","neg"):path = "./aclImdb/%s/%s" % (s, l)#遍历文本文档for file in os.listdir(path):with open(os.path.join(path,file),"r",encoding="utf-8")as fr:#将文本中的句子读出来sentence = fr.read()if l=="pos":data=data.append([[sentence,1]],ignore_index=True)if l=="neg":data = data.append([[sentence, 0]], ignore_index=True)#给表格设置列名data.columns=["review","label"]#将数据的顺序打乱np.random.seed(0)data = data.reindex(np.random.permutation(data.index))#将数据保存成csv文件data.to_csv("./data.csv")filePath="./data.csv"#将文件的路径返回return filePath#第二步---将第一步生成csv文件中所有的评论进行数据的清洗操作
def clearText(text):#读取数据#data = pd.read_csv(filePath,encoding="utf-8")text = re.sub(r"[^a-zA-Z]", " ", text)words = text.lower().split()words = [w for w in words if w not in eng_stopwords]# ','.join('abc')-----'a,b,c'return " ".join(words)#第三步进行特征向量的建立
def bulidVec(text,model):#定义一个数组vec = []wordList = text.split()for word in wordList:word = word.replace("\n", " ")try:vec.append(model[word])except KeyError:continuereturn vec#测试
#dataToexcel()
if __name__=="__main__":#第一步# nltk.download()filePath = dataToexcel()#第二步data = pd.read_csv(filePath, encoding="utf-8")eng_stopwords = set(stopwords.words("english"))data["clear_review"] = data.review.apply(clearText)#第三步vectorizer = CountVectorizer(max_features=5000)X = vectorizer.fit_transform(data.clear_review).toarray()# data["array"] = data.clear_review.apply(bulidVec)# X = data["array"].valuesY = data["label"].values#对影评数据进行分析X_train, X_test, y_train, y_test = model_selection.train_test_split(X, Y, test_size=0.30, shuffle=True)# clf = svm.SVC(C=0.8, kernel='rbf', gamma=20, decision_function_shape='ovr', probability=True)# clf = RandomForestClassifier(n_estimators=100)clf = GaussianNB()clf = clf.fit(X_train, y_train)pred = clf.predict(X_test)print("源标签数据",Y)print("预测标签数据",clf.predict(X))print("混淆矩阵",confusion_matrix(data.label, clf.predict(X)))print("精确度", precision_score(Y, clf.predict(X)))print("精确度2",precision_score(y_test, clf.predict(X_test)))

实验结果如下:

IMDB影评分析实验相关推荐

  1. ML之NB、LoR:基于NB和LoR算法对Kaggle IMDB影评数据集(国外类似豆瓣电影)情感分析进行分类

    ML之NB.LoR:基于NB和LoR算法对Kaggle IMDB影评数据集(国外类似豆瓣电影)情感分析进行分类 注:LoR code waiting 目录 输出结果 核心代码 输出结果 数据集:Dat ...

  2. NLP之NBGBT:基于朴素贝叶斯(count/tfidf+网格搜索+4fCrva)、梯度提升树(w2c+网格搜索+4fCrva)算法对IMDB影评数据集进行文本情感分析(情感二分类预测)

    NLP之NB&GBT:基于朴素贝叶斯(count/tfidf+网格搜索+4fCrva).梯度提升树(w2c+网格搜索+4fCrva)算法对IMDB影评数据集进行文本情感分析(情感二分类预测) ...

  3. [NLP]基于IMDB影评情感分析之BERT实战-测试集上92.24%

    系列文章目录 深度学习NLP(一)之Attention Model; 深度学习NLP(二)之Self-attention, Muti-attention和Transformer; 深度学习NLP(三) ...

  4. IMDB影评的情感分析任务:双层bi-LSTM模型(双向LSTM)

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) IMDB影评的情感分析任务 学习目标 了解影评情感分析任务和I ...

  5. NLP之TEA之NB/LoR:基于NB和LoR算法对Kaggle IMDB影评数据集(国外类似豆瓣电影)情感分析进行分类

    NLP之TEA之NB/LoR:基于NB和LoR算法对Kaggle IMDB影评数据集(国外类似豆瓣电影)情感分析进行分类 注:LoR code waiting 目录 输出结果 核心代码 输出结果 数据 ...

  6. 如何基于谷歌的最强 NLP 模型进行影评分析?

    谷歌此前发布的NLP模型BERT,在知乎.Reddit上都引起了轰动.其模型效果极好,BERT论文的作者在论文里做的几个实验数据集都被轰平了.要做那几个数据集的人可以洗洗睡啦,直接被明明白白地安排了一 ...

  7. 中科院分子细胞科学卓越创新中心化学生物学技术平台与Bio-protocol联合发布——《高内涵成像及分析实验手册》...

    ISBN: 978-1-951285-06-7 <高内涵成像及分析实验手册>封面 高内涵成像分析系统同时具备自动化高速显微成像功能及自动化图像定量分析功能,可对多个样品快速成像,并从图片中 ...

  8. 计算机网络工程实验分析与体会_《软件工程》面向对象分析实验

    面向对象分析实验报告要求 1目的与要求: 1)系统学习和理解面向对象软件工程分析与设计阶段的基本任务.过程以及基本概念.原理.技术和方法: 2)掌握OOA阶段的建模方法和建模工具,如对象模型.动态模型 ...

  9. 太原理工大学linux与python编程r实验报告_太原理工大学算法设计与分析实验报告...

    <太原理工大学算法设计与分析实验报告>由会员分享,可在线阅读,更多相关<太原理工大学算法设计与分析实验报告(12页珍藏版)>请在人人文库网上搜索. 1.本科实验报告课程名称: ...

最新文章

  1. 内存泄漏的定位与排查:Heap Profiling 原理解析
  2. c中写汇编语言,将汇编程序写在一个文件里,能否直接在C中调用
  3. UML中类之间的几种关系
  4. 《系统集成项目管理工程师》必背100个知识点-64采购文件
  5. 在Windows 10 系统上启用Hyper V遇到的错误:0x800f0831
  6. redux中间件之redux-thunk
  7. 虚拟机linux挂载光盘显示:mount: you must specify the filesystem type
  8. 我对C++的一些疑问
  9. nginx+uwsgi启动Django项目
  10. 华为mate xs拍照怎么用?镜像智拍助你告别大饼脸
  11. 什么是智能dns解析
  12. 百度地图和百度导航冲突问题
  13. 美国VERSA VGG-4422-U-A240有一种幸福叫微笑
  14. vs2017发布网站到IIS
  15. 开源 java CMS - FreeCMS2.8 移动app站点配置
  16. 基于HBase的大数据存储在京东的应用场景
  17. Leetcode 电话号码的字母组合
  18. 2015年智能家居大事记 合纵连横成主旋律
  19. 生命中最美的风景就是曾经遇见了你
  20. matlab 实现低通巴特沃斯滤波器、切比雪夫1型/2型滤波器 和 椭圆滤波器

热门文章

  1. C语言 计算sinx的近似值
  2. [数据结构笔记] 最优二叉树
  3. threejs更改z轴朝向问题,拖拽平时视图在xy轴平面
  4. python课堂讨论_Python的课堂总结吧
  5. 华为鸿蒙5s手机价格,华为荣耀5s手机报价及参数配置介绍【图文】
  6. scrapy-redis分布式爬虫学习记录
  7. Java使用POI生成饼状图导出到word文档(饼状图)
  8. Android 禁用鼠标滚轮(一)
  9. Programming Exercise 2: Logistic Regression
  10. Hive,sha256,md5实例