摘要:将不同的评分按分类放好分词分词是通过第三方的实现的。这对于计算相似度还是用作后续的分类器训练后续有时间的话会实现基于的分类器都是十分有帮助的。
Chinese-sentiment-analysis-with-Doc2Vec 简介
中文语料的情感分析基本步骤如下:
爬取相关的语料或者下载相关语料(本文使用了对于宾馆评价的相关语料作为例子)
将语料进行预处理并分词
用某种量化的表达形式来对语料进行数字化处理
基于监督学习的分类器训练
开发环境Python-v3(3.6):
gensim==3.0.1 jieba==0.39 scikit-learn==0.19.1 tensorflow==1.2.1 numpy==1.13.1+mkl
示例代码参考Chinese-sentiment-analysis-with-Doc2Vec
https://github.com/lybroman/C...
在repo中有两个zip文件分别为train.zip和test.zip数据,当然你也可以直接在加载语料时将部分数据用作测试数据(详见后文)。
数据预处理(preprocess.py)zip数据中为大量的txt文档,每一个的后缀是评分,例如72_1380108_2006-11-9_1.0.txt,那么该评分为1.0分(其实就是差评啦)。我们需要做的是将所有评分划分为1、2、3、4,5档,顾名思义就是评价由坏到好。这里用了一些简单的字符串处理来获取分数并使用round函数来对分数取整。
将不同的评分txt按folder分类放好
分词(words_segment.py)分词是通过第三方的jieba实现的。
分词之前需要做一些简单的处理,比如过滤一些不感兴趣的字符。
filter_chars = " ,。;!,.:;:、" trans_dict = dict.fromkeys((ord(_) for _ in filter_chars), "") line = line.translate(trans_dict)
将分完词的语料按照分数归并到同一个文本做为训练做准备
文本向量化模型(main.py:step 1-3)这里只要使用到了gensim.models.doc2vec,该模块提供了将不定长的文本映射到维度大小固定的向量的功能。这对于计算相似度还是用作后续的CNN分类器训练(后续有时间的话会实现基于TensorFlow的分类器)都是十分有帮助的。
具体的原理可以参考distributed-representations-of-sentences-and-documents
gensim doc2vec
本文旨在通过简单的示例介绍如何通过训练模型来自动判断某个新的输入评价是好评(5分)还是差评(1分),所以在后续的代码中,使用的样本就来自于这两类样本的集合(后续有时间的话会继续实现多分类问题)
训练分类器(main.py:step 4-5)这里使用了sklearn中的分类器(LR、SVM、决策树等等,最新版本的sklearn还提供了NN的实现)。具体参考scikit-learn。
数据的标记十分简单,将5分的训练集标记为1,1分的训练集标记为0即可(如果实现多分类,按照分数标记即可。)
其中我把20%的训练集抽出作为测试数据:
train, test, train_label, test_label = ms.train_test_split( train_arrays, train_labels, test_size=0.2)
最后进行验证,一般>0.6就认为是一个有不错预测能力的模型了
新样本预测(prediction.py)通过加载之前训练的model和分类器对测试样本进行预测
同时记录了每一个测试样本最近似的训练样本
后续工作实现多分类
基于TF的CNN分类器
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/44519.html
摘要:在自然语言处理中,一个很重要的技术手段就是将文档转换为一个矢量,这个过程一般是使用这个库进行处理的。自然语言处理中,一般来说,代表词。自然语言预处理中,一个很重要的步骤就是将你收集的句子进行分词,将一个句子分解成词的列表。 前言 本文根据实际项目撰写,由于项目保密要求,源代码将进行一定程度的删减。本文撰写的目的是进行公司培训,请勿以任何形式进行转载。由于是日语项目,用到的分词软件等,在...
阅读 3959·2021-11-24 09:38
阅读 1225·2021-10-19 11:42
阅读 1828·2021-10-14 09:42
阅读 2153·2019-08-30 15:44
阅读 543·2019-08-30 14:04
阅读 2887·2019-08-30 13:13
阅读 1948·2019-08-30 12:51
阅读 955·2019-08-30 11:22