前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于gensim Doc2Vec的评论文本情感分类测试实验

基于gensim Doc2Vec的评论文本情感分类测试实验

作者头像
sparkexpert
发布2019-05-26 14:06:35
2K0
发布2019-05-26 14:06:35
举报
文章被收录于专栏:大数据智能实战

在gensim的主题模型中,直接集成了doc2vec模块,其中一个重要的例子就是情感分类的。对应的项目主页为:https://linanqiu.github.io/2015/10/07/word2vec-sentiment/

1、Doc2Vec的简单介绍

Word2vec已经非常成熟并且得到了众多的运用,推动了深度学习在自然语言处理领域取得了巨大进展。在word2vec的基础上,来自google的Quoc Le和Tomas Mikolov在2014年提出了Doc2Vec模型,该模型能够实现对段落和文档的嵌入式表示,原始论文地址如下:https://cs.stanford.edu/~quocle/paragraph_vector.pdf。

其架构如下所示:

在上图中,可见其与word2vec的区别在于加了一个paragraph id的输入。即每个段落/句子都被映射到向量空间中,可以用矩阵D的一列来表示。每个单词同样被映射到向量空间,可以用矩阵W的一列来表示。然后将段落向量和词向量级联或者求平均得到特征,预测句子中的下一个单词。这个段落向量/句向量也可以认为是一个单词,它的作用相当于是上下文的记忆单元或者是这个段落的主题,这种训练方法被称为Distributed Memory Model of Paragraph Vectors(PV-DM)

其代码也非常简洁,主要由三行组成:

1、调用doc2vec

2、建立词汇表

3、开始训练。

代码语言:javascript
复制
sources = {'test-neg.txt':'TEST_NEG', 'test-pos.txt':'TEST_POS', 'train-neg.txt':'TRAIN_NEG', 'train-pos.txt':'TRAIN_POS', 'train-unsup.txt':'TRAIN_UNS'}

log.info('TaggedDocument')
sentences = TaggedLineSentence(sources)

log.info('D2V')
model = Doc2Vec(min_count=1, window=10, size=100, sample=1e-4, negative=5, workers=7)
model.build_vocab(sentences.to_array())
model.train(sentences.sentences_perm(), epochs=model.iter, total_examples=model.corpus_count)

# log.info('Epoch')
# for epoch in range(10):
# 	log.info('EPOCH: {}'.format(epoch))
# 	model.train(sentences.sentences_perm())

注:代码在新版的gensim中,无需用for epoch的方式来训练,如果用了这种方法会报错如下:

You must specify either total_examples or total_words, for proper job parameters updation

直接利用如下语句则可解决这种问题。

model.train(sentences.sentences_perm(), epochs=20, total_examples=model.corpus_count)

2、实验结果

当设置epochs为5的时候,可以见到其准确率约为82.6%

而设置epochs为20的时候,可以见到其准确率约为85.6%

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年07月25日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档