1、数据集
提到负面评论,我们首先要了解“网络水军”,本章主要以IMDB数据集为例介绍负面评论的识别技术。测试的数据来自互联网电影资料库(Internet Movie Database , IMDB),IMDB是一个关于电影演员、电影、电视节目、电视明星和电影制作的在线数据库。整个数据集一共有10万条记录,5万做了标记,5万没有做标记。5万做了标记的数据集被随机分配成了训练数据集和测试数据集。
IMDB文件夹下一级目录主要包含训练数据集和测试数据集两个文件夹,
IMDB文件夹二级目录主要包含3个目录,分别为正面评论、负面评论和未标识。
IMDB数据的下载地址为:http://ai.stanford.edu/~amaas/data/sentiment/
2、特征提取
负面评论使用的特征提取方法有:词袋和TF-IDF模型、词汇表模型、Word2Vec和Doc2Vec模型。我们使用最常见的词袋模型提取文件特征。把一个评论文件作为一个完整的字符串处理,定义函数load_one_file加载文件到一个字符串变量中返回:
def load_one_file(filename):
x=""
with open(filename, 'r', encoding='utf-8', errors='ignore') as f:
for line in f:
line=line.strip('\n')
line = line.strip('\r')
x+=line
f.close()
return x
遍历目录,加载目录下全部文件,以字符串集合的形式返回:
def load_files_from_dir(rootdir):
x=[]
list = os.listdir(rootdir)
for i in range(0, len(list)):
path = os.path.join(rootdir, list[i])
if os.path.isfile(path):
v=load_one_file(path)
x.append(v)
return x
分别加载训练数据集目录下的正面评论和负面评论目录下所有文件,同时进行标记,正面评价0,负面评价1.
path="C:/Users/Administrator\PycharmProjects/t