# 微博情感分析
## 一、引言
情感分析(Sentimentanalysis),也称意见挖掘(OpinionMining),主要是对带有感情色彩的主观性文本进行分析、处理、归纳然后进行推理的过程,例如对产品,话题,政策的意见。利用这些分析的结果,消费者可以深入了解商品的实用性,从而优化购买的决策,同时,生产者和经销商可以改善自己的服务,从而赢得竞争的优势。随着信息时代的到来,越来越多的公司开始组建数据分析团队对自身公司的数据进行挖掘、分析。比如某服装公司想调查自己制作的服装的受喜爱程度,就可以从服装的评论入手,挖据文本内容,判断留下评论的用户对服装的喜好态度,积极的、消极的或者是中性的评价。
微博的强大影响力已经深深的吸引了更多的人加入。而对微博的情感分析,不仅可以获取网民的此时的心情,对某个事件或事物的看法,还可以获取其潜在的商业价值,还能对社会的稳定做出一定的贡献。
## 二、问题定义
通过对微博评论进行预处理、分词以及特征选择等,建立特征词典,构建每条评论的特征向量。之后利用分类算法,如朴素贝叶斯、SVM等,针对训练集的特征向量以及类标签进行训练,得到分类模型,并通过计算在测试集上的预测准确率、召回率等对分类器的分类效果以及不同参数影响进行性能评估。
## 三、研究思路及算法过程
### 算法思想
**朴素贝叶斯**
朴素贝叶斯是在独立性假设的前提下实现的,即在给定目标值时,假设特征之间是相互独立的。
朴素贝叶斯的公式表示为:

因为这部分需要独立编写代码实现,所以我详细了解并掌握了朴素贝叶斯的流程,并总结如下:
对已知的特征矩阵和标签矩阵,我们定义:
为一个样本特征向量,其中是每个特征的特征值。
为每个样本的真实所属类别。
为样本集,其中每个样本x<sub>i</sub>是x的构成形式。
假设这些样本总共分为了3类,分别为class1,class2,class3。
第一步:
通过样本集的类别分布,对每个类别计算先验概率。也就是需要计算出这些样本分属3个类别各自的比例,比如:

这样,分别计算出。
第二步:
计算每个类别下每个特征属性值的出现概率。比如,当为类别1时,特征1的值为时的概率为:

第三步:
计算每个样本所属每个类别的概率。比如对于第一个样本,根据它每个特征值的情况,依次从第二步的结果中提取对应值并相乘,得到它分别属于这3个类别的概率,即

第四步:
比较样本预测属于这三个类别的概率值,找出最大概率对应的分类作为这个样本最终的预测分类结果。
### 研究思路
本实验,在设计过程中主要考虑以下几点:
①文本分类属于有监督的学习,需要整理样本,确定样本数目以及记录样本标签。
②针对样本需要进行分词操作得到评论的词语表示。
③因为分词后每条评论中包含的词语是很多的,这些词并不都是表征能力强的词,所以需要根据词性、词长短等过滤掉大部分的无关词。
④如何表征评论呢?在本实验中,我采用的特征提取模型是向量空间模型([VSM](http://en.wikipedia.org/wiki/Vector_space_model)),即将样本转换为向量。为了能实现这种转换,需要进行确定特征词典和得到特征向量的过程。
⑤虽然可以将所有样本的词都提取出来作为词典,但随着样本数目的增多,词典规模可能达到万级、千万级甚至亿级,这么大的维度可能会带来[维度灾难](http://en.wikipedia.org/wiki/Curse_of_dimensionality),因此就要想办法从大量的特征中选择一些有代表性的特征而又不影响分类的效果,这个环节,我采用了目前领域内认为比较好的卡方检验方法得到每类中的关键词。
### 实验步骤
#### 1. 数据预处理
原始数据集中存在重复标记的情况,这部分数据属于噪声,针对噪声的处理,简单的方法有直接去除和随机保留一条数据。本实验中采取直接去除。
相关代码如下:
```python
from collections import Counter
dataset = open("dataset.txt", encoding='UTF-8')
lines = []
for line in dataset.readlines():
lines.append(line[2:])
dataset.close()
newlines = dict(Counter(lines))
# ls = [key for key, value in newlines.items() if value > 1] # 只展示重复元素
dic = {key: value for key, value in newlines.items() if value > 1} # 展现重复元素和重复次数
```
#### 2. 分词和过滤
##### 2.1 分词
jieba分词是国内程序员用Python开发的一个中文分词模块,其主要处理思路如下:
1、加载词典dict.txt。结巴分词自带了一个叫做dict.txt的词典,里面有2万多条词,包含了词条出现的次数(这个次数是于作者自己基于人民日报语料等资源训练得出来的)和词性。
2、依据词典dict.txt,基于Trie树结构实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG)。
3、对于词典中未收录词,采用了基于汉字成词能力的HMM模型,使用viterbi算法预测分词。
4、已收录词和未收录词全部分词完毕后,使用动态规划寻找DAG的最大概率路径,找出基于词频的最大切分组合。
5、输出分词结果。
jieba分词有专门的python包——jieba,通过安装及import即可使用。虽然jieba分词效果上不如中科院的ICTCLAS和哈工大的ltp,但其由python编写,代码清晰,扩展性好,所以在本实验中,采用jieba包进行分词。
相关代码如下:
```python
file = open(dataFileName, encoding='UTF-8')
# 读取文件中的所有行
contents = file.readlines()
file.close()
for line in contents:
classVec.append(int(line[0]))
# 利用正则表达式u'[\u4e00-\u9fa5]+'过滤掉输入数据中的所有非中文字符;
contentstr = "".join(re.findall(u'[\u4e00-\u9fa5]+', line[2:]))
content = (" ".join(jieba.cut(contentstr))).strip('\n').split(' ')
```
##### 2.2 去除停用词
对于分词后的每个词语,都需要和停用词列表进行对比来决定是否保留。
相关代码如下:
```python
stop = [row.strip() for row in open('stop.txt', 'r', encoding='utf-8').readlines()] # 停用词
content = [item for item in content if item not in stop]
```
##### 2.3 一字词语过滤
分词结果中会出现一些一字名词词语,�
没有合适的资源?快使用搜索试试~ 我知道了~
Python毕业设计基于机器学习朴素贝叶斯的微博评论情感分析项目源码+数据集

共27个文件
txt:20个
md:2个
npz:2个

1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉

温馨提示
Python毕业设计基于机器学习朴素贝叶斯的微博评论情感分析项目源码+数据集,该项目是个人毕设项目,答辩评审分达到98分,代码都经过调试测试,确保可以运行!欢迎下载使用,可用于小白学习、进阶。该资源主要针对计算机、通信、人工智能、自动化等相关专业的学生、老师或从业者下载使用,亦可作为期末课程设计、课程大作业、毕业设计等。项目整体具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现不同的功能。 Python毕业设计基于机器学习朴素贝叶斯的微博评论情感分析项目源码+数据集Python毕业设计基于机器学习朴素贝叶斯的微博评论情感分析项目源码+数据集Python毕业设计基于机器学习朴素贝叶斯的微博评论情感分析项目源码+数据集Python毕业设计基于机器学习朴素贝叶斯的微博评论情感分析项目源码+数据集Python毕业设计基于机器学习朴素贝叶斯的微博评论情感分析项目源码+数据集Python毕业设计基于机器学习朴素贝叶斯的微博评论情感分析项目源码+数据集Python毕业设计基于机器学习朴素贝叶斯的微博评论情感分析项目源码+数据集Python毕业设计基于机器学习朴素贝叶斯的微博评论情感分
资源推荐
资源详情
资源评论


























收起资源包目录






























共 27 条
- 1
资源评论

- xiaojin002362024-12-26非常有用的资源,有一定的参考价值,受益匪浅,值得下载。
- m0_655817932025-04-10资源有很好的参考价值,总算找到了自己需要的资源啦。
- 普通网友2025-02-28感谢资源主的分享,这个资源对我来说很有用,内容描述详尽,值得借鉴。

yava_free
- 粉丝: 7241
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 浅析智能化技术在电气工程自动化的应用(1).docx
- 松下机器人中厚板软件教学讲义省公共课一等奖全国赛课获奖课件.pptx
- 大学毕业论文-—快速成型机设计含全套cad图纸和word说明书(1).doc
- 学位论文-—图书管理系统设计(1).doc
- 电气工程及电气自动化的计算机控制系统应用(1).docx
- 软件学院开学典礼的发言稿范文(1).doc
- C#-TCP实现多个客户端与服务端-数据-与-文件的传输.doc
- 网络拓扑图素材大全PPT学习课件.ppt
- 计算机生产专业实习报告(1).docx
- 全国计算机二级C语言上机考点省公共课一等奖全国赛课获奖课件.pptx
- 基于核心素养的中职计算机应用专业课程革命(1).docx
- 基于SpringCloud-微服务系统设计方案.doc
- 网络营销环境-微观环境.ppt
- 移动电子商务应用研究报告书(1).doc
- CLShanYanSDKDataList.sqlite
- 系统软件与应用软件(1).pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
