一种文本的关键词提取的方法和装置与流程

文档序号:12123930阅读:222来源:国知局
一种文本的关键词提取的方法和装置与流程

本发明涉及一种文本的关键词提取的方法和装置,尤其涉及一种利用深度学习算法进行关键词提取的方法和装置。



背景技术:

信息技术的不断发展使得许多领域信息呈现爆炸式增长,如何从大规模文本信息中快速而准确地获取所需信息成为一个巨大的挑战。关键词提取就是一种解决上述问题的有效手段,是文本挖掘领域研究的核心技术之一,起着十分重要的作用。

现有的关键词提取技术包括pLSA(概率潜在语义分析),LDA(隐含狄利克雷分布),SVD(奇异值分解),LSA(潜在语义分析),TFI-DF(词频-逆文档频率)等算法。

TFI-DF算法认为对区别文档最有意义的词语应该是那些在文档中出现频率高、而在整个语料库中的其他文档中出现频率少的词语。该算法无法捕捉文档内部与文档间的统计特征,更不能解决同义词、多义词问题,因此精确度不是很高。

LSA与SVD算法属于浅语义分析模型,这类技术的基础是奇异值分解技术SVD。SVD的功能是将一个比较复杂的矩阵转化成为几个更小、更简单矩阵的乘积。这类算法是文本关键词的一种降维算法,准确率不是很高。

pLSA和LDA算法是基于概率意义下的关键词抽取方法,需要先验给定主题数目,并通过算法对语料的抽样进行统计,进而得出文档对应主题的多项分布和主题上的词语的多项分布。



技术实现要素:

本发明的目的在于提供一种文本的关键词提取的方法和装置,相比现有技术,关键词提取的精度更高。

根据上述目的,本发明提供一种文本的关键词提取的方法,所述方法包括:对所述文本进行分词,以得到所述文本对应的词;对所述词进行词性标注;为所述词加入统计信息;对所述词执行索引化;将所述词的词性标注信息、统计信息和索引信息输入深度学习提取模型,以获取所述词的重要性权重;以及根据所述重要性权重,选取对应的至少一个词作为所述文本的关键词。

在一实施例中,所述方法还包括:提供词索引关系库,包括词到索引的映射关系;以及所述执行索引化的步骤,进一步包括:将所述词和所述词索引关系库中的词执行匹配度运算,将与所述词具有最高匹配度的词索引关系库中的词所对应的索引作为所述词的索引。

在一实施例中,所述根据所述重要性权重,选取对应的至少一个词作为所述文本的关键词的步骤,进一步包括:按照所述重要性权重由高到低,选取预设数目的词作为所述文本的关键词。

在一实施例中,所述按照所述重要性权重由高到低,选取预设数目的词作为所述文本的关键词的步骤,进一步包括:选取具有最高重要性权重的词作为所述文本的关键词。

在一实施例中,所述方法还包括:将所述词的索引信息进行扩维表示,以得到所述词的多维索引表示;以及所述将所述词的词性标注信息、统计信息和索引信息输入深度学习提取模型,进一步包括:将所述词的词性标注信息、统计信息和多维索引表示信息输入深度学习提取模型。

在一实施例中,所述将所述词的索引信息进行扩维表示的步骤,进一步包括:运用Word Embedding算法或Word2vector算法将所述词的索引信息进行扩维表示,以得到Word Embedding结果或Word2vector结果作为所述词的多维索引表示。

在一实施例中,所述方法还包括:对所述词进行命名实体识别,所述词性标注、统计信息加入和词索引化是对经过命名实体识别后的词进行的。

在一实施例中,所述方法还包括:对所述文本进行停用词过滤,所述分词是对经过停用词过滤的文本进行的。

在一实施例中,所述为所述词加入统计信息的步骤,进一步包括:运用TF‐IDF算法为所述词加入统计信息,以得到所述词的TF‐IDF权重作为所述统计信息。

在一实施例中,所述方法还包括:将所述词的统计信息进行分桶处理,以得到所述词的分桶统计信息;以及所述将所述词的词性标注信息、统计信息和索引信息输入深度学习提取模型的步骤,进一步包括:将所述词的词性标注信息、分桶统计信息和索引信息输入深度学习提取模型。

在一实施例中,所述对所述词进行词性标注的步骤,进一步包括:将不同的词性分别设置对应的数值;以及将所述词的词性对应的数值作为所述词的词性标注。

在一实施例中,所述深度学习提取模型包括前后依次连接的BLSTM算法模型、Max Pooling算法模型和Softmax算法模型。

对应上述方法,本发明还提供一种文本的关键词提取的装置,所述装置包括:分词模块,用于对所述文本进行分词,以得到所述文本对应的词;词性标注模块,用于对所述词进行词性标注;统计信息加入模块,用于为所述词加入统计信息;索引化模块,用于对所述词执行索引化;权重模块,用于将所述词的词性标注信息、统计信息和索引信息输入深度学习提取模型,以获取所述词的重要性权重;以及提取模块,用于根据所述重要性权重,选取对应的至少一个词作为所述文本的关键词。

在一实施例中,所述索引化模块包括:词索引关系库,包括词到索引的映射关系;以及匹配模块,用于将所述词和所述词索引关系库中的词执行匹配度运算,将与所述词具有最高匹配度的词索引关系库中的词所对应的索引作为所述词的索引。

在一实施例中,所述提取模块,进一步用于:按照所述重要性权重由高到低,选取预设数目的词作为所述文本的关键词。

在一实施例中,所述提取模块,进一步用于:选取具有最高重要性权重的词作为所述文本的关键词。

在一实施例中,所述装置还包括:扩维模块,用于将所述词的索引信息进行扩维表示,以得到所述词的多维索引表示;以及所述权重模块,进一步用于:将所述词的词性标注信息、统计信息和多维索引表示信息输入深度学习提取模型,以获取所述词的重要性权重。

在一实施例中,所述扩维模块,进一步包括:Word Embedding模块,用于运用Word Embedding算法将所述词的索引信息进行扩维表示,以得到Word Embedding结果作为所述词的多维索引表示,或Word2vector模块,用于运用Word2vector算法将所述词的索引信息进行扩维表示,以得到Word2vector结果作为所述词的多维索引表示。

在一实施例中,所述装置还包括:命名实体识别模块,用于对所述词进行命名实体识别,所述词性标注模块、统计信息加入模块和索引化模块进一步用于对经过命名实体识别后的词进行相应操作。

在一实施例中,所述装置还包括:停用词过滤模块,用于对所述文本进行停用词过滤,所述分词模块进一步用于对经过停用词过滤的文本进行分词。

在一实施例中,所述统计信息加入模块包括:TF‐IDF模块,用于运用TF‐IDF算法为所述词加入统计信息,以得到所述词的TF‐IDF权重作为所述统计信息。

在一实施例中,所述装置还包括:分桶模块,用于将所述词的统计信息进行分桶处理,以得到所述词的分桶统计信息;以及所述权重模块,进一步用于将所述词的词性标注信息、分桶统计信息和索引信息输入深度学习提取模型。

在一实施例中,所述词性标注模块包括:词性数值化模块,用于将不同的词性分别设置对应的数值;以及标注模块,用于将所述词的词性对应的数值作为所述词的词性标注。

在一实施例中,所述深度学习提取模型包括:前后依次连接的BLSTM算法模型、Max Pooling算法模型和Softmax算法模型。

如上所述,本发明通过为词加入词性信息、统计信息和语义信息,综合运用词的多种属性来进行关键词的提取。同时对上述词性信息、统计信息和语义信息都进行了数值化的操作,为深度学习算法模型的运用提供了基础,而深度学习算法模型比传统方法的提取精度更高。

附图说明

图1示出了本发明文本的关键词提取的方法一个方面的流程图;

图2示出了示出了本发明的深度学习提取模型的示意图;

图3示出了BLSTM算法框架的示意图;

图4示出了本发明一种文本的关键词提取的装置一个方面的结构示意图。

具体实施方式

本发明技术方案区别于现有技术,同时运用词的词性信息、词的语义信息和词的统计信息,利用深度学习技术进行文本关键词的提取。而利用深度学习技术的神经网络,必须首先将相关表达转换成数字表达,本发明提供了词的索引化数字表达、词性标注信息的数字表达和词的统计信息的数字表达,为深度学习神经网络的运用提供了基础。

请参看图1,图1示出了本发明文本的关键词提取的方法一个方面的流程图,所述方法包括:

101:对文本进行分词,以得到文本对应的词;

102:对词进行词性标注;

103:为词加入统计信息;

104:对词执行索引化;

105:将词的词性标注信息、统计信息和索引信息输入深度学习提取模型,以获取词的重要性权重;

106:根据重要性权重,选取对应的至少一个词作为文本的关键词。

首先进行步骤101,对文本进行分析,得到文本包含的每一个词。

现有技术包括多种分词方法,主要有最大匹配算法和Viterbi(维特比)算法。

最大匹配是指以词典为依据,取词典中最长单词为首次扫描串,在词典中进行扫描(为提升扫描效率,还可以根据字数多少设计多个字典,然后根据字数分别从不同字典中进行扫描)。例如:词典中最长词为“中华人民共和国”共7个汉字,则最大匹配起始字数为7个汉字。然后逐字递减,在对应的词典中进行查找。

按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。常用的几种机械分词方法如下:

1)正向最大匹配法(由左到右的方向);

2)逆向最大匹配法(由右到左的方向);

3)最少切分(使每一句中切出的词数最小)。

还可以将上述各种方法相互组合,例如,可以将正向最大匹配方法和逆向最大匹配方法结合起来构成双向匹配法。

而Viterbi(维特比)算法解决的是HMM(隐马尔科夫模型)经典问题中最优状态序列的选择问题。词性标注问题映射到隐马尔科夫模型可以表述为:模型中状态(词性)的数目为词性符号的个数N;从每个状态可能输出的不同符号(单词)的数目为词汇的个数M。假设在统计意义上每个词性的概率分布只与上一个词的词性有关(即词性的二元语法),而每个单词的概率分布只与其词性相关。

在得到文本对应的每一个词之后,进行步骤102,对得到的每一个词进行词性标注,词性是指以词的特点为根据,来划分词类。现代汉语的词可以分为两类12种词性。一类是实词:名词、动词、形容词、数词、量词和代词。一类是虚词:副词、介词、连词、助词、叹词和拟声词。

现有技术中已有较为成熟的词性标注算法,包括HanLP算法和Jieba(结巴)算法,以上两种算法都提供开源的软件包,实际使用中,直接进行调用即可。本发明中,给每个词性分别随机分配一个数值标记,例如将名词、动词、形容词、数词、量词、代词、副词、介词、连词、助词、叹词和拟声词分别分配1、2、3、4、5、6、7、8、9、10、11、12作为各自的数值标记,那么,本发明中词性数值为3的那些词的词性即为形容词,其他数值标记代表的词性以此类推。

本发明还兼顾了词在一个文本中的统计信息,进行步骤103,为词加入统计信息。统计信息是指通过数学方法得出一个词出现的频率的大小,通常情况下,词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。

可以使用TF‐IDF算法来为词加入统计信息,TF‐IDF算法的主要思想是:如果词W在一篇文档D中出现的频率高,并且在其他文档中很少出现,则认为词W具有很好的区分能力,适合用来把文档D和其他文章区分开来。得到的统计信息本身就是数值表达,所以不需要像前述的词性标注那样再进行数值化的操作。

步骤104对词执行索引化,索引化的目的是为了给运用神经网络模型进行关键词提取提供基础。

在一优选实施例中,提供词索引关系库,包括了词到索引的映射关系,索引化操作包括:将文本中的词和词索引关系库中的词进行匹配度运算,将匹配度最高的词索引关系库中的词对应的索引作为文本中的词的索引。

此处的索引化过程,为词添加了语义信息。通常词索引关系库可以选用例如搜狗词库之类的包含有几乎所有中文词的词库,可以首先随机索引化搜狗词库中的词,为每一个搜狗词库中的词分配一个索引数值,这样就完成了词索引关系库的构建。

随后,将文本中的词与词库中的词进行语义匹配度运算,将匹配度最高的词的索引作为文本中的词的索引。那么,文本中的相同的词都在词索引关系库中对应了同样的匹配度最高的词,进而拥有相同的索引数值。采用此方法可以使得相同的词拥有相同的索引数值,进而可以认为词的索引数值越接近则语义越接近。也就完成了从语言文字表达语义到数值表达语义的操作。

在得到了词的词性标注信息、统计信息和索引信息后,每个词都对应了一个3维的数值表达,即对应一个[索引信息,词性标注信息,统计信息]的向量,那么文本中的所有的词对应的向量的维度为(词的个数*词向量维度数),其中,[索引信息,词性标注信息,统计信息]即为词向量,该向量的维度为3,即为词向量维度数。进行步骤105,将文本的每个词的词性标注数值、统计信息数值和索引数值输入深度学习模型提取模型,即将每个词对应的词向量输入深度学习提取模型,深度学习提取模型输出每个词的重要性权重,权重越大表明该词的重要性越强。

步骤106,按照重要性权重,选取文本的关键词。可以设定选取的个数,从而按照重要性权重由高到低选取相应个数的关键词。

在另一实施例中,将词的索引信息进行扩维表示,以得到词的多维索引表示,并将词的词性标注数值、统计信息数值和多维索引表示信息输入深度学习提取模型。此时,前述的词向量为[词性标注数值,统计信息数值,多维索引表示信息]。对词的索引信息进行扩维表示是为了能够用更多的维度来表现词的相关信息,词的信息也就更能够被描述清楚。现有技术中的扩维技术包括Word Embedding(词嵌入)算法和Word2vector(词到向量)算法等。

关于Word Embedding算法,举一个例子,给出一个问句序列“A B C D E F G”,希望对文档中每个问句都得到一个对应的向量表示。比如,对于这样的“A B C D E F G”的一个序列,将每一个问句通过Word Embedding进行表示纬度的扩充,最后可以得到:A对应的向量为[0.1 0.6-0.5],B对应的向量为[-0.2 0.9 0.7]等等。之所以希望把每个索引数值变成一个向量,目的还是为了方便计算,比如“求问句A的同义词”,就可以通过“求与问句A对应的多维向量在cos距离下最相似的向量”来做到。在一优选实施例中,将每个索引序列数值通过Word Embedding技术扩展到4维或者128维。

Word2vec算法的功能与Word Embedding算法相同,其是谷歌开源的一款将词表征为实数值向量的高效工具,其利用深度学习的思想,可以通过训练,把对文本内容的处理简化为多维向量空间中的向量运算,而向量空间上的相似度可以用来表示文本语义上的相似度。

在另一实施例中,在分词之后进行命名实体识别,命名实体识别是对一些专有名词进行辨别,例如“光明日报”应该是一个专有名词,而不应该被分成“光明”和“日报”两个词。可以使用现有技术中的命名实体词库进行命名实体识别,直接对照词库挑选出文本中的命名实体。

在另一实施例中,在分词之前,去除文本中的停用词。所谓停用词指文本中出现频率很高,但实际意义又不大的词,主要指副词、虚词、语气词等,如“是”、“而是”等。现有技术中已有诸多停词库可供使用,只需对照停词库将文本中的停用词去除即可。

在另一实施例中,将得到的词的统计信息进行分桶处理,分桶处理的目的在与降低计算量,同时提高计算时间。所谓分桶是指将一定区间的数值都用一个数值表示,例如,可以将“1‐10”中任意的数值用“1”表示,“11-20”中任意的数值用“2”表示等等。当然也可以将区间适当缩小或增大。此时,前述的词的数值表达即为[索引信息,分桶的词性标注信息,统计信息]的向量。

下面介绍一下本发明运用到的深度学习提取模型,请参看图2,图2示出了本发明的深度学习提取模型的示意图。

深度学习提取模型包括前后依次连接的BLSTM(双向的长短时记忆)算法模型201、Max Pooling(最大池化)算法模型202和Softmax(软最大)算法模型203。BLSTM算法模型201又可以包括第一层BLSTM神经网络2011和第二层BLSTM神经网络2012。

将前述得到的词的词性标注信息、统计信息和索引信息输入BLSTM算法模型,经过BLSTM算法模型201、Max Pooling算法模型202和Softmax算法模型203的运算,即可最终输出文本中各个词的重要性权重。

BLSTM算法即是双向的LSTM(长短时记忆)算法,LSTM是RNN的改进模型,相比RNN(循环神经网络),能够更有效地处理句子中单词间的长距离影响。而双向LSTM就是在隐层同时有一个正向LSTM和反向LSTM,正向LSTM捕获了上文的特征信息,而反向LSTM捕获了下文的特征信息,这样相对单向LSTM来说能够捕获更多的特征信息,所以通常情况下双向LSTM表现比单向LSTM或者单向RNN要好。

BLSTM算法框架请参见图3,各参数含义如下:

xt:表示下一时刻的输入标准问;

ht‐1:表示上一课时的输出,即时间序列在隐语义空间,t‐1时刻的状态;

c_int:t时刻的输入;

Ct:t时刻的单元状态;

Ct‐1:t‐1时刻的单元状态;

it:输入门,控制每次迭代运算的输入;

ft:遗忘门,控制遗忘比例;

ot:输出门,控制输出比例,最终输出t时刻的隐语义空间下的状态ht,为下一次迭代做准备。

最终输出t时刻的隐语义空间下的状态ht,而ht又反向输出给上一时刻的Cell,这样就通过双向的LSTM来得到上下文信息。

这里涉及的隐层表示省略。

为防止过拟合可采用BatchNormalization或者Dropout来限制。

可以把神经网络的深度不断拓展,就是在第一层BLSTM基础上,再叠加一层BLSTM,叠加方法就是把每个输入对应的BLSTM层的输出作为下一层BLSTM神经网络层相应节点的输入,因为两者完全是一一对应的,所以很好叠加这两层神经网络。也可以如此不断叠加更深一层的BLSTM来构造多层深度的BLSTM神经网络。

在最后一层BLSTM神经网络之上,可以使用Pooling(池化)技术将小邻域内的特征点整合得到新的特征。Pooling的结果是使得特征减少,参数减少,但Pooling的目的并不仅在于此。Pooling目的是为了保持某种不变性(旋转、平移、伸缩等),常用的有Mean Pooling(平均池化),Max Pooling和Stochastic Pooling(随机池化)三种。

Mean Pooling即对邻域内特征点只求平均Max Pooling即对邻域内特征点取最大。根据相关理论,特征提取的误差主要来自两个方面:(1)邻域大小受限造成的估计值方差增大;(2)卷积层参数误差造成估计均值的偏移。一般来说,Mean Pooling能减小第一种误差,更多的保留图像的背景信息,Max Pooling能减小第二种误差,更多的保留纹理信息。Stochastic Pooling则介于两者之间,通过对像素点按照数值大小赋予概率,再按照概率进行亚采样,在平均意义上,与Mean Pooling近似,在局部意义上,则服从Max Pooling的准则。

在Max Pooling之上,还可以套上一层Softmax层,Softmax是广义线性模型的一个重要例子,能够针对某类指数分布族建立对应的广义线性模型。Softmax是逻辑回归模型在多分类问题上的推广。

对应前述一种文本的关键词提取的方法,本发明还提供一种文本的关键词提取的装置,请参看图4,图4示出了本发明一种文本的关键词提取的装置一个方面的结构示意图。

文本的关键词提取的装置40包括分词模块401,用于对文本进行分词,以得到文本对应的词。分别运用词性标注模块402、统计信息加入模块403和索引化模块404,对词进行词性标注、统计信息加入和索引化。之后,运用权重模块405将词的词性标注信息、统计信息和索引信息输入深度学习提取模型,以获取词的重要性权重。最后运用提取模块406,根据重要性权重,选取文本的关键词。

在一实施例中,索引化模块404还包括词索引关系库,包括词到索引的映射关系;以及匹配模块,用于将词和词索引关系库中的词执行匹配度运算,将与词具有最高匹配度的词索引关系库中的词所对应的索引作为词的索引。

在另一实施例中,提取模块406可根据预设定的所需关键词的个数,按照前述重要性权重从高到低来进行关键词的提取,也可以只提取重要性权重最高的词作为关键词。

在另一实施例中,装置40还包括扩维模块,用于将词的索引信息进行扩维表示,以得到词的多维索引表示。权重模块405,进一步用于:将词的词性标注信息、统计信息和多维索引表示信息输入深度学习提取模型,以获取词的重要性权重。

可以直接使用现有技术中的Word Embedding算法或Word2vector算法进行词的索引信息的扩维,对应的扩维模块,进一步包括:

Word Embedding模块,用于运用Word Embedding算法将词的索引信息进行扩维表示,以得到Word Embedding结果作为词的多维索引表示,或Word2vector模块,用于运用Word2vector算法将词的索引信息进行扩维表示,以得到Word2vector结果作为词的多维索引表示。

更优地,装置40还包括命名实体识别模块,用于对词进行命名实体识别,词性标注模块、统计信息加入模块和索引化模块进一步用于对经过命名实体识别后的词进行相应操作。

在另一实施例中,装置40还包括停用词过滤模块,用于对文本进行停用词过滤,分词模块进一步用于对经过停用词过滤的文本进行分词。

在一实施例中,运用现有技术TF‐IDF算法进行词的统计信息的加入,对应的统计信息加入模块包括:TF‐IDF模块,用于运用TF‐IDF算法为词加入统计信息,以得到词的TF‐IDF权重作为统计信息。

在另一实施例中,为了减小关键词提取过程中的运算量,并且提高运算速度,装置40还包括分桶模块,用于将词的统计信息进行分桶处理,以得到词的分桶统计信息;以及权重模块,进一步用于将词的词性标注信息、分桶统计信息和索引信息输入深度学习提取模型。

由于深度学习提取模型都是基于数值表达进行运算的,在另一实施例中,词性标注模块包括:词性数值化模块,用于将不同的词性分别设置对应的数值;以及标注模块,用于将词的词性对应的数值作为词的词性标注。

在一实施例中,深度学习提取模型可以包括前后依次连接的BLSTM算法模型、Max Pooling算法模型和Softmax算法模型。

提供对本公开的先前描述是为使得本领域任何技术人员皆能够制作或使用本公开。对本公开的各种修改对本领域技术人员来说都将是显而易见的,且本文中所定义的普适原理可被应用到其他变体而不会脱离本公开的精神或范围。由此,本公开并非旨在被限定于本文中所描述的示例和设计,而是应被授予与本文中所公开的原理和新颖性特征相一致的最广范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1