人工智能 - 朴素贝叶斯、案例:文本情感分析

朴素贝叶斯:用概率去预测

1、朴素贝叶斯介绍

在这里插入图片描述
朴素:指的是,特征之间相互独立

拉普拉斯平滑系数,每个种类都加k,避免条件概率出现0
区分情书与作业的例子,用关键词:
在这里插入图片描述
在这里插入图片描述
是情书的概率更高,所以估计为情书

2、案例:商品评论情感分析

在这里插入图片描述

import pandas as pd
import numpy as np
import jieba
import matplotlib.pyplot as plt
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayee import MultinomialNB

#获取数据
data = pd.read_csv("./书籍评价.csv",encoding='gbk')
data

#数据基本处理
#2.1取出内容列,用于后面分析
content = data['内容']
content
#把评价列中好评差评转成数字
data.loc[:,'评价']
data.loc[data.loc[:,'评价']=='好评','评论编号']=1
data.loc[data.loc[:,'评价']=='差评','评论编号']=0
#2.3选择停用词
stopwords=[]
with open('./stopwords.txt','r',encoding='utf-8') as f:
	lines = f.readlines()
	#print(lines)
	for tmp in lines:
		line = tmp.strip()
		stopwords.append(line)

stopwords = list(set(stopwords))
stopwords

#2.4 把‘内容’处理,转化成标准格式
comment_list = []
for tmp in content:
	print(tmp)
	seg_list = jieba.cut(tmp,cut_all=False)
	seg_str = ','.join(seg_list)
	comment_list.append(seg_str)

comment_list
#统计词个数
con = CountVetorizer(stop_words = stopwords)
X = con,fit_transform(comment_list)
X.toarray()
con.get_feature_names()

#2.5分割训练集和测试集
x_train = x.toarray()[:10,:]
y_train = data['评价'][:10]
x_train
y_train
x_test = x.toarray()[10:,:]
y_test = data['评价'][10:]
#3 模型训练
mb = MultinomialNB(alpha=1)
mb.fit(x_train,y_train)
y_pre = mb.predict(x_test)
print('预测值:',y_pre)
print('真实值:',y_pre)
#4.模型评估
mb.score(x_test,y_test)

3、朴素贝叶斯总结

3.1朴素贝叶斯优缺点

优:有稳定的分类效率;对缺失数据不敏感;常用于文本分类
缺:某些时候会由于假设的先验模型的原因导致预测效果不佳
在这里插入图片描述
朴素贝叶斯:基于贝叶斯定理和特征条件独立假设的分类方法

朴素贝叶斯朴素在哪里?
当Y确定时,X的各个特征分量取值之间相互独立

为什么引入条件独立假设?
为了避免贝叶斯定理求解时面临的组合爆炸、样本稀疏问题

在估计条件概率时出现概率为0的情况怎么办?
引入拉普拉斯平滑系数

为什么属性独立性假设在实际情况中很难成立,但朴素贝叶斯仍然能取得较好效果?
在使用分类器之前,进行了特征选择,这一过程排除特征之间的共线性,选择相对较为独立的特征

朴素贝叶斯与逻辑回归的区别?
朴素贝叶斯是生成模型,而LR是判别模型
朴素贝叶斯是基于很强的条件独立假设,而LR对此没有要求
朴素贝叶斯适用于数据集少的情景,而LR适用于大规模数据集

生成模型VS判别模型?
判别式模型:要确定一个羊是山羊还是绵羊,从历史数据中学习到模型,通过提取这只羊的特征来预测这只羊是山羊的概率,以及是绵羊的概率。(一个模型)
生成式模型:根据山羊的特征学习出一个山羊模型,根据绵羊模型学习出一个绵羊模型。然后从这只羊中提取特征,放在山羊模型中看概率是多少,放在绵羊中看概率是多少,哪个大取哪个。(两个模型)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值