html标签 对word2vec,自然语言学习——使用word2vec对文本进行情感分析
本文主要讲述了如何对影评数据做情感分析,就是如何判断这条评论是好评还是差评。对文本处理的方法是word2vec,然后用随机森林的方法构建模型,最后训练模型进行预测。前面一、二部分主要是讲述如何处理文档,有点啰嗦可以快速阅读,主要方法从第三部分开始。
一、读取文档
在进行文本情感分析之前,当然需要大量的文本数据,我使用了一些影评数据(labeledTrainData.tsv)作为训练集来完成。内容如下图所示:
该训练集拥有25000条影评数据,图中只显示了五行数据,id可表示评论者,sentiment表示是好评(1)还是差评(0),review则是影评内容。
在读取完文档后,先看看我们所得到的影评数据是一个什么样的内容:以第一条为例(with all this……),如下图所示:
仔细观察会有
这样的网页标签存在,在进行网页爬取影评的时候这样情况肯定会出现,为了得到完好的文本,需要对文本进行一个预处理,如下。
二、文本预处理
1.去掉html标签
使用BeautifulSoup库可以轻松去除html中的标签,得到所需文本。
2.移除标点
由于标点符号对我们的文本情感分析是没有用处的,所以我们也需要把标点符号去掉:
去除标点后就如上图所示,使用的正则匹配的方式。
3.切分成词
计算机对一句话进行分析的难度较大,对单词进行分析就相对简单一些,所以需要将每一句话的单词提取出来,这也是为什么我们需要去除标点的原因,因为去除标点后比较好分词。
上图为得到分词后的结果,全部转为小写。
4.去停用词
停用词类似于be、but、by等等这些对情感分析毫无影响的词语,需要全部去掉,以免干扰结果。
上图中像with,all,this这些单词都已经去除了。
5.重组为新句子
第一个cell中写了一个新函数clean_text,其功能就是将上述4条的功能写进一个函数。然后返回一个合并好的新句子(这个句子毫无语法而言,因为去掉了一些单词)。
得到的就是上图中输出的这一条句子。这仅仅只是一个影评,需要对文档中的25000条影评做同样处理,得到新的一栏clean_review
这只是一个简单的处理,将文本处理成自己想要得到的有用信息。
三、word2vec词向量编码
得到清洗的文本后表示已经完成了一步,接下来需要开始建立模型,训练模型了。我们都知道文本是没法被计算机分析的,只要0,1才是计算机处理的语言。接下来就是开始这一步操作,将清洗后的文本转为0,1矩阵才能开始训练模型。代码如下图所示:
vetorizer = CountVectorizer(max_features=5000):这行代码是统计所有文本中词频前5000的单词,这是一个类,目前还没有对文本进行任何操作,只是先设置成这样,也可以改成4000,6000等等。
train_data_features = vetorizer.fit_transform(df.clean_review).toarray():这表示开始对文本进行处理了,标准就为上一行代码设置的那样,然后转换为数组的形式。
得到的为25000行,5000列的数据:通俗一点讲呢就是先统计频数最多的前5000个单词为标准,第一个影评中有一个单词在这5000个里面就标为1,没有就标0,后面的类推。完成后,就将这25000行文本转为了(25000L,5000L)的数组了,这也是我们前面所做的操作的最终目标。
四、构造随机森林分类器
在将所有影评数据处理成(25000L,5000L)的向量后,需要将这些数据放入模型中去训练,才能预测之后的影评数据是好评还是差评。
forest = RandomForestClassifier(n_estimators=100):表示构造一个随机森林分类器。
forest = forest.fit(train_data_features, df.sentiment):表示将处理好的影评数据(25000L,5000L),和是否好评的数据(0\1)放入模型中训练。运行后,则表示模型已经训练完成。
五、预测测试集的情感状态
1.预处理测试集数据
在训练完模型后,为了测试模型的好坏,我们需要通过测试集(testData.tsv)来验证这个模型。测试集中没有sentiment一栏,因为这就是我们需要预测的结果。对测试集我们同样需要进行如上所示的1,2,3,4的操作来清洗影评数据。
最终我们也得到了测试集中25000条影评的特征向量,也就是(25000L,5000L)数组.
2.预测测试集影评情感状态
在得到了测试集的特征向量后,我们就可以开始进行预测了。
我们通过建立好的随机森林模型,往其中丢入测试集的数组,就可以得到预测的sentiment(情感状态),然后输出结果。
3.检测预测结果
在预测好后,我们看看,预测的sentiment这一栏到底准不准确,我们先看看第一条影评数据是好评还是差评,从上图可知第一条预测的结果为1(好评)。将第一条影评拿下来翻译看看:
根据意思大概也能看出是一条好评,后面的这些预测结果我也检查了一些,的确挺准确的。
六、总结
对以上部分做一个小小的概括:
1.先对训练集做预处理,将文本转为机器方便处理的0,1数组。
2.建立模型,训练模型
3.对测试集做预处理,预测测试集中的影评是好评还是差评
4.检查结果,完成
以上是我在学习过程中记录的一些笔记,内容可能不太规范,还请见谅。本文的代码,训练集,测试集等文件都已经上传。
html标签 对word2vec,自然语言学习——使用word2vec对文本进行情感分析相关推荐
- NLP之TEA:基于SnowNLP实现自然语言处理之对输入文本进行情感分析(分词→词性标注→拼音简繁转换→情感分析→测试)
NLP之TEA:基于SnowNLP实现自然语言处理之对输入文本进行情感分析(分词→词性标注→拼音&简繁转换→情感分析→测试) 目录 NLP分词 NLP词性标注 NLP情感分析-TEA NLP常 ...
- 基于深度学习的汽车行业评论文本的情感分析
使用卷积神经网络对汽车行业评论文本进行情感分析. dateset 爬取汽车之家车主口碑评论文本,抽取口碑中最满意以及最不满意评论文本,分别作为正向情感语料库和负向情感语料库. 爬虫技术视频链接:htt ...
- 情感分析的新方法,使用word2vec对微博文本进行情感分析和分类
向AI转型的程序员都关注了这个号??? 大数据挖掘DT数据分析 公众号: datadw 情感分析是一种常见的自然语言处理(NLP)方法的应用,特别是在以提取文本的情感内容为目标的分类方法中.通过这种 ...
- 自然语言处理实战——对电影评论进行情感分析(英文)
写在前: 本次的训练集和测试集还有停用词我都放在我的公众号里面了(为了方便大家提取特意去开的公众号哈哈哈哈) 公众号:YOLO的学习进阶日常 对话框输入:英文文本分析 数据源 做本次实战的契机是疫情期 ...
- 【自然语言NLP】TensorFlow使用LSTM实现情感分析任务
自然语言情感分析 众所周知,人类自然语言中包含了丰富的情感色彩:表达人的情绪(如悲伤.快乐).表达人的心情(如倦怠.忧郁).表达人的喜好(如喜欢.讨厌).利用机器自动分析这些情感倾向,不但有助于帮助企 ...
- [深度学习-实战]LSTM Attention训练IMDB文本的情感分析
Train.npz, test.npz 以及embedding_matrix.npy的产生请看这本博客 完整代码如下 import os import numpy as np import tenso ...
- 自然语言处理(NLP)-方面级情感分析(ABSA)-句法依赖树
句法依赖树的解释与生成 例子 使用 Biaffine Parser 语法解析器生成如下图数据. 根据序号与 head 即可画出对应的句法依赖树 "head" 指对应单词的父节点(序 ...
- Cloud 学习笔记7.基于词法的情感分析
Lexicon-Based Sentiment Analysis 实验准备 环境:CDH 5.13.0 (详见5. Word Count) Bag of Words 词袋模型简介 Bag-of-wor ...
- 【跟着ChatGPT学深度学习】ChatGPT带我学情感分析
❤️觉得内容不错的话,欢迎点赞收藏加关注
最新文章
- 改:今天看到的一个有趣面试题:return *this和return this有什么区别?
- 2.2.1 处理机调度的概念和层次
- 微信小程序结合Java后端实现登录注册
- CentOS 7 启动与切换图形界面
- css转化成stylus,stylus
- 设计灵感|排版太死板?提高品质的角度很重要
- android添加购物车动画、天气应用、渐变状态栏、文件选择器等源码
- idea 热部署_Spring Boot Idea中热部署(自动刷新)
- python symbols函数,Python
- paper 88:人脸检测和识别的Web服务API
- 又一程序员删库跑路,只不过他没跑掉,还被抓了~
- 背包问题(背包九讲)
- 逆向四、JEB的使用
- [面试系列]富途前端社招面试
- 浅谈支付宝第三方支付
- 教育行业电商SaaS系统解决方案:助力企业实现经营、管理一体化
- net-java-php-python-人事工资管理系统计算机毕业设计程序
- java 读取db3 数据库_db4o(db3文件是什么数据库)
- 通过Python对的大理石接触分析
- Revit中建筑柱和结构柱的区分以及梁的搭建之学习记录
热门文章
- 发送临时文件被服务器拒绝,临时会话说服务器拒绝了您发送离线文件的请求 - 卡饭网...
- 阿里云IoT何云飞:智物Cloud AIoT Native 为何能让设备智能更快一步
- 重磅官宣:Nacos2.0性能提升10倍
- 天源迪科阿里云,打造卓越的数字化采购平台
- 《原神》三测:在内购抽卡的商业模式上诞生的开放游戏世界
- 《炉石传说》架构设计赏析(2):Scene管理
- 论https和http谁对网站优化更友好
- net start mysql 无法启动mysql解决方案之一【NET HELPMSG 3534】
- 零基础学Python(第十五章 日期时间datetime、time、Calendar)
- Oracle RAC 客户端连接负载均衡(Load Balance)