一、构建语料库

  1. 确定数据源,并利用python爬取数据,注意清洗无效数据
  2. 建立标签系统,作为标注依据
    本次采用的是BIO 标签系统:
    B代表Begin,表示开始;
    I代表Intermediate,表示中间;
    O代表Other,表示其他,用于标记无关字符。
    同时,采用E和A分别代表实体和属性,用户最为关注的属性用"A+?“来表示,例如位置就是"AL”。
    为了随后的情感分析,还可将正面情感和负面情感划分为B-P和B-N。
  3. 标注
  4. 质量检查(reviews_check.py)
    由于在标注过程中会出现格式上的错误,例如多了空格,多了斜杠/,或是没有标标签系统中的既定标签,不区分大小写等情况。因此,需要一个格式检查程序来进行检查。
    这里的质量检查不包括内容,仅包括格式上的。

二、建立模型

  • 语料预处理

  • 生成词语、词性、标签三者的对应数据表

  • 建立三类词典

  • word2vec创建词向量

  • 词向量:通俗理解就是将词语转化成为机器可读的数据格式。
    例如,“今天天气很好”这句话转化为词向量就分别为[1,0,0,0,0,0][0,1,0,0,0,0][0,0,1,0,0,0][0,0,0,1,0,0][0,0,0,0,1,0][0,0,0,0,0,1],这种编码被称为one-hot编码,又称为独热编码,即使用和文本等长的N位特征寄存器来存储样本,保证每个样本中的单个特征只有1位处于状态1,其他的都是0。
    但是使用了one-hot编码会发现,一些样本量较大的词汇表是难以表示的,会非常占用内存。这个时候就出现了词向量,类似于空间向量。

  • 训练词向量的方法有神经网络DNN,采用的方法一般是一个三层的神经网络结构(当然也可以多层),分为输入层,隐藏层和输出层(softmax层)。
    在定义数据的输入和输出上,有CBOW(Continuous Bag-of-Words)与Skip-Gram两种方法。

  • CBOW:根据某词的上下文来预测某个词。例如:……一个/学习/词向量/的/方法……,假设我们预测“词向量”,其上下文有四个词,那么输入层的大小就是4,隐藏层自设,输出层等于整个词汇表的大小,用公式表示就是P(“词向量”|(“一个”,“学习”,“的”,“方法”))。由于CBOW使用的是词袋模型,因此这4个词都是平等的,也就是不考虑距离,只要在我们上下文之内即可。

  • Skip-Gram:和CBOW相反,输入一个特征词,来预测其上下文的内容。其公式为P((“一个”,“学习”,“的”,“方法”)|“词向量”)。输入层为1,隐藏层自设,输出层为词汇表大小。即用“词向量”来预测其上下文最可能出现的4个词语。

  • word2vec也使用了CBOW与Skip-Gram来训练模型与得到词向量,但是并没有使用传统的DNN模型。它使用的是霍夫曼树。

  • 划分训练集和测试集

  1. 利用已标注文件建立模型
  2. 查看模型正确率
  3. 模型预测更多数据

三、情感分析

  1. 可视化分析(可参考泰坦尼克号)

numpy是数组,pandas是一个计算的包(自我记录……)
在这里讲一下可视化分析会用到的包:seaborn
失去了总结的愿望,看下面的链接吧:
https://blog.csdn.net/suzyu12345/article/details/69029106
这里记几个常见点:

  • 类型
    boxplot 箱图
    barplot 直方图
    stripplot 散点图
    factorplot 变量关系图(很常用)
    矩阵热图代码:
 %matplotlib inlineplt.rcParams['axes.unicode_minus']=False #用来正常显示负号df_corr=df.corr()plt.figure(figsize=(10,10))sns.heatmap(df_corr,annot=True,square=True,cmap='Pastel1')#annot显示相关系数
  • 参数含义
    区分不同的变量:hue
    调整图形长款:aspect
    调整颜色(这个我最喜欢):palette(Pastel1,Pastel2,coolwarm,coolwarm_r几个颜色都好好看,充满了高级感。对不起,跑偏了)
  1. 深度挖掘(计算权重等方法)
    结构方程没有用SPSS做,做出来简单到不想误导别人。
    关联规则倒是做了,但是只挖掘出来了频繁项集,没有关联规则。
    from orangecontrib.associate.fpgrowth import *
    import Orange
    x1=df[‘a’].values
    x2=df['b].values

记录一次文本挖掘 情感分析的项目过程相关推荐

  1. AI实战!开源一个机器学习/情感分析实战项目(附源码/教程)|湾区人工智能...

    分享一个在公司做的机器学习文本分类项目的demo,该分类项目是一个通用的文本分类项目,这里的数据集我酒店用户评价数据,分类模型为二分类,正面评价和负面评价,这里所说的通用,就是你可以根据你自己的数据, ...

  2. 电影评论 R文本挖掘-情感分析

    数据集说明:本次情感分析使用电影评论数据1500条,包含好评.中评.差评各500条: [1]数据读取: [2]数据清洗: [3]评论分词: [4]数据整理(方便情感打分): [5]词典读取: [6]定 ...

  3. 机器学习算法Python实现:基于情感词典的文本情感分析

    # -*- coding:utf-8 -* #本代码是在jupyter notebook上实现,author:huzhifei, create time:2018/8/14 #本脚本主要实现了基于py ...

  4. 基于逻辑回归,支持向量机,朴素贝叶斯以及简单深度学习文本分类方法(BiLSTM、CNN)实现的中文情感分析,含数据集可直接运行

    基于逻辑回归,支持向量机,朴素贝叶斯以及简单深度学习文本分类方法(BiLSTM.CNN)实现的中文情感分析,含数据集可直接运行 完整代码下载地址:中文情感分析 中文情感分析 本项目旨在通过一个中文情感 ...

  5. 新浪微博情感分析--含爬虫及数据分析

    本文通过代码以及文本描述新浪微博评论情感分析的具体过程 数据爬取 这里我们使用的是一个模拟浏览器的包webdriver,具体使用方式可自行搜索(需要安装chrome插件).因为使用的简单爬虫,为了避免 ...

  6. [项目过程中所遇到的各种问题记录]编辑器篇——FCKeditor相关知识及各种常见使用问题...

    马上2010年就要结束了,所以这几天准备花点时间把这一年中在开发过程中遇到的问题及解决方案记录下来,以备日后使用,目前先规划了:编辑器篇(仅针对asp.net开发中的fckeditor).图表篇(wi ...

  7. mysql 文本 挖掘_GitHub - myseve/dianping_textmining: 大众点评评论文本挖掘,包括点评数据爬取、数据清洗入库、数据分析、评论情感分析等的完整挖掘项目...

    大众点评评论文本挖掘 [TOC] 一.爬虫 整体思路 爬取大众点评十大热门糖水店的评论,爬取网页后从html页面中把需要的字段信息(顾客id.评论时间.评分.评论内容.口味.环境.服务.店铺ID)提取 ...

  8. mysql 文本 挖掘_GitHub - cwff520/dianping_textmining: 大众点评评论文本挖掘,包括点评数据爬取、数据清洗入库、数据分析、评论情感分析等的完整挖掘项目...

    大众点评评论文本挖掘 [TOC] 一.爬虫 整体思路 爬取大众点评十大热门糖水店的评论,爬取网页后从html页面中把需要的字段信息(顾客id.评论时间.评分.评论内容.口味.环境.服务.店铺ID)提取 ...

  9. mysql 文本挖掘_GitHub - HuiHuiT/dianping_textmining: 大众点评评论文本挖掘,包括点评数据爬取、数据清洗入库、数据分析、评论情感分析等的完整挖掘项目...

    大众点评评论文本挖掘 [TOC] 一.爬虫 整体思路 爬取大众点评十大热门糖水店的评论,爬取网页后从html页面中把需要的字段信息(顾客id.评论时间.评分.评论内容.口味.环境.服务.店铺ID)提取 ...

最新文章

  1. LeetCode 228: Summary Ranges
  2. java基础面向对象_Java基础面向对象
  3. matlab/simulink常见问题汇总
  4. bind merge r 和join_[R] 制作梅西和C罗进球数的quot;追赶动画quot; - ggplot2 + gifski
  5. 安装ipfs-http-client出现constants@0.1.2 install: node build.js > index.browser.js错误的解决办法
  6. [Matlab] 无插件导入公式到 Word 中的方法:由 Matlab 导出 MathML 公式,复制到 Word 公式中
  7. (4)css2.1选择器
  8. c语言怎么算n以内素数,关于求N以内素数的一点小问题(N小于一亿)
  9. strstr的实现 和key=value字符串的实现
  10. 搭上信息化火箭,文档管理也要跟上潮流
  11. 三维模型_浅谈倾斜摄影及三维模型的应用行业
  12. PAIP.提升安全性---更好的签名HASH算法
  13. php评论表情包怎么引入,纯代码实现WordPress添加评论表情(心情)的教程
  14. uboot移植——uboot配置过程详解
  15. STK11.2 计算卫星A关于卫星B的相对位置 (三维和二维)
  16. ysdk应用宝渠道接入问题记录
  17. 深度学习中梯度消失和梯度爆炸的根本原因及其缓解方法
  18. 简单的语音合成与语音识别(科大讯飞)
  19. ubuntu16怎么升级到ubuntu18
  20. win11共享文件夹设置在哪?win11共享文件夹设置方法

热门文章

  1. 教师ppt计算机培训心得,教师多媒体教学培训心得体会范文
  2. php旅游网站景区天气插件,jquery天气插件
  3. ubuntu中搜索文件或文件夹的方法
  4. 中国跳棋游戏的设计与实现
  5. gentoo linux图形界面,Gentoo桌面系统的安装
  6. 【3D商城】三维场景搭建与开发流程
  7. GAMES101笔记_Lec10~12_几何 Geometry
  8. 瞄准企业团险,决胜数字中台
  9. OpenCV像素值读写之at()函数
  10. [学习笔记]天线相位中心改正