NLP情感分析——KNN算法

一、 基本概念


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

目前的研究方法主要有两类:一种是基于情感词典的方法,另一种是基于机器学习的方法。前者需要用到标注好的情感词典(英文/中文),通过情感词的褒贬性判断文本的情感倾向。后者是将传统的文本分类方法如朴素贝叶斯(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),让未知实例归类为最邻近样本中最多数的类别。

  • 2
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大数据和算法、数据分析的应用场景非常广泛,可以涵盖各个行业和领域。以下是一些常见的大数据和算法、数据分析应用场景: 电子商务:通过收集用户消费习惯、季节和产品生命周期的数据,建立算法模型来确定下一个月、几个月甚至一年的消费者需求。这样可以提高订单转化率。在营销方面,可以给买家贴标签,建立人群画像,针对不同人群精准投放广告和优惠券。 医疗保健:医生根据患者的症状和检查结果,结合自身经验得出结论,最终提供相应的治疗方案。不同地区的医疗水平各不相同,尤其是高水平医生短缺,好医院分布不均。根据患者的症状检测报告,通过病理分析模型确定病因,并提供具体的治疗方案。即使在医疗保健不发达的地区,也只需要输入患者的症状和医疗记录,就可以体验高级医生的服务。 金融风险管理:金融机构利用大数据技术来分析交易数据、市场趋势和经济指标,识别潜在的风险和欺诈行为。大数据技术还可以用于建立预测模型,帮助金融机构预测市场变化,制定有效的风险管理策略。 物流和供应链管理:大数据技术可以优化物流运输路线、库存管理和供应链协调。通过分析大量的实时物流数据和市场需求数据,企业可以提高配送效率,减少成本,并提供更好的客户服务。 智能城市和交通管理:大数据技术可以帮助城市管理者监测和分析交通流量、能源消耗和环境污染等数据,为城市规划和交通管理提供决策支持。通过智能化的交通系统和城市基础设施,可以提高交通效率

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值