本发明涉及机器学习领域,尤其涉及一种面向时间序列的热点聚类方法。
背景技术:
随着信息时代的快速发展以及互联网热潮的再一次兴起,每日在网络上中传送的数据量已经达到了zb级别,数据就是知识、就是经验、就是规律,如何高效地利用这些数据创造出更大的价值成为了当今研究者们不懈奋斗的一个重要目标。而随着近些年人工智能井喷式地爆发,各种机器学习算法、深度学习算法成为了与大数据时代最好的搭配,“大数据 机器学习算法”帮助我们完成了以前只能幻想的目标。
热点聚类指的是从学科包含的成果信息出发,研究其基于时间序列的热点轨迹。成果信息包括:论文、专利、项目等。每个学科的研究热点方向会随着时间的发展产生巨大变化,以计算机学科为例:计算机是一个专业方向非常丰富的学科,包括云计算、计算机视觉、自然语言处理、信息安全、计算机网络等等。如果我们想要了解这些研究方向的发展趋势,每一年比较火热的研究方向,可以主要通过聚类的方式解决。聚类,即将将物理或抽象对象的集合分成由类似的对象组成的多个类的过程,聚类分析起源于分类学,但是聚类不等于分类,分类指的是已有固定数目的分类,把待分类对象根据条件划分到这些已有类别中;而聚类与分类的不同在于,聚类所要求划分的类是未知的。以下将对现有的聚类技术进行总结,并分析基于现有技术仍不能解决的问题。
现有的机器学习方法中,无监督的方法由于不需要训练过程、不需要预先对文档进行手工标注类别,因此具有一定的灵活性和较高的自动化处理能力,已经成为对文本信息进行聚类的重要手段,当前绝大部分的聚类算法也属于无监督的机器学习算法。主要的算法有以下几种:
1、基于距离划分思想的k-means算法、clarans算法等。
2、基于层次聚类思想的birch算法、cure算法等。
3、基于密度划分思想的dbscan算法、optics算法等。
4、基于网格的sting算法、clique算法等。
5、基于图的click算法、opossum算法等。
以及同步聚类、近邻传播聚类等等。
现有的聚类方法非常丰富,但均仅停留在将静态数据进行分类的步骤。而一些迫切需要的现实问题,通过以上列举的算法并不能帮助我们完成这一目的。比如想将某一个学科下的论文进行研究热点的划分,并按照时间序列进行趋势分析时会存在两个问题:第一、现有分类算法只能将成果信息进行聚类划分,但是每个类别的主题词不能确定。第二、以上的聚类算法都忽略了时间这个特征,不能帮助我们从时间维度去分析热点的发展趋势。
技术实现要素:
为了解决目前推荐系统的一些弊端,我们提出一种面向时间序列的热点聚类方法,其包括三个步骤:
步骤一:输入一学科论文进行聚类,其具体方法为:输入文件,将包括所述学科论文的关键词信息的文件导入模型,所述关键词为:标题、摘要、论文关键词、发表年份;取出所述关键词进行词频统计,将词频小于某一阈值的词删除,剩余的词进行词向量计算;使用dbscan算法对剩余的关键词进行聚类;将论文按照其关键词所在类别进行分类;
步骤二:对聚类结果进行关键词生成和抽取,其具体方法为:对步骤一中得到的每个类综合考虑共现词对的位置信息、词性、tf_idf值以及共现词的互信息,具体的:首先对论文的题目、摘要做分词处理,以论文关键词为分词的词典;进行考虑词性的tf-idf值计算,计算分词后统计名词、动词、形容词、副词所占的百分比,计算词的tf-idf值的时候采用考虑词的词性的方法计算;之后进行词与词之间互信息的计算;将在同类文章中抽取词汇权重最大的共现词作为该类文章的主题词,并将主题词作为标签添加在每篇论文的文件上,作为该篇论文的热点;
步骤三:对步骤二结果进行面向时间序列统计并输出结论,其具体方法为:根据每个论文文件的热点标签,对于每个热点类,取出其所有论文,根据论文的时间特征,按照以年为时间单位进行论文数量统计;最后将该学科下每个热点类的时间趋势用折线图的方式进行输出,得到每个研究热点的发展趋势图。
所述对聚类结果进行关键词生成和抽取步骤中,所述考虑词性的tf-idf值计算过程中名词、动词、形容词、副词所占的百分比的设定的具体方法为:在传统的tf-idf值上乘以系数k,其中k是该词所属的词性所占的比重,其中,名词k=0.5;形容词k=0.4;动词k=0.1;副词k=0。
所述考虑词性的tf-idf值计算过程的改进的tf-idf计算公式为:
newtfidf=k*tfidf
所述tfidf的计算公式为:
所述tfi,j计算公式中,ni,j表示词j在文章i中出现的次数,分母表示词j在所有文章中出现的次数,所述idfi计算公式中,分子|d|表示语料库中文件总数,分母表示含有词ti的文件数目。
所述词与词之间互信息的计算步骤为:
采用p(w1,w2)表示共现词对(w1,w2)在一篇论文信息中出现的概率,即w1,w2共同出现的次数/论文总数,其计算公式如下:
其中|d|表示语料库中文件总数;
同时考虑共现词对位置信息,对论文题目、摘要和论文关键词三个部分设定位置信息量值,如果共现词对出现在题目,论文关键词或者摘要的第一句和最后一句的位置,位置信息量值设定为0.9;如果共现词对中的一个词出现在上述位置,位置信息量值设为0.5;如果共现词对的两个词均没有出现与上述位置,位置信息量设为0.1,那么共现词对位置信息可以表示为
最终综合考虑共现词的互信息、位置信息、考虑词性的tf-idf得到共现词的权重:
与传统的推荐系统的方法相比,热点预测的方法具有以下优势:
本申请提出的面向时间序列的热点聚类方法,不仅仅把同一类的成果聚合到一起,并且还要提取每个类别的代表词,最后从时间序列对热点进行展示。该算法主要有以下三个步骤:第一、对某一学科的近些年成果进行聚类,目前相关的聚类算法已经比较成熟,准确率相对较高,因此可以采用现有的算法进行聚类处理。第二、对聚类结果进行关键词抽取,该步骤是比较关键的一步,某一类的关键词抽取是否准确影响着整个结果,例如一个“云计算”相关的类抽取出关键词为“自然语言处理”,那么对于结果的理解会产生非常大的误差。但是简单的将某一类的词进行词频统计,最后取出出现次数最多的词作为关键词,这一方法的准确度着实不高,因此本文采取重新生成关键词相关技术,提高关键词抽取的准确率。第三、根据前两步骤生成的结果,对每一个类中的所有成果,根据时间特征以年为单位进行统计,便可以形成某个热点基于时间维度的变化趋势。
通过以上三个步骤,可以对学术领域下某个学科进行热点的精准分类,并从时间维度进行各个热点的变化趋势分析,对该学科未来几年的发展有一个整体预测。
附图说明
图1面向时间热点聚类方法流程图;
具体实施方式
以下是本发明的优选实施例并结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于此实施例。
本发明整体流程如图1所示,wei一种面向时间序列的热点聚类方法,其主要包括三个步骤:
步骤一:论文聚类
首先是数据获取。算法的所有输入文件包括某一学科下一段时间内论文的标题、摘要、论文关键词、发表年份。之所以选取这些内容,是因为相比论文全文来说更容易获取。
然后取出所有关键词进行词频统计,将词频小于某一阈值的词删除,剩余的词进行词向量计算,此步骤主要是减少聚类过程的噪声。
最后使用dbscan算法对剩余的关键词进行聚类,因为关键词对于一篇论文来说很具有代表性,使用关键词对文章进行聚类是比较准确的。对于一个学科来讲,如果是非专业人士很难知道这个学科有多少个热点方向,因此如果采用需要初始化聚类族数的算法,例如k-means算法,需要多次实验来确定k值,而且每个学科的热点个数也不尽相同。因此采用不需要提前设置类别数目的dbscan算法,考虑最终结果的准确性,需要多次实验而得到最优的初始化输入——半径。由于通过以上步骤已经筛除了杂质关键词,最终的结果是比较理想的。所有的关键词分类完毕后,就可以将论文按照其关键词所在类别进行分类。
步骤二:主题词生成
对于每个类别使用改进tf-idf算法及共现词的主题词抽取算法对其进行主题词抽取,形成热点类得主题词。该算法主要描述如下:
输入的论文数据包括题目、摘要、关键词,综合考虑共现词对的位置信息、词性、tf_idf值以及共现词的互信息。
首先对论文的题目、摘要做分词处理,以论文关键词为分词的词典。
考虑词性的tf-idf值计算。计算分词后统计名词、动词、形容词、副词所占的百分比,计算词的tf-idf值的时候考虑词的词性。在传统的tf-idf值上乘以系数k,其中k是该词所属的词性所占的比重。其中,名词k=0.5;形容词k=0.4;动词k=0.1;副词k=0.综上所述,改进的tf-idf计算公式为:
newtfidf=k*tfidf
其中,tfidf的计算公式为:
tfi,j计算公式中,分子是词j在文章i中出现的次数,分母是词j在所有文章中出现的次数。idfi计算公式中,分子|d|是语料库中文件总数,分母表示含有词ti的文件数目。
词与词之间互信息的计算。其中p(w1,w2)表示共现词对(w1,w2)在一篇论文信息中出现的概率,它等于w1,w2共同出现的次数/论文总数,其计算公式如下,其中|d|表示语料库中文件总数:
共现词对位置信息是共现词贡献度中重要的部分,可用的论文数据包括论文题目、摘要和关键词,对这三个部分设定位置信息量值。如果共现词对出现在题目,关键词或者摘要的第一句和最后一句的位置,位置信息量值设定为0.9;如果共现词对中的一个词出现在上述位置,位置信息量值设为0.5;如果共现词对的两个词均没有出现与上述位置,位置信息量设为0.1.
综合考虑共现词的互信息、位置信息、考虑词性的tf-idf得到共现词的权重。
在同类文章中抽取词汇权重最大的共现词作为该类文章的主题词,并将主题词作为标签打到每篇论文上,作为该篇论文的热点。根据实际情况,会有部分论文没有标签,也会有部分论文有多个标签。
步骤三:面向时间序列统计
根据以上两个步骤,已经对论文进行了分类,并为每个类别打上了类别标签。对于每个热点类,取出其所有论文,根据论文的时间特征,按照以年为时间单位进行论文数量统计。最后将该学科下每个热点类的时间趋势用折线图的方式进行展示,得到每个研究热点的发展趋势图。
1.一种面向时间序列的热点聚类方法,其特征在于:
步骤一:输入一学科论文进行聚类,其具体方法为:输入文件,将包括所述学科论文的关键词信息的文件导入模型,所述关键词为:标题、摘要、论文关键词、发表年份;取出所述关键词进行词频统计,将词频小于某一阈值的词删除,剩余的词进行词向量计算;使用dbscan算法对剩余的关键词进行聚类;将论文按照其关键词所在类别进行分类;
步骤二:对聚类结果进行关键词生成和抽取,其具体方法为:对步骤一中得到的每个类综合考虑共现词对的位置信息、词性、tf_idf值以及共现词的互信息,具体的:首先对论文的题目、摘要做分词处理,以论文关键词为分词的词典;进行考虑词性的tf-idf值计算,计算分词后统计名词、动词、形容词、副词所占的百分比,计算词的tf-idf值的时候采用考虑词的词性的方法计算;之后进行词与词之间互信息的计算;将在同类文章中抽取词汇权重最大的共现词作为该类文章的主题词,并将主题词作为标签添加在每篇论文的文件上,作为该篇论文的热点;
步骤三:对步骤二结果进行面向时间序列统计并输出结论,其具体方法为:根据每个论文文件的热点标签,对于每个热点类,取出其所有论文,根据论文的时间特征,按照以年为时间单位进行论文数量统计;最后将该学科下每个热点类的时间趋势用折线图的方式进行输出,得到每个研究热点的发展趋势图。
2.根据权利要求1所述的一种面向时间序列的热点聚类方法,其特征在于:所述对聚类结果进行关键词生成和抽取步骤中,所述考虑词性的tf-idf值计算过程中名词、动词、形容词、副词所占的百分比的设定的具体方法为:在传统的tf-idf值上乘以系数k,其中k是该词所属的词性所占的比重,其中,名词k=0.5;形容词k=0.4;动词k=0.1;副词k=0。
3.根据权利要求2所述的一种面向时间序列的热点聚类方法,其特征在于:所述考虑词性的tf-idf值计算过程的改进的tf-idf计算公式为:
newtfidf=k*tfidf
所述tfidf的计算公式为:
tf-idf=tfi,j*idfi
所述tfi,j计算公式中,ni,j表示词j在文章i中出现的次数,分母表示词j在所有文章中出现的次数,所述idfi计算公式中,分子|d|表示语料库中文件总数,分母表示含有词ti的文件数目。
4.根据权利要求3所述的一种面向时间序列的热点聚类方法,其特征在于:所述词与词之间互信息的计算步骤为:
采用p(w1,w2)表示共现词对(w1,w2)在一篇论文信息中出现的概率,即w1,w2共同出现的次数/论文总数,其计算公式如下:
其中|d|表示语料库中文件总数;
同时考虑共现词对位置信息,对论文题目、摘要和论文关键词三个部分设定位置信息量值,如果共现词对出现在题目,论文关键词或者摘要的第一句和最后一句的位置,位置信息量值设定为0.9;如果共现词对中的一个词出现在上述位置,位置信息量值设为0.5;如果共现词对的两个词均没有出现与上述位置,位置信息量设为0.1,那么共现词对位置信息可以表示为
最终综合考虑共现词的互信息、位置信息、考虑词性的tf-idf得到共现词的权重: