本发明涉及文本关键词挖掘分析技术,尤其涉及一种基于预分类的短文本关键词提取方法及系统。
背景技术:
技术词解释:
TF-IDF值:即词频-逆文档频率值,结合一个词在文本中出现的次数以及包含该词的文本数而计算出来的一个权重;TF-IDF值与一个词在文档中的出现次数成正比,与包含该词的文本数成反比。
随着社交媒体的兴起,移动短信、Tweet和微博等短文本层出不穷,并且由于短文本发布的参与者多以及发布频率快,短文本的规模更是飞速增长。对于短文本,其在搜索引擎、自动问答和话题跟踪等领域发挥着重要的作用,而且随着电子政务建设的推行和不断深化,政府部门也面临着对大量短文本的处理问题。因此由此可见,在短文本数据的处理中,如何实现对大量短文本数据进行简便、有效的关键词提取具有重要的意义。
目前常用的一种海量文本关键词提取方式是,首先对每个文本文件进行分词处理,统计并计算每个单词的词频-逆文档频率值,然后将每个单词的词频-逆文档频率值从大到小排列,并提取排名靠前的结果,最后将该提取结果保存在Hadoop平台上的SequenceFile这一原始文件中,以供查询。然而传统关键词提取方式却存有不少的问题,例如:1、在短文本中,文本特征较少,而且在应用TF-IDF算法提取文本特征时,短文本数据集中具有相同关键词的文本会相互干扰,使得这些关键词计算出来的TF-IDF值大大降低,弱化了这些词语对同类的短文本特征表达效果,进而影响了关键词提取的效果;2、无法拓展到分布式系统并提升计算效率,大部分现有的技术解决方案都无法有效地拓展到分布式系统,若需要处理海量数据同时又有较高的效率要求,则现有的技术解决方案均无法取得一个较好的解决效果。
技术实现要素:
为了解决上述技术问题,本发明的目的是提供一种可拓展适用于分布式系统、提高处理效率、效果好的基于预分类的短文本关键词提取方法。
本发明的另一目的是提供一种可拓展适用于分布式系统、提高处理效率、效果好的基于预分类的短文本关键词提取系统。
本发明所采用的技术方案是:一种基于预分类的短文本关键词提取方法,该方法包括的步骤有:
将短文本全量数据集划分为多个短文本子数据集;
采用短文本预分类方式以及通用条数最优值,对多个短文本子数据集分别进行关键词特征词典的生成处理,从而生成得到每一个短文本子数据集所对应的关键词特征词典;
利用每一个关键词特征词典分别相对应对每一个短文本子数据集进行关键词权重系数的累计计算;
根据每一个短文本子数据集的关键词权重系数累计计算结果,对短文本全量数据集进行关键词提取处理。
进一步,所述短文本子数据集所对应的关键词特征词典,其生成步骤包括有:
从短文本子数据集中选取出一个包含有s条短文本的短文本微数据集,其中,s的数值为通用条数最优值;
对短文本微数据集中所包含的短文本进行分类,然后将属于同一类别的短文本拼接成相对应的长文本;
采用TF-IDF算法对每一条长文本中的词语进行TF-IDF值计算,计算出每一条长文本中词语的TF-IDF值;
根据预设的第一阈值,对每一条长文本的词语的TF-IDF值进行阈值判断,然后将每一条长文本中TF-IDF值大于第一阈值的词语提取出来;
将提取出来的词语及其对应的TF-IDF值存储至关键词特征词典中时,判断关键词特征词典中是否已存储有该词语,若否,则将该词语及其对应的TF-IDF值存储至关键词特征词典中;反之,则判断该待存储的词语所对应的TF-IDF值是否大于已存储在关键词特征词典中的该词语所对应的TF-IDF值,若是,则采用该待存储的词语所对应的TF-IDF值替换已存储在关键词特征词典中的该词语所对应的TF-IDF值,反之,则不改变已存储在关键词特征词典中的该词语所对应的TF-IDF值。
进一步,所述通用条数最优值,其确定获取步骤包括有:
计算每一个短文本子数据集所对应的条数最优值,然后从计算得出的所有条数最优值中选取数值最大的条数最优值作为通用条数最优值。
进一步,所述短文本子数据集所对应的条数最优值,其计算步骤包括有:
从短文本子数据集中选取出一个包含有n条短文本的短文本微数据集,其中,n值小于等于s0,s0表示为短文本子数据集所包含的短文本的总条数;
根据选取出的短文本微数据集,生成该短文本子数据集所对应的关键词特征词典;
判断当前生成的关键词特征词典与前一次生成的关键词特征词典之间的差异是否满足预设的判定标准,若是,则将前一次的n值作为该短文本子数据集所对应的条数最优值;反之,则对当前n值进行减小处理后得到新的n值,利用新的n值返回重新执行上述从短文本子数据集中选取出一个包含有n条短文本的短文本微数据集这一步骤。
进一步,所述对当前n值进行减小处理后得到新的n值这一步骤,其具体为:将当前n值与10的相除结果作为新的n值。
进一步,所述对短文本子数据集进行关键词权重系数的累计计算,其所采用的计算公式为:
Wi=ai*wi,i=1、2、……、m
其中,m表示为关键词特征词典中所包含的词语的总个数,Wi表示第i个关键词的权重系数累计计算结果,ai表示在关键词特征词典中所存储的第i个词语在短文本子数据集所包含的所有短文本中所出现的次数,wi表示为在关键词特征词典中所存储的第i个词语所对应的TF-IDF值。
进一步,所述根据每一个短文本子数据集的关键词权重系数累计计算结果,对短文本全量数据集进行关键词提取处理这一步骤,其具体为:
对每一个短文本子数据集的关键词权重系数累计计算结果进行降序,从而获得每一个短文本子数据集的关键词排序结果,然后对所有短文本子数据集的关键词排序结果进行汇总计算,接着对汇总计算结果进行排序和阈值过滤操作,从而得到短文本全量数据集的关键词提取结果。
进一步,所述对短文本微数据集中所包含的短文本进行分类这一步骤,其具体为:
利用SVM分类器,对短文本微数据集中所包含的短文本进行分类。
进一步,所述将短文本全量数据集划分为多个短文本子数据集这一步骤之前设有数据预处理步骤,所述数据预处理步骤为:对短文本全量数据集进行数据预处理。
本发明所采用的另一技术方案是:一种基于预分类的短文本关键词提取系统,该系统包括:
划分单元,用于将短文本全量数据集划分为多个短文本子数据集;
生成单元,用于采用短文本预分类方式以及通用条数最优值,对多个短文本子数据集分别进行关键词特征词典的生成处理,从而生成得到每一个短文本子数据集所对应的关键词特征词典;
累计计算单元,用于利用每一个关键词特征词典分别相对应对每一个短文本子数据集进行关键词权重系数的累计计算;
提取处理单元,用于根据每一个短文本子数据集的关键词权重系数累计计算结果,对短文本全量数据集进行关键词提取处理。
本发明的有益效果是:本发明的关键词提取方法是将短文本全量数据集划分为多个短文本子数据集后,分别单独对每一个短文本子数据集进行相应的关键词提取处理,接着再利用所有短文本子数据集的关键词提取结果来实现短文本全量数据集的关键词提取,这样则能将整个计算过程拓展到分布式系统中,大大提高处理效率。而且利用短文本预分类方式,先对短文本进行分类,然后将同一类的短文本拼接成长文本后再应用TF-IDF算法进行关键词提取,这样能够有效提升短文本的TF-IDF特征的表达效果,从而有效地提高短文本关键词的提取效果。
另外,本发明的方法中采用了TF-IDF算法来生成每一个短文本子数据集所对应的关键词特征词典,然后再利用关键词特征词典用于整个短文本子数据集的关键词提取,这样能更进一步地提高了计算处理效率。
本发明的另一有益效果是:通过使用本发明的关键词提取系统,能够将整个计算过程拓展到分布式系统中,大大提高处理效率,而且利用短文本预分类方式,先对短文本进行分类,然后将同一类的短文本拼接成长文本后再应用TF-IDF算法进行关键词提取,这样能够有效提升短文本的TF-IDF特征的表达效果,从而有效地提高短文本关键词的提取效果。
附图说明
图1是本发明一种基于预分类的短文本关键词提取方法的步骤流程示意图;
图2是本发明一种基于预分类的短文本关键词提取方法中关键词特征词典的生成步骤流程示意图;
图3是本发明一种基于预分类的短文本关键词提取方法中条数最优值的计算步骤流程示意图;
图4是本发明一种基于预分类的短文本关键词提取系统的结构框图。
具体实施方式
为了解决传统关键词提取技术中所存在的无法将计算过程拓展到分布式系统进行处理、关键词提取效果差等问题,本发明提供了一种基于预分类的短文本关键词提取方法,其包括的步骤有:
将短文本全量数据集划分为多个短文本子数据集;
采用短文本预分类方式以及通用条数最优值,对多个短文本子数据集分别进行关键词特征词典的生成处理,从而生成得到每一个短文本子数据集所对应的关键词特征词典;
利用每一个关键词特征词典分别相对应对每一个短文本子数据集进行关键词权重系数的累计计算;
根据每一个短文本子数据集的关键词权重系数累计计算结果,对短文本全量数据集进行关键词提取处理。
作为本实施例的优选实施方式,所述将短文本全量数据集划分为多个短文本子数据集这一步骤之前设有数据预处理步骤,所述数据预处理步骤为:对短文本全量数据集进行数据预处理。
以下结合详细实施例来对本发明的关键词提取方法做详细阐述。
实施例1、一种基于预分类的短文本关键词提取方法
如图1所示,一种基于预分类的短文本关键词提取方法,其具体包括的步骤有:
S1、对获得的短文本全量数据集进行数据预处理;
所述步骤S1,其具体为:采用结巴分词的方法,对短文本全量数据集进行分词和去除停用词的预处理工作,从而得到用于后续关键词提取的短文本全量数据集B;
S2、训练所需使用的SVM分类器;
所述步骤S2,其具体为:从短文本全量数据集B中随机抽取一小部分的数据用于对SVM分类器进行训练,其中,对于SVM分类器,其训练输入数据集包括短文本的特征信息,训练输出数据集包括短文本所属的类型,然后根据所述的训练输入数据集和训练输出数据集,对SVM分类器进行训练处理,训练结束后所得到的SVM分类为所需使用的SVM分类器;
S3、将短文本全量数据集B划分为多个短文本子数据集batch;
所述步骤S3,其具体为:根据时间、数据量等预设的维度,将B划分为多个batch;例如,将1年所获得的所有短文本,即B,按照月份分为12个batch,或者按照天数分为365个batch,这样后续便能将每一个batch作为一个独立单元进行关键词提取处理;
S4、采用短文本预分类方式以及通用条数最优值,对多个短文本子数据集batch分别进行关键词特征词典的生成处理,从而生成得到每一个短文本子数据集所对应的关键词特征词典;
其中,如图2所示,对于一个短文本子数据集batch所对应的关键词特征词典,其生成步骤包括有:
S41、从batch中随机选取出s条短文本来构成一短文本微数据集mini-batch,即从batch中随机选取出一个包含有s条短文本的mini-batch,其中,s的数值为通用条数最优值;
S42、利用步骤S2得到的SVN分类器,对mini-batch中所包含的所有短文本进行分类,然后将属于同一类别的短文本拼接成一条长文本,即mini-batch中每一类的短文本对应一条长文本;
S43、采用TF-IDF算法对每一条长文本中的词语进行TF-IDF值计算,计算出每一条长文本中各个词语的TF-IDF值;
所述步骤S43,其具体为:采用TF-IDF算法对每一条长文本中的词语进行TF-IDF值计算,计算出每一条长文本中各个词语的TF-IDF值,从而构建成一TF-IDF特征矩阵;在该TF-IDF特征矩阵中,一行对应一条长文本,即每一行分别对应不同类的长文本,而TF-IDF特征矩阵中所保存的每一个值,其代表该行所对应的一条长文本中一词语的TF-IDF值;
S44、新建一个空的关键词特征词典,并设定一个关于TF-IDF值的阈值k作为第一阈值;
S45、根据预设的第一阈值,对每一条长文本中各个词语的TF-IDF值进行阈值判断,然后将每一条长文本中TF-IDF值大于第一阈值的词语提取出来,然后对提取出来的词语及其对应的TF-IDF值进行存储处理;
所述对提取出来的词语及其对应的TF-IDF值进行存储处理这一步骤,其具体为:
将提取出来的词语及其对应的TF-IDF值存储至关键词特征词典中时,此时,该提取出的词语及其对应的TF-IDF值实质为待存储的词语及其对应的TF-IDF值;判断关键词特征词典中是否已存储有该词语,若否,则将该待存储的词语及其对应的TF-IDF值存储至关键词特征词典中;反之,则判断该待存储的词语所对应的TF-IDF值是否大于已存储在关键词特征词典中的该词语所对应的TF-IDF值,若是,则采用该待存储的词语所对应的TF-IDF值替换已存储在关键词特征词典中的该词语所对应的TF-IDF值,反之,则不改变已存储在关键词特征词典中的该词语所对应的TF-IDF值;
然后对下一个提取出来的词语及其对应的TF-IDF值进行上述的存储处理步骤,直到对所有提取出来的词语及其对应的TF-IDF值完成存储处理为止,此时,即完成了一短文本子数据集batch所对应的关键词特征词典的生成;
由上述可见,通过采用上述步骤S41~S45分别对多个batch进行关键词特征词典的生成处理,便能生成得到每一个短文本子数据集batch所对应的关键词特征词典,而存储在关键词特征词典中的词语实质为关键词;
S5、利用每一个关键词特征词典,分别相对应对每一个短文本子数据集batch进行关键词权重系数的累计计算;
其中,对一个batch进行关键词权重系数的累计计算,其所采用的计算公式为:
Wi=ai*wi,i=1、2、……、m
上述m表示为关键词特征词典中所包含的词语的总个数,Wi表示第i个关键词的权重系数累计计算结果,ai表示在关键词特征词典中所存储的第i个词语在短文本子数据集batch所包含的所有短文本中所出现的次数,wi表示为在关键词特征词典中所存储的第i个词语所对应的TF-IDF值;由此可见,一个batch对应m个关键词的权重系数累计计算结果;
S6、根据每一个短文本子数据集batch的关键词权重系数累计计算结果,对短文本全量数据集进行关键词提取处理;
所述步骤S6,其具体为:首先,对每一个短文本子数据集batch的关键词权重系数累计计算结果进行降序,从而获得每一个短文本子数据集的关键词排序结果,也就是说,一个batch的关键词排序结果,其为,一个batch所对应的m个关键词的权重系数累计计算结果进行降序后所得到的降序结果;
然后对所有短文本子数据集batch的关键词排序结果进行汇总计算,从而统计出总体维度的关键词提取初步结果,接着对汇总计算结果,即关键词提取初步结果,进行排序和阈值过滤等优化操作,从而得到短文本全量数据集的关键词提取结果。而各个batch的关键词提取结果也可视实际业务需求从而作为中间过程的关键词提取结果,例如,对1年的数据进行处理(按月份分为12个batch),通过本发明的方法,既可以提取数据的年度关键词,也可提取数据的月度关键词。
对于上述步骤S41中所述的通用条数最优值,其确定获取步骤包括有:
计算每一个短文本子数据集batch所对应的条数最优值,然后从计算得出的所有条数最优值中选取数值最大的条数最优值作为通用条数最优值;
其中,如图3所示,一短文本子数据集batch所对应的条数最优值,其计算步骤包括有:
S411、设n值为s0(s0表示为batch所包含的短文本的总条数);
S412、从batch中随机选取出n条短文本来构成一短文本微数据集mini-batch,即从batch中随机选取出一个包含有n条短文本的mini-batch;
S413、根据步骤S412所选取出的mini-batch,从而生成该batch所对应的关键词特征词典,其中,此处所述的关键词特征词典,其生成步骤与上述步骤S42~S45相同,即对于所述步骤S413,其具体包括:
S4131、利用步骤S2得到的SVN分类器,对mini-batch中所包含的所有短文本进行分类,然后将属于同一类别的短文本拼接成一条长文本;
S4132、采用TF-IDF算法对每一条长文本中的词语进行TF-IDF值计算,计算出每一条长文本中各个词语的TF-IDF值,构建TF-IDF特征矩阵;
S4133、新建一个空的关键词特征词典,并设定一个关于TF-IDF值的阈值k作为第一阈值;
S4134、根据预设的第一阈值,对每一条长文本中各个词语的TF-IDF值进行阈值判断,然后将每一条长文本中TF-IDF值大于第一阈值的词语提取出来,然后对提取出来的词语及其对应的TF-IDF值进行存储处理,从而完成了一短文本子数据集batch所对应的关键词特征词典的生成;
S414、判断当前生成的关键词特征词典H与前一次生成的关键词特征词典H’之间的差异是否满足预设的判定标准,例如,判断当前生成的关键词特征词典与前一次生成的关键词特征词典之间的结果是否有明显变化,或者判断当前生成的关键词特征词典中所包含的词语个数是否小于前一次生成的关键词特征词典中所包含的词语个数,若是,则将前一次的n值作为该batch所对应的条数最优值;反之,则对当前n值进行减小处理后得到新的n值,利用新的n值返回重新执行上述步骤S412;
由上述可见,通过上述步骤S411~S414,便能计算出每一个batch所对应的条数最优值。另外,对于步骤S411,其也可为,设n值为s1(s1小于s0),s1的值可根据实际情况来设定;
上述方法实施例中所描述的内容均适用于以下系统实施例中。
实施例2、一种基于预分类的短文本关键词提取系统、
如图4所示,一种基于预分类的短文本关键词提取系统,该系统包括:
划分单元,用于将短文本全量数据集划分为多个短文本子数据集;
生成单元,用于采用短文本预分类方式以及通用条数最优值,对多个短文本子数据集分别进行关键词特征词典的生成处理,从而生成得到每一个短文本子数据集所对应的关键词特征词典;
累计计算单元,用于利用每一个关键词特征词典分别相对应对每一个短文本子数据集进行关键词权重系数的累计计算;
提取处理单元,用于根据每一个短文本子数据集的关键词权重系数累计计算结果,对短文本全量数据集进行关键词提取处理。
作为本实施例的优选实施方式,所述划分单元之前还设有用于对短文本全量数据集进行数据预处理的预处理单元。
由上述可得,本发明的关键词提取方法及系统,其所包括的优点有:
1、通过预分类将短文本合并成长文本再进行关键词提取,即首先对需处理的短文本进行分类,然后同类的短文本合成长文本,再利用TF-IDF算法进行关键词提取,从而能得到一个较好的短文本关键词提取效果;
2、根据时间、数据量等维度,将全量数据集分成多个batch,对每个batch进行单独处理,最后再将各个batch的结果进行进一步的汇总计算,从而使得整个计算过程可以拓展到分布式系统中,提高处理效率;
3、从每个batch中随机抽取一个mini-batch来计算TF-IDF特征词典,然后将这个TF-IDF特征词典用于整个batch的关键词提取,从而大大提升了计算效率。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。