论文:Baselines and Bigrams: Simple, Good Sentiment and Topic Classification

参考:https://blog.csdn.net/leayc/article/details/80037757 跟原文有一定差异,理解不一致。

朴素贝叶斯(Naive Bayes, NB)和支持向量机(Support Vector Machines, SVM)的变体常被用作文本分类的基线方法,但它们的性能因模型变体、使用的特性和任务/数据集的不同而有很大差异。Sida Wang 和 Christopher D. Manning基于两种算法的特质,提出了NBSVM算法,实验证明,NBSVM在情绪分析数据集上优于大多数算法的结果,甚至有时能达到start-of-the-art,因此在文本分类中常被作为一个有用的baseline。

整体思想是把 NB 和 SVM 的长处综合一下,构造一个简单的线性模型。在几个情感分析的数据集上结合 bigram 得到的效果不错。

方法也很简单,就是用 NB 和 SVM 的思想来构造一个线性分类器:

具体可以拆解成四个部分:

1. 构造权重向量 r:

其中,,α是平滑系数,防止0的情况出现,是第 i个样本的特征向量的第 j个特征出现的次数。这样求出的向量 r称为 log-count ratio,其实就是类似WOE、

简单来说就是求正负样本上所有特征出现的频率的比值的对数。这就是模型中的 NB 部分,只不过对二分类问题用正负样本特征的频率比直接替代了分别求概率然后比较的步骤。

注意:把log里面的比例项,在贝叶斯理论里,叫做贝叶斯因子,衡量的一个理论优于另一个理论的相对确证性,也是似然概率的比值,所以,这里的log-count ratio计算出的权重向量,衡量的是整体的训练集上数据x支持正样本的概率是支持负样本的概率的倍数。这个比例取log后,就是评分卡里的WOE,即证据权重。
2. 多项式 NB

在 MNB 中,w = r, ,两个 N 分别是正样本和负样本的数量。作者补充说另一篇文献发现二值化的 f(k)效果更好,所以 f(k)可以做个二值化。多项式的意思的是似然函数中服从多项式分布。

3. SVM
把带 L2 约束的 SVM 的优化目标函数写出来:

经验证 L2-loss 比 L1-loss 表现好,而且稳定(这个哪里需要验证啊?理论就可以得到这个结论)。实现时使用了 LibLinear 库。

4. SVM + NB features
怎么把 NB 和 SVM 搓到一起的呢?
目标函数还是 SVM 的 L2-loss,但 x(k)这里变成了 r̂ ∘f^(k)。这个圈表示对应位置元素相乘,即所谓的 element-wise product,实际上就是二值化后的输入又加入了 NB 分类权重。其实就是MNB特征,即上面红色部分的NB权重跟原始特征做加权,得到MNB特征,这么做,有利于长文本分类,作者说还可以在 MNB 和 SVM 间做个均衡:

,这里意思是SVM得到的支持向量(用于区分正负的特征)在所有特征集上的比例,与上面似然比一样的道理,β 称为内插参数,可以理解为一种正则化:相信 NB 的判断,除非 SVM 置信度非常高。

系统学习NLP(二十六)--NBSVM相关推荐

  1. 系统学习NLP(十六)--DSSM

    转自:http://blog.csdn.net/u013074302/article/details/76422551 导语 在NLP领域,语义相似度的计算一直是个难题:搜索场景下query和Doc的 ...

  2. 无人驾驶汽车系统入门(二十六)——基于深度学习的实时激光雷达点云目标检测及ROS实现

    无人驾驶汽车系统入门(二十六)--基于深度学习的实时激光雷达点云目标检测及ROS实现 在前两篇文章中,我们使用PCL实现了在点云中对地面的过滤和点云的分割聚类,通常来说,在这两步以后我们将对分割出来的 ...

  3. JavaScript学习(二十六)—事件处理程序的添加与删除

    JavaScript学习(二十六)-事件处理程序的添加与删除 一.什么是事件? 所谓事件就是指用户或页面自身的某些行为,如点击鼠标,敲击键盘都是属于事件. 二.事件处理程序 当事件被触发时会引起某些程 ...

  4. STM32学习心得二十六:DAC数模转换实验

    记录一下,方便以后翻阅~ 主要内容: 1) DAC数模转换原理: 2) 寄存器和库函数介绍: 3) 相关实验代码解读. 实验功能:系统启动后,按WK_UP键,输出电压加200点,对应电压值200*3. ...

  5. Shell脚本学习-阶段二十六-Web服务与端口

    文章目录-Shell阶段二十六-端口与服务对照表 前言 端口与Web服务对照表 简介 前言 端口与Web服务对照表 2端口:管理实用程序 3端口:压缩进程 5端口:远程作业登录 7端口:回显 9端口: ...

  6. Stduino学习(二十六)水位传感器模块

    37种传感器(二十六)水位传感器模块+Stduino Nano&UNO 本文转载自:http://www.stduino.com/forum.php?mod=viewthread&ti ...

  7. JVM 学习笔记二十六、JVM监控及诊断工具-GUI篇

    二十六.JVM监控及诊断工具-GUI篇 1.工具概述 使用上一张命令行工具或组合能帮您获取目标Java应用性能相关的基础信息,但他们存在下列局限: (1)无法获取方法级别的分析数据,如方法间的调用关系 ...

  8. 系统学习NLP(十二)--文本表示综述

    文本表示,简单的说就是不将文本视为字符串,而视为在数学上处理起来更为方便的向量(也就是文本特征抽取).而怎么把字符串变为向量,就是文本表示的核心问题. 文本表示,基于类型分为: 长文本表示 短文本表示 ...

  9. 嵌入式Linux系统编程学习之二十六多线程概述

    文章目录 一.多线程概述 二.线程分类 三.线程创建的Linux实现 一.多线程概述   进程是系统中程序执行和资源分配的基本单位.每个进程有自己的数据段.代码段和堆栈段,这就造成进程在进行切换等操作 ...

  10. 系统学习深度学习(二十六)--BiRNN

    转自:http://blog.csdn.net/jojozhangju/article/details/51982254 1. Recurrent Neural Network (RNN) 尽管从多层 ...

最新文章

  1. mac terminal常用命令接触
  2. ylbtech-Unitity-CS:Hello world
  3. Linux内存管理(经典)
  4. python实时获取子进程输出_Python 从subprocess运行的子进程中实时获取输出的例子...
  5. ArcGIS Engine开发之旅02--ArcGIS Engine中的类库
  6. 程序员如何帮助公司快速上市、获得分红?
  7. string 操作 java_Java中String类的一些常见问题
  8. vlan的基本指令_华为:vlan基础命令及配置实验
  9. 为什么蚕宝宝很有钱?
  10. 前端开发SEO搜索引擎优化方案
  11. 最基本财务基础知识,财务知识基础来源
  12. Maven第7篇:聚合、继承、单继承问题详解
  13. web常见的 HTTP 5xx 状态汇总
  14. 2021年 第12届 蓝桥杯 Java B组 省赛真题详解及小结【第1场省赛 2021.04.18】
  15. ESP32基础应用之使用两个ESP32通过阿里云物联网平台实现相互通信
  16. Element ui 表单验证触发方式:trigger的两种选项
  17. 一张图看懂梯度、散度、旋度、Jacobian、Hessian和Laplacian
  18. 什么是挂载,Linux挂载如何实现详解
  19. 34. 在排序数组中查找元素的第一个和最后一个位置给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标
  20. 计算机组成原理硬布线实验心得,计算机组成原理实验 2.9 硬布线控制器课件

热门文章

  1. Gstreamer1.16.2与Glib2 signals关键字冲突解决(十一)
  2. FFmpeg h264转h265命令(九)
  3. Android修改kernel logo和开机动画(android)
  4. Android5.x(NTP和NITZ)时间同步
  5. css之div内部靠右
  6. 深度学习自学(二十二):人脸检测人脸识别-嵌入式平台方案汇总
  7. Windows 10某个网络端口被占用怎么办?
  8. qt中实现左右分割线_一种快速刷新richedit中内嵌动画的方法的实现
  9. jsp mysql论坛_体育论坛ssm,mysql)
  10. go语言打印日期_基于 Go 语言开发在线论坛(八):消息、视图及日期时间本地化...