注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Explore in Data

Just enjoy it.

 
 
 

日志

 
 

Python 文本挖掘:使用机器学习方法进行情感分析(二、分割数据及赋予类标签)  

2013-11-20 01:51:02|  分类: Python 文本挖掘 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
第一步,载入数据。
要做情感分析,首要的是要有数据。
数据是人工已经标注好的文本,有一部分积极的文本,一部分是消极的文本。
文本是已经分词去停用词的商品评论,形式大致如下:[[word11, word12, ... word1n], [word21, word22, ... , word2n], ... , [wordn1, wordn2, ... , wordnn]]
这是一个多维数组,每一维是一条评论,每条评论是已经又该评论的分词组成。

#! /usr/bin/env python2.7
#coding=utf-8

pos_review = pickle.load(open('D:/code/sentiment_test/pos_review.pkl','r'))
neg_review = pickle.load(open('D:/code/sentiment_test/neg_review.pkl','r'))

我用pickle 存储了相应的数据,这里直接载入即可。

第二步,使积极文本的数量和消极文本的数量一样。

from random import shuffle


shuffle(pos_review) #把积极文本的排列随机化
size = int(len(pos_review)/2 - 18)
pos = pos_review[:size]
neg = neg_review

我这里积极文本的数据恰好是消极文本的2倍还多18个,所以为了平衡两者数量才这样做。

第三步,赋予类标签。

def pos_features(feature_extraction_method):
posFeatures = []
for i in pos:
posWords = [feature_extraction_method(i),'pos'] #为积极文本赋予"pos"
posFeatures.append(posWords)
return posFeatures

def neg_features(feature_extraction_method):
negFeatures = []
for j in neg:
negWords = [feature_extraction_method(j),'neg'] #为消极文本赋予"neg"
negFeatures.append(negWords)
return negFeatures

这个需要用特征选择方法把文本特征化之后再赋予类标签。

第四步、把特征化之后的数据数据分割为开发集和测试集

train = posFeatures[174:]+negFeatures[174:]
devtest = posFeatures[124:174]+negFeatures[124:174]
test = posFeatures[:124]+negFeatures[:124]

这里把前124个数据作为测试集,中间50个数据作为开发测试集,最后剩下的大部分数据作为训练集。


  评论这张
 
阅读(6570)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017