文本自动分类——分类算法KNN(K最邻近)应用(一)
2023/9/14 8:53:39 阅读:47 发布者:
以下文章来源于SPSS学堂 ,作者helloiamx
作者:刘丽帆
刚刚开始接触Python的小伙伴都觉得编程很高深,提到编程可能首先想到的就是程序员,其实通俗一些来讲,Python等编程语言和我们常用的SPSS等软件区别就在于,SPSS通过点击按钮就能实现的功能,我们可以用编程语言,指挥电脑帮我们一步一步实现这个按钮背后的功能。
本次选取了来自一项研究生科研创新计划项目中的一篇已发表文章《基于论文自动分类的社科类学科跨学科性研究》,通过学习这篇简单的文章让大家了解Python语言的应用。本期我们首次涉及到编程语言Python和一些机器学习算法,因此,文中会带大家先简要了解一些该领域内的基础概念,也是希望通过不同领域的研究方法带给大家一些新的研究思路。
1
什么是论文自动分类?
这篇文章属于社科类,“隔行如隔山”,对于非专业的小伙伴来说还是有些不友好,引言以及相关研究部分都是该领域的基础研究内容和发展,非专业领域的小伙伴可以略过,但是研究思想是重点,我们可以用简单易懂的方式一起学习。
分类很好理解,拿垃圾分类举个例子,一个塑料瓶,属于哪种垃圾就丢到哪种垃圾箱里,论文分类也一样,是哪种类型的文章就放到哪个类别里。那么论文自动分类是如何做到的呢?其实跟垃圾自动分类一个道理:根据特征分类。
垃圾的判断特征包含了外观、颜色、硬度、湿度等等,当然这是垃圾自动分类工程师的研究内容,那以社科类论文作为研究内容的话,论文的判断特征就成了论文题目、作者、关键词、摘要等信息。举一反三,小伙伴们研究哪个领域,对自己所在的领域就已经具备一定的专业了解,那这一思路完全可以运用到自己的专业领域,例如对该领域的科技文献进行自动分类以及文本内容的挖掘,研究自己专业领域当前的热点研究方向、学科交叉趋势等。
2
机器学习简介
相信大家都听说过机器学习(Machine Learning,ML),Machine就是计算机。这是让计算机像人一样去学习的一门学问,是不是听起来很高大上?让计算机根据你提供的数据,训练得到某种模型,然后把结果反馈给你,例如你告诉计算机上一周起床时间以及迟到情况,它就能推算你今天迟到的概率,听起来像不像统计学里的回归问题?但是你能想到二者区别在哪里吗?
这其实是机器学习中最简单例子之一,今天这篇文章的相关研究里也列出了一些机器学习算法,例如朴素贝叶斯(NB)、支持向量机(SVM)、卷积神经网络(CNN),当然以后会在其他的文章学习中从具体的应用场景去为大家做一些讲解,用起来也不会觉得那么抽象。
3
数据处理——特征与权重
简单了解什么是机器学习之后,今天我们从数据处理开始为大家分类算法之一——KNN算法的应用,也就是了解特征和权重。
在第1小节中已经简要了解了什么是自动分类以及自动分类对数据的要求,首先是需要找出特征,N个特征用向量表示就是N维特征向量。该文章中用了10个学科近238791篇论文,为了能够对文本进行计算,这篇文章使用筛选出的高频词语作为特征项,选出的高频词个数就代表这个文章的特征向量维数。例如选出N个词W1,W2,W3……WN,一篇文章中当存在W1这个词时,在W1所代表的维度下记下特征值(该特征词的特征值都是通过算法计算得到的数值),不存在就记0。将每个文本用N维空间向量进行表示,这就是空间向量模型的简要原理,是文本量化的过程,便于文本之间计算相似度,然后按照相似度进行分类。
权重很好理解,在所有的特征词中,权重越高说明这个词更适合用于分类。这篇文章采用的是TF-IDF算法,计算公式如下:
也可以拆开来理解,TF也就是tfij表示特征词ti在一篇文档中的词频,IDF表示该特征词的逆文档频率,ni指出现ti的文章数,N指数据中总文章数,TF和IDF的乘积用来表示空间向量中每个特征词的权重。
本次分享内容先到这了,下一期我们继续学习KNN算法的应用,请继续关注后期内容ღ
刘丽帆
南京理工大学情报学硕士研究生
方向:信息检索、数据分析与自然语言处理
转自:“量化研究方法”微信公众号
如有侵权,请联系本站删除!