keras 生成句子向量 词向量_Keras + LSTM + 词向量 情感分类/情感分析实验

背景简介

本人是深度学习入门的菜菜菜鸟一枚…

利用LSTM + word2vec词向量进行文本情感分类/情感分析实验,吸收了网上的资源和代码并尝试转化为自己的东西~

实验环境

win7 64位系统

Anaconda 4.3.0 , Python 2.7 version

Pycharm开发环境

python包:keras,gensim,numpy等

实验数据

本文的实验数据是来自网上的中文标注语料,涉及书籍、酒店、计算机、牛奶、手机、热水器六个方面的购物评论数据,具体介绍参见该文:购物评论情感分析。

数据处理

上面提到的数据在网上见到的次数比较多,原始格式是两个excel文件,如图:

对,就是这两个…估计来到本文的小伙伴也见过。一些代码就是直接从这两个excel里读取数据、分词、处理…不过我表示自己习惯从txt文本里获取数据,因此本人将数据合并、去重(原数据里有不少重复的评论)、分词(用的是哈工大LTP分词)之后存为一份txt文本,保留的数据情况如下:

正面评价个数:8680个

负面评价个数:8000个

文本如图所示:

然后人工生成一份【语料类别】文本,用1表示正面评价,用0表示负面评价,与评论数据一一对应。

生成词语的索引字典、词向量字典

利用上述文本语料生成词语的索引字典和词向量字典。

注意:当Word2vec词频阈值设置为5时,词频小于5的词语将不会生成索引,也不会生成词向量数据。

工具:gensim里的Word2vec,Dictionary

代码

#!/usr/bin/env python

# -*- coding: utf-8 -*-

""" 功能:利用大语料生成词语的索引字典、词向量,然后保存为pkl文件 时间:2017年3月8日 13:19:40 """

import pickle

import logging

import tkFileDialog

import numpy as np

np.random.seed(1337) # For Reproducibility

from Functions.TextSta import TextSta

from gensim.models.word2vec import Word2Vec

from gensim.corpora.dictionary import Dictionary

# 创建词语字典,并返回word2vec模型中词语的索引,词向量

def create_dictionaries(p_model):

gensim_dict = Dictionary()

gensim_dict.doc2bow(p_model.vocab.keys(), allow_update=True)

w2indx = {v: k + 1 for k, v in gensim_dict.items()} # 词语的索引,从1开始编号

w2vec = {word: model[word] for word in w2indx.keys()} # 词语的词向量

return w2indx, w2vec

# 主程序

logging.basicConfig(format&#

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值