一种文本聚类方法及系统与流程

文档序号:11432282阅读:209来源:国知局
一种文本聚类方法及系统与流程
本发明涉及一种文本聚类方法及系统,具体涉及一种能够准确的确定指定主题的核心关键词的文本聚类方法及系统。
背景技术
:现实生活中,经常需要对与某一核心主题相关的关键词进行确定,以获得更多的关于该主题的信息,从而避免对核心主题的理解偏差和遗漏。而目前确定与核心主题相关的关键词的方式是依靠经验来进行确定,而这种方式存在主观判断成分,会导致所确定的关键词对核心主题理解的不准确。由于internet在全球范围内快速发展,信息技术日新月异,人们使用的各种的数据正在以爆炸性速度不断增长。大量的数据存储在数据库中,可以应用于政府办公、商业智能、科学研究和项目开发等。因此,可以通过对海量数据进行数据挖掘来确定与核心主题相关的关键词。在所述
背景技术
部分公开的上述信息仅用于加强对本发明的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。技术实现要素:针对上述技术问题,本发明提供一种文本聚类方法及系统,该方法通过对获取的大数据进行挖掘聚类,从而确定与核心主题相关的关键词,能够减少主观判断成分,增强对核心主题理解的准确性。本发明采用的技术方案为:本发明的一实施例提供一种文本聚类方法,包括:s100:数据获取基于选取的关键词在选取的爬取网站上爬取相关数据文档;s200:数据清洗对爬取的文档进行去重处理,去掉标题相同或者内容相同的文档,以及将剩余的文档按照文档篇幅进行筛选,去掉小于最小字数阈值和大于最大字数阈值以及与指定主题内容不相关的文档;s300:向量特征提取对数据清洗后的所有文档进行分词处理并在每篇文档中提取k个词汇作为文本聚类的向量特征;s400:词条矩阵建立基于提取的向量特征,对所有文档建立词条矩阵;s500:文本聚类利用预设的聚类方法对文档进行聚类;s600:聚类结果分析将聚类后的每一类的文档打散重新计算词频,提取每类词频数最高的n个词生成预定表格,以确定每类文档的主题。可选地,所述最小字数阈值为50个字,所述最大字数阈值为5000个字,所述k个词汇为约1000个词汇,所述n个词约为20个词。可选地,利用词频统计方法来提取所述向量特征。可选地,利用词频统计方法来提取所述向量特征包括:统计经分词处理后的每篇文档的词频,并将词频统计量按照从大到小的顺序进行排序,对排序靠前的高频词汇进行人工筛选,保留与指定主题有关的词汇,选取出频率最高的1000个词汇作为文本聚类的向量特征。可选地,利用tf-idf方法来提取所述向量特征。可选地,利用tf-idf方法来提取所述向量特征包括:根据下述公式确定经分词处理后的每篇文档中的每个词的ti-idf值,然后选取ti-idf值排序靠前的1000个词汇作为所述向量特征:其中,i表示第i条文本,j表示该文本中的第j个词汇,n表示该词在该文本中出现的次数,k表示该文本中一共有k个特征词汇,n表示语料库中的文本总数,m表示包含词语的文本数目。可选地,在r语言环境下,使用jiebar包对数据清洗后的所有文档进行分词,以及使用r语言的tm包对所有文档建立词条文档矩阵。可选地,利用k-means聚类法来对文档进行聚类。可选地,使用python或java语言编写的爬虫程序在所述爬取网站上来爬取所述数据文档,并将爬取结果进行保存。本发明的另一实施例提供一种文本聚类系统,包括:数据获取模块,基于选取的关键词在与选取的爬取网站上爬取数据文档;数据清洗模块,对爬取的文档进行去重处理,去掉标题相同或者内容相同的文档,以及将剩余的文档按照文档篇幅进行筛选,去掉小于最小字数阈值和大于最大字数阈值以及与指定主题内容不相关的文档;向量特征提取模块,对数据清洗后的所有文档进行分词并在每篇文档中提取k个词汇作为文本聚类的向量特征;词条矩阵建立模块,基于提取的向量特征,对所有文档建立词条矩阵;文本聚类模块,利用预设的聚类方法对文档进行聚类;聚类结果分析模块,将聚类后的每一类的文档打散重新计算词频,提取每类词频数最高的预设n个词生成预定表格,以确定每类文档的主题。可选地,所述最小字数阈值为50个字,所述最大字数阈值为5000个字,所述k个词汇为约1000个词汇,所述n个词约为20个词。可选地,所述向量特征提取模块利用词频统计方法来提取所述向量特征。可选地,所述利用词频统计方法来提取所述向量特征包括:统计经分词处理后的每篇文档的词频,并将词频统计量按照从大到小的顺序进行排序,对排序靠前的高频词汇进行人工筛选,保留与指定主题有关的词汇,选取出频率最高的1000个词汇作为文本聚类的向量特征。可选地,所述向量特征提取模块利用tf-idf方法来提取所述向量特征。可选地,所述利用tf-idf方法来提取所述向量特征包括:根据下述公式确定经分词处理后的每篇文档中的每个词的ti-idf值,然后选取ti-idf值排序靠前的1000个词汇作为所述向量特征:其中,i表示第i条文本,j表示该文本中的第j个词汇,n表示该词在该文本中出现的次数,k表示该文本中一共有k个特征词汇,n表示语料库中的文本总数,m表示包含词语的文本数目。可选地,在r语言环境下,使用jiebar包对数据清洗后的所有文档进行分词,以及使用r语言的tm包对所有文档建立词条文档矩阵。可选地,利用k-means聚类法来对文档进行聚类。可选地,使用python或java语言编写的爬虫程序在与所述爬取网站上来爬取所述数据文档,并将爬取结果进行保存。与现有技术相比,本发明通过获取的大数据进行挖掘聚类,从而确定与核心主题相关的关键词,能够减少主观判断成分,增强对核心主题理解的准确性,具有科学性、典型性和普遍性。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1为本发明的文本聚类方法的流程示意图。图2为本发明的文本聚类系统的结构示意图。具体实施方式为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。图1为本发明的文本聚类方法的流程示意图。图2为本发明的文本聚类系统的结构示意图。以下首先结合图1对本发明的一实施例的文本聚类方法进行介绍。如图1所示,本发明的一实施例的文本聚类方法包括以下步骤:s100:数据获取具体地,基于选取的关键词在与指定主题相关的网站上爬取相关数据文档。本发明中的选取的爬取网站与指定主题所涉及的内容相关,例如,以某一指定主题″双创″为例,由于″双创″活动是政府规划和推动的发展战略,所以各项指标与政府发布的政策文件内容紧密相关,随后专题网站和新闻网站的报道、宣传和引导均对双创活动起到很大程度的影响,因而指定主题″双创″的爬取网站主要为:政府网站、专题网站、门户网站、新闻网站。此外,关键词的选取应遵循特征性、普遍性、典型性原则。可使用python或java语言编写的爬虫程序在与所述爬取网站上来爬取所述数据文档,并将爬取结果进行保存。在以主题″双创″为例的情况下,可通过以下3种方式进行爬取:(1)使用百度搜索,在百度搜索关键词,附加″site:+网址″的方式;(2)在有内部搜索引擎的网站进行搜索;(3)在爬取网站的新闻栏目进行爬取。s200:数据清洗具体地,对爬取的文档进行去重处理,去掉标题相同或者内容相同的文档,以及将剩余的文档按照文档篇幅进行筛选,去掉小于最小字数阈值和大于最大字数阈值以及与指定主题内容不相关的文档。在本发明中,所述最小字数阈值可为50个字,所述最大字数阈值可为5000个字。s300:向量特征提取具体地,对数据清洗后的所有文档进行分词并在每篇文档中提取k个词汇作为文本聚类的向量特征。在本发明中,可采用利用词频统计方法和/或利用tf-idf方法来提取所述向量特征。在本发明的一非限制性示例中,利用词频统计方法来提取所述向量特征。具体包括:将分词词频统计量按照从大到小的顺序进行排序,对排序靠前的高频词汇进行人工筛选,保留与指定主题有关的词汇,选取出频率最高的1000个词汇作为文本聚类的向量特征。更具体地,在r语言环境下,使用jiebar包对文章进行分词,把所有文章分词后的词频统计量从大到小排序,对排序靠前的高频词汇进行人工筛选,保留与评价对象有关的词汇,以名词为主,删掉不相关的动词、形容词、副词、虚词等。最终选取出频率最高的1000个左右与评价对象有关的词汇,作为文本聚类的向量特征。在本发明的另一非限制性示例中利用tf-idf方法来提取所述向量特征。具体包括:确定经分词处理后的每篇文档中的每个词的ti-idf值,选取ti-idf值排序靠前的1000个词汇作为所述向量特征。tf-idf的主要思想是:如果某个词或短语在一篇文章中出现的频率tf高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。tf-idf实际上是:tfidf=tfij×idfij,即通过该公式来得到每篇文档的每个词的ti-idf值,tf表示词频(termfrequency),idf表示逆向文件频率(inversedocumentfrequency)。tf公式为:其中,i表示第i条文本,j表示该条文本中的第j个词汇,n表示该词在该文本中出现的次数,k表示文本中一共有k个特征词汇。idf的原则是:如果包含该词条的文档越少,则说明词条具有很好的类别区分能力。举例来说,如果某一类文档中包含词条的文档数为m,而不包含的文档总数为k,所有文档数n=m+k,当m大的时候,k变小,按照idf公式得到的idf的值会小,就说明该词条类别区分能力不强。idf公式为:其中:n表示语料库中的文本总数,m表示包含词语的文本数目,如果该词语不在语料库中,就会导致分母为零,因此一般情况下使用1+mj作为分母。s400:词条矩阵建立具体地,基于提取的向量特征,对所有文档建立词条矩阵。在本发明中,在确定后特征词汇后,使用r语言的tm包对所有文档建立词条文档矩阵。词条文档矩阵是这样的一个矩阵:它的列名是各个特征词,它的行名是爬取的各个数据文档(也称作文章),每个单元格中的数字是所在列的词汇在所在行的文档中出现的次数,即词频,形式可如下表1所示:表1:词条矩阵形式词1词2...文档1.........文档2.....................s500:文本聚类利用预设的聚类方法对文档进行聚类。在聚类方法上,本发明可以使用k-means聚类法,但并不局限于此,也可以采用其他聚类方法,如层次聚类法等。k-means聚类法是一种基于样本间相似性度量的聚类方法,属于非监督学习方法。此算法把n个对象分为k个类,以使类内具有较高的相似度,而且类间的相似度较低。相似度的计算根据一个类中对象的平均值(即类的重心)来进行。具体来说,k-means算法的计算过程包括以下几个步骤:(1)从n个数据对象任意选择k个对象作为初始聚类中心;(2)根据每个聚类对象的均值(中心对象),计算每个对象与这些中心对象的距离;并根据最小距离重新对相应对象进行划分;(3)重新计算每个聚类的均值(中心对象);(4)计算标准测度函数,当满足一定条件,比如各对象的类别划分不再变化,则算法终止;如果条件不满足则回到步骤(2)。由于k-means算法属于公知,本发明省略对其更详细的说明。以利用词频统计方法得到的向量特征为例,在统计词频后,每篇文章对应1000个词有1000个词频值,以该词频值作为该文章在1000维空间的坐标,可以在1000维空间中用一个点表示该文章,即每个点由1000个参数限定,再根据点与点之间的距离(欧氏距离)利用k-means算法进行聚类。以利用tf-idf方法得到向量特征为例,在计算tf-idf后,每一篇文章对应1000个词有1000个得分,以该得分作为该文章在1000维空间的坐标,可以在1000维空间中用一个点表示该文章,即每个点由1000个参数限定,再根据点与点之间的距离(欧氏距离)利用k-means算法进行聚类。将所有的文章进行计算后,可以得到1000维空间中的10万个点,再根据点与点之间的距离利用k-means算法进行聚类。s600:聚类结果分析具体地,将聚类后的每一类的文档打散重新计算词频,提取每类词频数最高的预设n个词生成预定表格,以确定每类文档的主题。以下结合图2对本发明另一实施例的文本聚类系统进行介绍。如图2所示,本发明另一实施例的文本聚类系统包括数据获取模块1、数据清洗模块2、向量特征提取模块3、词条矩阵建立模块4、文本聚类模块5和聚类结果分析模块6。其中,数据获取模块1用于基于选取的关键词在与指定主题相关的网站上爬取相关数据文档。本发明中的选取的爬取网站与指定主题所涉及的内容相关,例如,以某一指定主题″双创″为例,由于″双创″活动是政府规划和推动的发展战略,所以各项指标与政府发布的政策文件内容紧密相关,随后专题网站和新闻网站的报道、宣传和引导均对双创活动起到很大程度的影响,因而指定主题″双创″的爬取网站主要为:政府网站、专题网站、门户网站、新闻网站。此外,关键词的选取应遵循特征性、普遍性、典型性原则。可使用python或java语言编写的爬虫程序在与所述爬取网站上来爬取所述数据文档,并将爬取结果进行保存。在以主题″双创″为例的情况下,可通过以下3种方式进行爬取:(1)使用百度搜索,在百度搜索关键词,附加″site:+网址″的方式;(2)在有内部搜索引擎的网站进行搜索;(3)在爬取网站的新闻栏目进行爬取。数据清洗模块2用于对爬取的文档进行去重处理,去掉标题相同或者内容相同的文档,以及将剩余的文档按照文档篇幅进行筛选,去掉小于最小字数阈值和大于最大字数阈值以及与指定主题内容不相关的文档。在本发明中,所述最小字数阈值可为50个字,所述最大字数阈值可为5000个字,但并不局限于此。向量特征提取模块3用于对数据清洗后的所有文档进行分词并在每篇文档中提取k个词汇作为文本聚类的向量特征。在本发明中,可采用利用词频统计方法和/或利用tf-idf方法来提取所述向量特征。在本发明的一非限制性示例中,利用词频统计方法来提取所述向量特征。具体包括:将分词词频统计量按照从大到小的顺序进行排序,对排序靠前的高频词汇进行人工筛选,保留与指定主题有关的词汇,选取出频率最高的1000个词汇作为文本聚类的向量特征。更具体地,在r语言环境下,使用jiebar包对文章进行分词,把所有文章分词后的词频统计量从大到小排序,对排序靠前的高频词汇进行人工筛选,保留与评价对象有关的词汇,以名词为主,删掉不相关的动词、形容词、副词、虚词等。最终选取出频率最高的1000个左右与评价对象有关的词汇,作为文本聚类的向量特征。在本发明的另一非限制性示例中,利用tf-idf方法来提取所述向量特征。具体包括:确定经分词处理后的每篇文档中的每个词的ti-idf值,选取ti-idf值排序靠前的1000个词汇作为所述向量特征。tf-idf的主要思想是:如果某个词或短语在一篇文章中出现的频率tf高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。tf-idf实际上是:tfidf=tfij×idfij,即通过该公式来得到每篇文档的每个词的ti-idf值,tf表示词频(termfrequency),idf表示逆向文件频率(inversedocumentfrequency)。tf公式为:其中,i表示第i条文本,j表示该文本中第j个词汇,n表示该词在该文本中出现的次数,k表示文本中一共有k个特征词汇。idf的原则是:如果包含该词条的文档越少,则说明词条具有很好的类别区分能力。举例来说,如果某一类文档中包含词条的文档数为m,而不包含的文档总数为k,所有文档数n=m+k,当m大的时候,k变小,按照idf公式得到的idf的值会小,就说明该词条类别区分能力不强。idf公式为:其中:n表示语料库中的文本总数,m表示包含词语的文本数目,如果该词语不在语料库中,就会导致分母为零,因此一般情况下使用1+mj作为分母。词条矩阵建立模块4用于基于提取的向量特征,对所有文档建立词条矩阵。在本发明中,在确定后特征词汇后,使用r语言的tm包对所有文档建立词条文档矩阵。词条文档矩阵是这样的一个矩阵:它的列名是各个特征词,它的行名是爬取的各个数据文档(也称作文章),每个单元格中的数字是所在列的词汇在所在行的文档中出现的次数,即词频,形式可如下表2所示:表2:词条矩阵形式词1词2...文档1.........文档2.....................文本聚类模块5用于利用预设的聚类方法对文档进行聚类。在聚类方法上,本发明可以使用k-means聚类法,但并不局限于此,也可以采用其他聚类方法,如层次聚类法等。k-means聚类法是一种基于样本间相似性度量的聚类方法,属于非监督学习方法。此算法把n个对象分为k个类,以使类内具有较高的相似度,而且类间的相似度较低。相似度的计算根据一个类中对象的平均值(即类的重心)来进行。具体来说,k-means算法的计算过程包括以下几个步骤:(1)从n个数据对象任意选择k个对象作为初始聚类中心;(2)根据每个聚类对象的均值(中心对象),计算每个对象与这些中心对象的距离;并根据最小距离重新对相应对象进行划分;(3)重新计算每个聚类的均值(中心对象);(4)计算标准测度函数,当满足一定条件,比如各对象的类别划分不再变化,则算法终止;如果条件不满足则回到步骤(2)。由于k-means算法属于公知,因此,为简要起见,本发明省略对其更详细的说明。以利用词频统计方法得到的向量特征为例,在统计词频后,每篇文章对应1000个词有1000个词频值,以该词频值作为该文章在1000维空间的坐标,可以在1000维空间中用一个点表示该文章,即每个点由1000个参数限定,再根据点与点之间的距离(欧氏距离)利用k-means算法进行聚类。以利用tf-idf方法得到向量特征为例,在计算tf-idf后,每一篇文章对应1000个词有1000个得分,以该得分作为该文章在1000维空间的坐标,可以在1000维空间中用一个点表示该文章,即每个点由1000个参数限定,再根据点与点之间的距离(欧氏距离)利用k-means算法进行聚类。聚类结果分析模块6用于将聚类后的每一类的文档打散重新计算词频,提取每类词频数最高的预设n个词生成预定表格,以确定每类文档的主题。【实施例】本实施例以指定主题″双创″为例对本发明的文本聚类方法进行描述。首先,选取关键词以爬取文章,关键词的选取应遵循特征性、普遍性、典型性原则。″双创”一词是“创新”和“创业”的简称,主题″双创”的关键词就选取″创新″、″创业″、″双创″这三个关键词。接着在选取关键词后,选取相关网站。由于″双创″活动是政府规划和推动的发展战略,所以各项指标与政府发布的政策文件内容紧密相关,随后专题网站和新闻网站的报道、宣传和引导均对双创活动起到很大程度的影响。因而双创的爬取网站主要为:政府网站、专题网站、门户网站、新闻网站。因此,可利用选取的关键词在选取的政府网站、专题网站、新闻网站、门户网站(网站列表见下表3)进行文章爬取。表3:网站列表在python环境下将爬取下来的一万篇左右的文章要做初步处理。首先进行去重处理,去掉标题相同或者内容相同的文章;然后根据文章篇幅进行筛选,去掉太短(少于50字)、太长(多于5000字)及内容不相关的文章。然后,对所有文档进行分词并在每篇文档中提取k个词汇作为文本聚类的向量特征。在一示例中,利用词频统计法来得到向量特征。具体地,在r语言环境下,使用jiebar包对文章进行分词,分词后对所有文章的词频进行统计,把所有文章分词后的词频统计量从大到小排序,对排序靠前的高频词汇进行人工筛选,保留与评价对象有关的词汇,以名词为主,删掉不相关的动词、形容词、副词、虚词等。最终选取出频率最高的1000个左右与评价对象有关的词汇,作为文本聚类的向量特征。在确定后特征词汇后,使用r语言的tm包对所有文档建立词条文档矩阵,利用词频统计方法得到的词条文档矩阵部分样例可参见下表4。表4:根据词频统计得到的词条文档矩阵部分样例安全安置按规定办法办公厅办理文档1000002文档2300109文档3000301文档4000000文档5100000文档6000000文档7100000文档8100001文档9001000文档10000000文档11080000文档12100000文档13200000文档14000000文档15100002文档16000000文档17000000文档18000100在另一示例中,使用tf-idf方法计算每篇文章每一个词的得分,用来代替简单的词频。使用tf-idf方法计算的词条文档矩阵部分样例可参见下表5:表5:根据tf-idf方法得到的词条文档矩阵部分样例本实施例中以使用tf-idf方法提取的向量特征为例利用k-means聚类法来进行聚类,聚类后结果如下表6所示。表6:聚类结果上述表6中序号列代表文章的排列顺序,分类代表为聚类分析后文章的类别,文章代表爬取的文章名称,例如:″深化改革创新促进融合发展″和″蚌埠:新理念激发新动能″等分类标号为1文章均归为第一类,″享康样新业态打造旅游新模式″和″以核心价值观推进大学文化创新发展″等分类标号为2的文章均归为第二类。分类数字标号只表示分类顺序,没有优先度之分。本次将所有文章分为30个类别,如下表7所示。表7:文章类别上述表7中文章类别对应表6中的类别,文章数量代表相应类别的文章数量。例如第一类文章共217篇,第二类共494篇。在聚类后,将每一类的文章打散,重新计算词频,词的选择不局限于筛选词汇。提取每类频数最高的20个词列成表格,下表8为部分分类的词频统计样例:通过每一类的文章标题、文章内容以及词频统计,总结出每一类中的文章的主题,即话题范围,表8为总结得到的30个分类的话题范围。表8:30个分类的话题范围根据上表8的主题总结,可以将上表8的主题分为四大类,每个大类各有数个小主题,见下表9:也就是说,根据本发明的文本聚类方法首先得出每类文档的主题,然后将主题进行分类,从而可得到每类主题的子主题。在实际应用中,例如在指标体系构建中,可参考根据文本聚类得到的主题和子主题对初步设计构建的指定主题的指标体系进行修改和优化,得到最终的指标体系,从而科学、合理和客观地建立指标体系,减少主观判断成分,降低人为确定指标过程中对影响因素判断不准确和不足的缺点,但是本发明并不局限于此,也可用于其他用途,例如,从大量文档中找出与所搜寻的主题相关的文档,方便用户找到有用的信息,节约时间。以上所述是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1