热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

朴素贝叶斯算法实现文本分析

朴素贝叶斯算法实现文本分析​最近在公司做的一个用户发言分析的项目中用到了文本分析,就产生一个对之前所学的文本分析方法做一个总结,今天主要想讲一讲朴素贝叶斯算法实现的文本分析.朴

朴素贝叶斯算法实现文本分析

​ 最近在公司做的一个用户发言分析的项目中用到了文本分析,就产生一个对之前所学的文本分析方法做一个总结,今天主要想讲一讲朴素贝叶斯算法实现的文本分析.

朴素贝叶斯:

​ 在学习机器学习算法之前,必须明确的一点就是,任何一个算法都是基于一定的统计学方法对一个事件进行预估,并按照最大概率假设这件事的结果.朴素贝叶斯算法或者说朴素贝叶斯分类器就是基于朴素贝叶斯定理来实现的.

贝叶斯定理:贝叶斯定理是描述两个事件(事件A, 事件B)之间条件概率的定理.

有一个公式说明了这个定理:

img

简单来说,这个公式说明了在事件B发生的前提下,事件A发生的概率,可以用 事件A发生的前提下事件B发生的概率 乘以 事件A发生的概率 除以 事件B发生的概率得出.

来认识几个名词:

先验概率: P(A), P(B) 被称为先验概率, 这是因为其只考虑单事件的各方因素而忽略其他事件的影响而得出的.

后验概率:P(A|B), P(B|A)分别被称为A和B的后验概率,其综合了两个事件之间的联系而得出.

朴素贝叶斯分类:

在了解贝叶斯定理之后,朴素贝叶斯分类的实现也就不难理解了.

朴素贝叶斯分类是基于贝叶斯定理的,首先它是一个监督学习算法,也就是说,类别已经事先规定好,分类器需要做的事就是,计算该样本发生的情况下在各类别中出现的概率,然后对其进行排序,取概率最大的分类作为最后的结果.我们规定训练集中的每个样本必须唯一,因此 只需要计算p(B|A)XP(A)即可.

文本分析代码实现:

sklearn 是一个实现机器学习算法的第三方库,在此,我就直接借此库展示朴素贝叶斯算法实现的文本分析:

from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
import pandas as pddef verify():data = pd.read_excel('question.xlsx', index_col=0).head(120)x_train, x_test, y_train, y_test = train_test_split(data['questions'], data['flags'], test_size=0.2, random_state=23)# 特征工程transfer = TfidfVectorizer()x_train = transfer.fit_transform(x_train)x_test = transfer.transform(x_test)# 朴素贝叶斯算法预估器estimator = MultinomialNB()estimator.fit(x_train, y_train)# 模型评估score = estimator.score(x_test, y_test)print(score)# 预测y1_predict = estimator.predict(x_test)data = pd.read_excel('question.xlsx', index_col=0).fillna('haha')x_predict = transfer.transform(data.iloc[120:, 0])y_predict = estimator.predict(x_predict)print(y_predict)


推荐阅读
  • 前言:拿到一个案例,去分析:它该是做分类还是做回归,哪部分该做分类,哪部分该做回归,哪部分该做优化,它们的目标值分别是什么。再挑影响因素,哪些和分类有关的影响因素,哪些和回归有关的 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 合并列值-合并为一列问题需求:createtabletab(Aint,Bint,Cint)inserttabselect1,2,3unionallsel ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • OpenMap教程4 – 图层概述
    本文介绍了OpenMap教程4中关于地图图层的内容,包括将ShapeLayer添加到MapBean中的方法,OpenMap支持的图层类型以及使用BufferedLayer创建图像的MapBean。此外,还介绍了Layer背景标志的作用和OMGraphicHandlerLayer的基础层类。 ... [详细]
  • 如何优化Webpack打包后的代码分割
    本文介绍了如何通过优化Webpack的代码分割来减小打包后的文件大小。主要包括拆分业务逻辑代码和引入第三方包的代码、配置Webpack插件、异步代码的处理、代码分割重命名、配置vendors和cacheGroups等方面的内容。通过合理配置和优化,可以有效减小打包后的文件大小,提高应用的加载速度。 ... [详细]
  • 颜色迁移(reinhard VS welsh)
    不要谈什么天分,运气,你需要的是一个截稿日,以及一个不交稿就能打爆你狗头的人,然后你就会被自己的才华吓到。------ ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
author-avatar
你试下再望啊
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有