影视大数据分析

项目背景

文本分析、情感分析和社交分析帮助你在一定规模上转化成客户、病人、公众以及市场的“声音”。这项技术目前大量地应用于一系列的工业产品中,从医疗健康到金融、媒体、甚至客户市场。它们从线上、社交网络、企业数据源中提取商业洞察力。
本次项目通过对爬取的用户评论数据进行分析,对各个不同的电影进行相关的预测。关键的分类部分是基于有监督的机器学习,以不同机器学习算法为基础构建分类器对文本分类。

总体设计

本课题采用有监督的机器学习方法。对初始数据处理后,通过人工标注、特征选取、降维、训练,最终得到准确度高的分类器对所有数据进行输出。


第一步,就是确定一个词是积极还是消极,是主观还是客观
这一步主要依靠词典,英文已经有伟大词典资源:SentiWordNet。 无论积极消极、主观客观,还有词语的情感强度值都一并拿下。在中文领域,判断积极和消极已经有不少词典资源,如:Hownet、NTUSD 等。
第二步,就是识别一个句子是积极还是消极,是主观还是客观
有词典的时候,好办。直接去匹配看一个句子有什么词典里面的词,然后加总就可以计算出句子的情感分值。中文领域的难度:还是词典太差。还有就是用机器学习方法判断主客观非常麻烦,一般需要人工标注。
第三步,情感挖掘就升级到意见挖掘(Opinion Mining)了
这就需要在情感分析的基础上,先挖掘出产品的属性,再分析对应属性的情感。分析完每一条评论的所有属性的情感后,就可以汇总起来,形成消费者对一款产品各个部分的评价。

详细设计

源文件处理

源文件保存在 excel 中,由于本项目使用有监督的机器学习算法,因此需要对文件进行类别的标注,以备接下来使用。

评论录入与分词

评论是存放在 excel 格式的文件中,这可以由 python 提供的有关 excel 操作的 xlrd 库来进行读取。分词则是由 jieba 分词模块进行。

统计

加载文件之后调用相关统计模块:包含分词,统计词频等。

文本表示

经第三步之后,进入文本分析,权重分析并记录。

机器学习

在权重计算和文本表示之后,就可以进行机器学习了,首先分集合,之后进行机器学习训练,预测,得出结果。
划分:
划分训练集和测试集用于机器学习
训练:
将权重列表作为参数进行训练
预测:
输入测试用例进行预测
结果:
得到概率,计算得出分数。

成果展示

标记展示

相关 excel 文件的标记展示,标记阶段尽量保证两类的数量要基本一致。

界面展示

界面设计由 python 的 tkinter 库参考设计。

操作流程

准备好 PyCharm和JDK 1.8

安装 Homebrew

在终端输入:

1
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装 Python 3.x

1
brew install python3

安装 numpy、scipy、scikit-learn 库

1
sudo pip3 install numpy
1
sudo pip3 install scipy
1
sudo pip3 install scikit-learn

安装 jieba、xlrd 库

jieba:

1
git clone https://github.com/fxsjy/jieba.git
1
git checkout jieba3k
1
cd your-jieba-site
1
python3 setup.py install

xlrd:
下载xlrd

1
cd your-xlrd-site
1
python3 setup.py install

运行程序

用 PyCharm 导入 natural_language.py、tkTest.py 并运行后者即可看见结果。