一、 基本概念

文本情感分析是对文本中的某段已知文字的两极性进行分类,判断出此文字中表述的观点是积极的、消极的、还是中性的情绪。

目前的研究方法主要有两类:一种是基于情感词典的方法,另一种是基于机器学习的方法。前者需要用到标注好的情感词典(英文/中文),通过情感词的褒贬性判断文本的情感倾向。后者是将传统的文本分类方法如朴素贝叶斯(NB)、k近邻(kNN)、最大熵、支持向量机(SVM)等算法应用于情感分类。需要大量的人工标注的语料作为训练集,通过提取文本特征,构建分类器来实现情感的分类。

二、KNN算法

在各种分类算法中,我选择了K-Nearest Neighbor(KNN) 最邻近分类算法进行简单的学习了解。KNN分类算法的思路是:如果一个样本在特征空间中的k个最相似的样本中的大多数属于某一个类别,则该样本也属于这个类别。核心思想俗称“随大流”,基于实例的学习(instance-based learning)和懒惰学习(lazy learning)。懒惰学习:指的是在训练是仅仅是保存样本集的信息,直到测试样本到达是才进行分类决策。

KNN算法的优缺点如下:

优点:(1)简单、易实现、易理解、无需参数估计及训练;

(2)适用于对稀有时间进行分类;

(3)特别适用于多分类问题(multi-modal,分类对象具有多个类别标签),比SVM表现要好。

缺点:(分类)

(1)当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本 占多数。 改进方法:采用权值,与该样本距离小的邻居权值大;

(2)计算量较大,对每一个待分类的样本都要计算它与全体已知样本的距离进行排序继而求得K个最近邻点。目前常用的改进方法,事先对已知样本点进行剪辑,去除对分类作用不大的样本。该改进算法比较适用于容量大的类域,而容量较小的类域容易产生误分。

三、算法实例

一个简单的KNN算法的例子(Python)如下:

1.        import numpy as np

2.        from sklearn import neighbors     #需要加载numpy,sklearn包,这两个都是机器学习或数据挖掘常用的包。

5.        knn = neighbors.KNeighborsClassifier() #取得knn分类器

6.        data = np.array([[3,104],[2,100],[1,81],[101,10],[99,5],[98,2]])  #data对应着打斗次数和接吻次数

7.        labels = np.array([1,1,1,2,2,2]) #labels则是对应Romance和Action

8.        knn.fit(data,labels) #导入数据进行训练

9.        print(knn.predict([[18,90]])) #传入参数为多维数组

假设电影数据如下:

电影名称

打斗次数

接吻次数

电影类型

A

3

104

Romance

B

2

100

Romance

C

1

81

Romance

D

101

10

Action

E

99

5

Action

F

98

2

Action

未知

18

90

待求

注:标红色的未知电影是需要进行预测属于浪漫片还是动作片。

将数据中的“打斗次数”属性标记为X,“接吻次数”标记为Y,这样上述数据都能化为坐标轴中的一点;再将所有点与“未知”的点G进行距离计算,因为这个例子是二维的,因此这里使用

如果是多维的话,可以使用:

。以此类推进行计算,近似为整数,最后得到结果:

a:20

b:18

c:19

d:115

e:117

f:118

因此可以看出,最近的三个点是ABC三点,而ABC三点都是Romance类型。

引申:如果ABC中三个电影分类有一个不是Romance怎么办。遵循少数服从多数的投票法则(majority-voting),让未知实例归类为最邻近样本中最多数的类别。

NLP情感分析——KNN算法相关推荐

  1. python商品评论数据采集与分析可视化系统 Flask框架 requests爬虫 NLP情感分析 毕业设计 源码

    一.项目介绍 python商品评论数据采集与分析可视化系统 Flask框架.MySQL数据库. requests爬虫.可抓取指定商品评论.Echarts可视化.评论多维度分析.NLP情感分析.LDA主 ...

  2. 用户评论想表达什么?NLP情感分析技术告诉你答案

    情感分析是自然语言处理中常见的场景,比如淘宝商品评价,饿了么外卖评价等,对于指导产品更新迭代具有关键性作用.通过情感分析,可以挖掘产品在各个维度的优劣,从而明确如何改进产品. 比如对外卖评价,可以分析 ...

  3. NLP情感分析笔记(四):卷积情感分析

    卷积情感分析 CNN: 能够从局部输入图像块中提取特征,并能将表示模块化,同时可以高效第利用数据 可以用于处理时序数据,时间可以被看作一个空间维度,就像二维图像的高度和宽度 那么为什么要在文本上使用卷 ...

  4. NLP情感分析笔记(三):Faster 情感分析

    Faster 情感分析 一.数据预处理: FastText分类模型: 其他文本分类模型最大的不同之处在于其计算了输入句子的n-gram n-gram: 将文本里面的内容按照字节进行大小为n的滑动窗口操 ...

  5. NLP情感分析基础知识

    1.什么是情感分析? 情感分析,又称意见挖掘,是分析人们对产品.服务.组织.个人.问题.事件.主题等 实体的意见.评价.态度和情感及其属性的研究领域. 2.情感分析的级别: 1.文档级(对单一实体的分 ...

  6. NLP情感分析笔记(五):多类型情感分析

    在本次学习中,我们将对具有 6 个类的数据集执行分类.请注意,该数据集实际上并不是情感分析数据集,而是问题数据集,任务是对问题所属的类别进行分类.但是,本次学习中涵盖的所有内容都适用于任何包含属于 

  7. NLP情感分析笔记(一):Baseline

    一.情感分析Baseline: IMDb数据集包含50000条电影评论,每条评论都标记为正面或负面评论 数据集下载:http://ai.stanford.edu/~amaas/data/sentime ...

  8. 自然语言处理NLP——情感分析(Sentiment Analysis)简述

    基于文本的情感分析,主要关注文章中的主观句,所以,subjective classifier即将主观句从文本中分离出来,就是整个情感分析的第一步.一般来说,这个方法是基于规则的分类方法--句子中包含n ...

  9. python nlp情感分析之极性分析

    背景 目前做情感分析基本使用机器学习或者深度学习进行情感分析,准确率已经很高了.最近与某高校新闻媒体学院合作进行大数据情感分析,学院老师要求采用情感字典进行情感极性分析,之前做项目情感分析都是采用深度 ...

最新文章

  1. Paper Review: Bayesian Regularization and Prediction
  2. mysql对数据库进行备份吗_怎么对MySQL数据库进行备份与恢复
  3. arcgis工具python源码_面向Arcgis的python脚本编程_数据
  4. 网络15软工个人作业5——软件工程总结
  5. pe安装usb3.0驱动_电脑店U盘启动盘制作工具下载安装须知
  6. Spring之JDBCTemplate
  7. centos 使用java_如何在CentOS 8上安装Java
  8. 功能引导 android,Flutter实现App功能引导页
  9. 38 FI配置-财务会计-固定资产-组织结构-指定帐户确定
  10. ug80浩强工具_浩强工具下载|浩强UG工具下载 v2.59 最新版 - 比克尔下载
  11. 项目管理 : 智能家居项目实施计划
  12. bin文件合并工具(UBIN)使用方法
  13. ipad可以装二级计算机培训吗,当初给孩子买iPad上网课的家长,开始后悔了……
  14. android 13 热点启动流程
  15. python二手交易系统毕业设计开题报告
  16. 腾讯产品的创新“渐进式”
  17. 用H5新增标签实现自定义彩色花瓣
  18. 〖产品思维训练白宝书 - 核心竞争力篇①〗- 产品经理 的核心竞争力解读
  19. 冷暖自知 by 张楚
  20. Aspen中物性方法选择

热门文章

  1. 计算机二级MS office高级应用考试笔记攻略(完整-知识点)
  2. 学习笔记三:衍生兄弟——过冲和振铃
  3. opencv位运算,cv2.bitwise_and,cv2.bitwise_or,cv2.bitwise_not,cv2.bitwise_xor
  4. BZOJ3161 : 孤舟蓑笠翁
  5. HDU 4435 charge-station (搜索+YY)
  6. html5 css3制作柱形图,一步一步教你实现纯CSS的柱形图
  7. 如何将PDF文档进行翻译?PDF文档翻译简单方法介绍
  8. Hash校验工具、MD5 SHA1 SHA256命令行工具
  9. 联想服务器双系统安装,联想Y700一键安装双系统教程
  10. 使用Java写文件不覆盖原有内容