自然语言文本关键词关联网络构建系统的制作方法

文档序号:6636874阅读:388来源:国知局
自然语言文本关键词关联网络构建系统的制作方法
【专利摘要】本发明提供一种自然语言文本关键词关联网络构建系统,包括分词模块、统计模块、训练模块、关联度计算模块和生成模块;分词模块,用于构建关键词的词典,根据词典对目标语料库进行分词操作,得到多个词;统计模块,用于对得到的多个词基于N元统计语言模型统计前后词关联出现的频度;训练模块,用于以统计出的频度为训练条件,采用神经网络训练语言模型,并获得词向量;关联度计算模块,用于计算两个词的词向量的相似度,作为两个词语义相关性的度量,生成两个词之间语义关联度;生成模块,用于根据所述语义关联度,按照两个词之间的所述语义关联度的高低,生成文本关键词关联网络。该系统,能够有效地提高有关项目中文本关联网络的精确度。
【专利说明】自然语言文本关键词关联网络构建系统

【技术领域】
[0001] 本发明属于自然语言处理【技术领域】,更具体地说,特别涉及一种自然语言文本关 键词关联网络构建系统。

【背景技术】
[0002] -般情况下,对海量科技项目数据处理或者专家信息数据总结评价,借助计算机 处理显得尤为必要,在自然语言处理技术中,由于中文自身的语言特点,中文处理比以拉丁 语系为主的西文处理要复杂得多。而使得计算机能够处理自然语言的一个前提是文本量 化。文本量化的一个处理手段是提取文本内容中的特征词,即从各类科技文献、科技项目立 项和评审等文本材料中抽取出行业或领域关键词,再通过关键词匹配等构建文本之间的关 联网络。
[0003] 对于中文处理来说,量化关联度的一个前提是对文本进行分词,在进行分词操作 得到词表后,当前最常用的词表示方法是把每个词表示为一个很长的向量,向量的维度是 词表大小,其中绝大多数元素为0,只有一个维度的值为1,这个维度就代表了当前的词,即 对文本中的每个词赋予了一个数字编码。该系统为稀疏方式存储,非常简洁实用。但是,任 意两个词之间都是孤立的,向量无法表示词之间的关系。因此,不同字组成的同义词,例如 "话筒"和"麦克风",通过这种表示方法无法体现其相同的意义。这就导致了有时关联度很 1?的关键词不会被识别,使得构建的关联网络精度不1?。


【发明内容】

[0004] 本发明要解决的技术问题是提供一种自然语言文本关键词关联网络构建系统,用 以解决上述技术问题。
[0005] 本发明提供了一种自然语言文本关键词关联网络构建系统,包括分词模块、统计 模块、训练模块、关联度计算模块和生成模块;
[0006] 所述分词模块,用于构建关键词的词典,根据所述词典对目标语料库进行分词操 作,得到多个词;
[0007] 所述统计模块,用于对得到的多个词基于N元统计语言模型统计前后词关联出现 的频度;
[0008] 所述训练模块,用于以统计出的频度为训练条件,采用神经网络训练语言模型,并 获得词向量;
[0009] 所述关联度计算模块,用于计算两个词的词向量的相似度,作为两个词语义相关 性的度量,生成两个词之间语义关联度;
[0010] 所述生成模块,用于根据所述语义关联度,按照两个词之间的所述语义关联度的 1?低,生成文本关键词关联网络。
[0011] 其中,所述分词模块包括构建词典子模块;
[0012] 所述构建词典子模块,用于通过爬虫技术爬取目标语料库中的关键词信息,将得 到的多个关键词汇总为词典。
[0013] 其中,所述分词模块还包括用于基于字符串匹配进行分词的第一分词子模块,以 及用于基于语义理解进行分词的第二分词子模块和/或用于基于字相邻共现频度统计进 行分词的第三分词子模块。
[0014] 其中,所述词向量为维度小于等于100的低维实数向量。
[0015] 其中,所述统计模块包括元组划分模块;
[0016] 所述元组划分模块,用于对切分后的多个词,按照相邻出现的1、2_ ? *N个词为 一个元组,进行元组划分,统计每个词在前N-I个词出现的条件下出现的概率。
[0017] 其中,所述训练模块,用于:
[0018] 采用三层的神经网络训练语言模型,将前N-I个向量首尾相接拼起来,形成一个 (N-l)m维的向量,作为所述神经网络的第一层,m为所述词向量的维度;
[0019] 使用d+Hx计算得到第二层,并使用tanh作为激活函数,d是一个偏置项;
[0020] 第三层输出V个节点yi,后使用softmax激活函数将输出值y归一化成概率,yi 表示下一个词为i的未归一化log概率,y的计算公式为:
[0021] y = b+ffx+Utanh (d+Hx)
[0022] 其中U是第二层到第三层的参数,b也为一个偏置项;
[0023] 用随机梯度下降法把所述语言模型优化出来。
[0024] 其中,所述关联度计算模块,用于计算两个词的词向量的余弦距离。
[0025] 本发明提供了一种自然语言文本关键词关联网络构建系统,分词模块对中文自然 语言文本进行分词后,统计模块基于N元统计语言模型统计前后词关联出现的频度,训练 模块以统计出的频度为训练条件,采用神经网络训练语言模型,并获得词向量,以两个词向 量的相似度,度量两个词之间语义关联度,进而构建关联网络,即将中文的语义信息通过概 率统计的方式,结合神经网络进行语言模型的训练,量化为词向量信息,这样构建的关联网 络,结合了语义信息,相比单纯的对不同字词进行编码而不考虑语义的关联方式,显然关联 的精度更高。

【专利附图】

【附图说明】
[0026] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。
[0027] 图1为本发明实施例提供的一种自然语言文本关键词关联网络构建系统结构示 意图。

【具体实施方式】
[0028] 为了使本【技术领域】的人员更好地理解本发明,下面结合附图和【具体实施方式】对本 发明作进一步的详细说明。
[0029] 本发明实施例提供了一种自然语言文本关键词关联网络构建系统。
[0030] 参见图1所示,该系统包括分词模块、统计模块、训练模块、关联度计算模块和生 成模块。
[0031] 其中分词模块,用于构建关键词的词典,根据词典对目标语料库进行分词操作,得 到多个词。
[0032] 分词模块包括构建词典子模块,用于通过爬虫技术爬取目标语料库中的关键词信 息,将得到的多个关键词汇总为词典,并依据词典对语料库进行分词操作。
[0033] 优选地,分词模块还包括用于基于字符串匹配进行分词的第一分词子模块,以及 用于基于语义理解进行分词的第二分词子模块和/或用于基于字相邻共现频度统计进行 分词的第三分词子模块。即分词操作包括基于字符串匹配进行分词,优选地,还应结合基于 语义理解进行分词方法和/或基于字相邻共现频度统计进行分词方法,综合进行分词,得 到词表。采用单一的分词方式,可能准确度不高,因此,将基于字符串匹配和基于理解以及 基于统计这三种方式进行合理搭配和结合运用,可提高分词的准确度。
[0034] 优选地,可利用n阶马尔科夫模型n-gram模型,将待分词文本进行分词,得到第一 文本,n-gram模型用于消除分词歧义,第一文本包括以空格为间隔的词串;当第一文本中 包括目标词串时,将目标词串添加至词典,得到更新后的词典,目标词串为未存储在所述词 典中的词串。根据所述更新后的词典,利用前向最大匹配分词方法以及后向最大匹配分词 方法对所述第一文本进行分词,分别得到第二文本和第三文本。从第二本文以及第三文本 中选取词长期望和词长方差符合要求的文本作为分词结果。
[0035] 更优地,对已分词的语料进行训练得到CRF模型;采用所述CRF模型对未分词的语 料进行分词;判断分词成功的语料是否满足设置的条件,如果是,则加入到所述已分词的语 料中;循环执行上述步骤,直至所述已分词的语料的规模不再扩大,得到最终的CRF模型。
[0036] 统计模块,用于对得到的多个词基于N元统计语言模型统计前后词关联出现的频 度。
[0037] 统计模块包括元组划分模块。元组划分模块,用于对切分后的多个词,按照相邻出 现的1、2 --? N个词为一个元组,进行元组划分,统计每个词在前N-I个词出现的条件下 出现的概率。
[0038] 其中N为自然数,即不为0的实数整数。
[0039] N元统计语言模型的形式化描述:给定一个词串,其为自然语言的概率 P(wl,w2, "^wt),wl到wt依次表示文本中的各个词,贝U有如下推论:
[0040] P (wl,w2, ...,wt) = P (wl) X P (w2 I wl) X P (w3 I wl,w2) X …X P (wt I wl,w2,... ,wt-1)
[0041] 其中P(wl)表示第一个词wl出现的概率,P(w2|wl)是在已知第一个词的前提下, 第二个词出现的概率,以次类推。可以看出,词W的出现概率取决于它前面所有词,因常用 的自然语言中的词语量都非常大,导致计算P (Wl,《2,…,wt)非常复杂,因此当前的自然语 言处理领域都考虑使用N元语言模型,N元模型假定每个词出现的概率只与前面出现的N-I 个词有关系,因此用P(wt I wt-n+1,…,wt-1)近似求解P(wt I wl, w2,…,wt-1)。
[0042] 例如,以3元语言模型为例,假定整个语料库已经被切分成词串wl,w2,…,wn,则 可以得到所有连续的1元组(〈wl>, <w2>, <w3>,…,<wn>)、2元组(〈wl, w2>, <w2, w3>,… ,〈wn_l, wn>)和 3 元组(〈wl, w2, w3>, <w2, w3, w4>,…,〈wn_2, wn_l, wn>),进而统计出每个词 wt在前2个词wt-1, wt-2出现的条件下出现的概率。
[0043] 训练模块,用于以统计出的频度为训练条件,采用神经网络训练语言模型,并获得 词向量。
[0044] 本发明实施例中所使用的词向量是一种形如[0? 792, -0? 177, -0? 107, 0? 109, -0? 5 42,...]的低维实数向量,维度一般不超过100,可以为50或者100这样的整数。这种词向 量可通过衡量彼此之间的距离得到语义相似度,同时高维词表的表示复杂度极大的降低。
[0045] 本发明中的词向量通过利用前馈或递归神经网络训练语言模型得到,以C(W)表 示词w所对应的词向量,神经网络的输入是前N-I个词wt-n+1,…,wt-1个词对应的词向 量,输出是一个向量,向量中的第i个元素表示下一个词是wi的概率,进而利用语料库获得 的N元组计算出的统计概率作为训练条件,进而不断调整神经网络各层权重,优化结束后 获得了语言模型和词向量。
[0046] 作为一种可实施方式,本发明实施例使用一个三层的神经网络来构建语言模型。
[0047] wt-n+1,…,wt-1是前N-I个词,需要根据这已知的N-I个词预测下一个词wt。 C(W)表示词w所对应的词向量,整个模型中使用的是一套唯一的词向量,存在矩阵C (一个 V| Xm的矩阵)中。其中I V|表示词表的大小(语料中的总词数),m表示词向量的维度。 C到C(W)的转化就是从矩阵中取出一行。
[0048] 网络的第一层(输入层)是将C(wt_n+1),…,C(wt-2),C(wt_l)这N-I个向量首 尾相接拼起来,形成一个(N-l)m维的向量。
[0049] 网络的第二层(隐藏层)如同普通的神经网络,直接使用d+Hx计算得到。d是一 个偏置项。在此之后,使用tanh作为激活函数。
[0050] 网络的第三层(输出层)一共有|V|个节点,每个节点yi表示下一个词为i的未 归一化log概率。最后使用SOftmax激活函数将输出值y归一化成概率。最终,y的计算 公式为:
[0051] y = b+ffx+Utanh (d+Hx)
[0052] 式子中的U(-个|V| Xh的矩阵)是隐藏层到输出层的参数,整个模型的多数计 算集中在U和隐藏层的矩阵乘法中。最后用随机梯度下降法把这个模型优化出来。一般神 经网络的输入层只是一个输入值,而本模型的输入层也是参数(存在C中),也需要优化的。 优化结束后同时产生了词向量和语言模型。
[0053] 更优地,采用如下神经网络算法表示语言模型:
[0054] h = H,C(Wi) 仁1
[0055] y』=C (Wj) Th
[0056] 其中,C(W)便是词向量。其中,h表示n-gram三层神经网络中的第二层隐藏层,带 有语义信息。Hi是一个mXm的矩阵,该矩阵可以理解为第i个词经过Hi变换之后对第t 个词产生的贡献。因此这里的隐藏层是对前t-1个词的总结,即隐藏层h是对下一个词的 一种预测。
[0057] yj是预测下一个词为wj的log概率,由C(wj)和h的内积计算获得,可以直接反 应两个词的相似度。如果各词向量的模基本一致,内积的数值大小即可反应两个向量的余 弦值大小。
[0058] 优选地,也可将大词表拆分为多个小词表;将每个小词表对应一个神经网络语言 模型,每个神经网络语言模型的输入维数相同且独立进行第一次训练;将各神经网络语言 模型的输出向量合并并进行第二次训练;得到归一化的神经网络语言模型。
[0059] 关联度计算模块,用于计算两个词的词向量的相似度,作为两个词语义相关性的 度量,生成两个词之间语义关联度。
[0060] 利用向量空间模型VSM(Vector Space Model)对两个词的向量进行距离计算作为 两个词语义相关性的度量,生成两个词之间语义关联度,进而构造出整个关键词语义网络。 计算两个词的词向量的相似度包括计算两个词的词向量的余弦距离。
[0061] 每个词表不为一个浮点向量,可以表不为高维空间中的一个向量,利用两个向量 之间的夹角计算两个向量的距离并表示他们的相似程度。
[0062] 生成模块,用于根据所述语义关联度,按照两个词之间的所述语义关联度的高低, 生成文本关键词关联网络。
[0063] 无论科技项目、科技成果还是专家信息都是以文本形式进行描述和表达。在对大 型科技成果数据库、专家信息库以及文献库等数据库中的内容进行量化、比较、评价等分析 操作时,需要计算机能够理解各种文本内容的语义,才能更为准确的进行相关计算。例如分 析项目之间是否具有相似性、模糊检索时均需要用到文本相似度计算;专家专业能力分析 中需要将用于描述专家的关键词和项目关键词进行模式匹配分析等。
[0064] 此外,现有的关键词网络多通过人工方式构建词库实现,对于新出现的词以及不 在词库中的词无法识别。在中文信息处理中通常使用的分词算法无法识别特定行业的关键 词,而且待评项目往往由于涉及科技创新,会创造出一些新的专业术语和名词。因此,不仅 需要识别关键词,还需要依赖于关键词的语义相关性进行更为准确的关键词关联识别,即 结合自然语言处理、信息检索、模式识别等技术,根据现有的信息形成语料库,通过统计手 段分析关键词之间的相关性。
[0065]因此,本发明实施例提供的关联网络构建系统,可用于量化评价科技项目、科技成 果,以及专家评估和遴选等应用领域。由于采用了可计算距离的词向量算法,因此可以获得 词向量的语义相似度,进而生成的词语义网络可以较好的表示各个词之间的近似关系。同 时该系统在应用于处理大规模预料库时,词向量维度较低,一般不超过100,相对于现在常 用的稀疏词向量表示方式,复杂度大为降低。
[0066] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用发明。对 这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一 般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将 不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致 的最宽的范围。
【权利要求】
1. 一种自然语言文本关键词关联网络构建系统,其特征在于,包括分词模块、统计模 块、训练模块、关联度计算模块和生成模块; 所述分词模块,用于构建关键词的词典,根据所述词典对目标语料库进行分词操作,得 到多个词; 所述统计模块,用于对得到的多个词基于N元统计语言模型统计前后词关联出现的频 度; 所述训练模块,用于以统计出的频度为训练条件,采用神经网络训练语言模型,并获得 词向量; 所述关联度计算模块,用于计算两个词的词向量的相似度,作为两个词语义相关性的 度量,生成两个词之间语义关联度; 所述生成模块,用于根据所述语义关联度,按照两个词之间的所述语义关联度的高低, 生成文本关键词关联网络。
2. 根据权利要求1所述的自然语言文本关键词关联网络构建系统,其特征在于,所述 分词模块包括构建词典子模块; 所述构建词典子模块,用于通过爬虫技术爬取目标语料库中的关键词信息,将得到的 多个关键词汇总为词典。
3. 根据权利要求2所述的自然语言文本关键词关联网络构建系统,其特征在于,所述 分词模块还包括用于基于字符串匹配进行分词的第一分词子模块,以及用于基于语义理解 进行分词的第二分词子模块和/或用于基于字相邻共现频度统计进行分词的第三分词子 模块。
4. 根据权利要求1所述的自然语言文本关键词关联网络构建系统,其特征在于,所述 词向量为维度小于等于100的低维实数向量。
5. 根据权利要求1所述的自然语言文本关键词关联网络构建系统,其特征在于,所述 统计模块包括元组划分模块; 所述元组划分模块,用于对切分后的多个词,按照相邻出现的1、2* ? *N个词为一个 元组,进行元组划分,统计每个词在前N-1个词出现的条件下出现的概率。
6. 根据权利要求1所述的自然语言文本关键词关联网络构建系统,其特征在于,所述 训练模块,用于: 采用三层的神经网络训练语言模型,将前N-1个向量首尾相接拼起来,形成一个(N-1)m维的向量,作为所述神经网络的第一层,m为所述词向量的维度; 使用d+Hx计算得到第二层,并使用tanh作为激活函数,d是一个偏置项; 第三层输出V个节点后使用softmax激活函数将输出值y归一化成概率,yi表示下 一个词为i的未归一化log概率,y的计算公式为: y = b+ffx+Utanh (d+Hx) 其中U是第二层到第三层的参数,b也为一个偏置项; 用随机梯度下降法把所述语言模型优化出来。
7. 根据权利要求1所述的自然语言文本关键词关联网络构建系统,其特征在于,所述 关联度计算模块,用于计算两个词的词向量的余弦距离。
【文档编号】G06F17/30GK104375989SQ201410719646
【公开日】2015年2月25日 申请日期:2014年12月1日 优先权日:2014年12月1日
【发明者】王晶华, 陈晰, 郭光 , 孙辰军, 赵洋 申请人:国家电网公司, 国网河北省电力公司, 国网河北省电力公司衡水供电分公司, 国家电网公司信息通信分公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1