基于机器学习的关键词识别方法与流程

文档序号:11774781阅读:3546来源:国知局

本发明涉及自然语言处理,特别涉及一种基于机器学习的关键词识别方法。



背景技术:

随着网络技术及internet的逐渐成熟,传统的单一关键词方式已不能满足当前海量信息的内容获取需求,如何设计好问答系统成为网络搜索需要解决的一个重要技术。从现有的问答系统来看,中文由于其分词的复杂性和语义识别等方面的限制,成形产品技术相对较落后,例如,由于现有分词方法必须首先设定一个匹配词长的初始值,词长过长则算法的时间复杂度提高;词长过短则切分正确率降低。对于二义字段的处理也不能满足实际用户需要。



技术实现要素:

为解决上述现有技术所存在的问题,本发明提出了一种基于机器学习的关键词识别方法,包括:

采用散列树词典建立数据检索结构,

利用统计方法消除分词过程中出现的二义字段。

优选地,所述散列树词典用于存储字符串,实现字符串的快速查找;所述散列树由首字索引和散列树节点两部分组成,在对被切分语句的一次扫描过程中,沿着树链的根节点逐字匹配。

优选地,所述散列树根据中文编码标准的分区数a和每分区字数b,在散列树节点中存储b个数据单元,装载中文分词词典,建立的数据检索结构如下:

首字索引,根据字的区位码采用以下公式直接定位:

pos=(c1-176)×b+(c2-161)

pos为词在首字索引节点中的位置,c1为词首字第一个字节的无符号数,c2为第二个字节的无符号数。

优选地,所述首字索引节点包含如下数据:

属性:单字是否匹配为词,是否存在子树,索引字作为首字的最长词的长度;

子树大小:存在子树时,首字为索引字的两字词的个数,否则为0;

子树指针:存在子树时,指针指向子树,否则指针为空;

首字索引的一个单元是所对应字的散列树的根节点。

优选地,所述散列树节点包含单一关键字、是否存在子树的标识,根节点到当前节点关键字是否匹配为词,根节点到当前节点关键字为前缀的最长词的长度、子树大小,存在子树时,根节点到当前关键字为前缀的词的个数,否则为0;子树指针:存在子树时,指针指向子树,否则指针为空。

优选地,所述方法还包括:

把语句中的第n个词作为紧接其前面的n-1个词的马尔可夫过程的状态转移,利用这些词间的同现概率作为状态间的转移来进行词性标注,通过语料训练来提取各种概率参数,根据概率参数来计算出一个给定的词可能对应的标记串的概率,然后按照预定义标准选择适当的标记串作为输出。

本发明相比现有技术,具有以下优点:

本发明提出了一种基于机器学习的关键词识别方法,改进了对分词的二义字段处理的过程,具备更理想的时间复杂度和切分正确率。

附图说明

图1是根据本发明实施例的基于机器学习的关键词识别方法的流程图。

具体实施方式

下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。

本发明的一方面提供了一种基于机器学习的关键词识别方法。图1是根据本发明实施例的基于机器学习的关键词识别方法流程图。

本发明采用散列树词典建立数据检索结构,利用统计方法消除分词过程中出现的二义字段。散列树词典用于存储字符串,实现字符串的快速查找。所述散列树由首字索引和散列树节点两部分组成,在对被切分语句的一次扫描过程中,沿着树链的根节点逐字匹配。根据中文编码标准的分区数a和每分区字数b,在散列树节点中存储b个数据单元,装载中文分词词典。数据结构如下:

首字索引,根据字的区位码采用以下公式直接定位:

pos=(c1-176)×b+(c2-161)

pos为词在首字索引节点中的位置,c1为词首字第一个字节的无符号数,c2为第二个字节的无符号数。

首字索引节点包含如下数据:属性:单字是否匹配为词,是否存在子树,索引字作为首字的最长词的长度;子树大小:存在子树时,首字为索引字的两字词的个数,否则为0;子树指针:存在子树时,指针指向子树,否则指针为空。首字索引的一个单元是所对应字的散列树的根节点。

散列树节点包含单一关键字、是否存在子树的标识,根节点到当前节点关键字是否匹配为词,根节点到当前节点关键字为前缀的最长词的长度、子树大小,存在子树时,根节点到当前关键字为前缀的词的个数。否则为0、子树指针:存在子树时,指针指向子树,否则指针为空。

把语句中的第n个词作为紧接其前面的n-1个词的马尔可夫过程的状态转移,利用这些词间的同现概率作为状态间的转移来进行词性标注,通过语料训练来提取各种概率参数,根据概率参数来计算出一个给定的词可能对应的标记串的概率,然后按照预定义标准选择适当的标记串作为输出。

在散列树词典的基础上,首先根据断句表,将中文句子切分为短句,然后在进行匹配分词的同时保存匹配过程中字符串的匹配信息,通过字符串的匹配信息以及逐词扫描的方法来判断是否存在二义字段,最后将预切分的中间结果交给细分过程进行处理。由于每个字都有被作为词的首字进行匹配的过程,所以可以找出所有的二义字段。经过上述改进的分词算法处理之后,预切分结果中包含了二义字段的所有切分路径。根据训练语料库中的词频信息,利用统计模型计算出所有切分路径中词的概率,概率最大的词即是最优词。

具体描述如下:

步骤1:对搜索语句进行初步分词预处理,即首先根据断句表将搜索语句预切分为多个子串并保存;

步骤2:取预切分子串s=c0c1…cn-1,n为子串的长度,并初始化变量temp=n,p=0;q=1000000;

步骤3:取s的第j个字符cj,获得cj在首字索引中的位置;

步骤4:读取当前节点的数据,包括是否匹配为词,是否存在子树,最长词长,如果存在子树,读取子树指针和子树大小;

步骤5:取i=j+1,如果最长词长<n,转步骤11;

步骤6:取s的第i个字符ci,读取子树指针中各个散列树节点数据:关键字,是否匹配为词的属性,最长词长,子树指针和子树大小。利用二分法在以每个关键字为起点、子树大小为距离的区间中匹配ci,如果匹配失败,则ci-1ci不形成词;

此时,如果i-1>q,则保存cpcp+1...ci-1的相关信息到二义字段集合中,并将s右移i-p个字,同时,令n=temp-(i-p),转步骤3;

否则如果i-1≤q,保存cpcp+1...ci-1成词信息,将s从p处右移i-j个字,令n=temp-(i-j+1),转步骤3;

步骤7:读取子树指针中各个散列树节点数据,包括关键字,是否匹配为词,最长词长,子树指针,子树大小;

步骤8:如果最大词长为n且匹配为词,则保存匹配后的词ci+1-nci+2-n...ci;

步骤9:如果该词是第一次匹配成功,记p=i+1-n,q=i,j=p+1,转步骤3;否则,j=i,转步骤3;

步骤10:i=i+1,转步骤6;

步骤11:s左移一个字,n=n-1,转步骤3;

步骤12:如果二义字段集合不为空,则进行消歧处理;否则,分词结束。

上述消歧处理进一步包括:

设置三个参数,词性状态矩阵a、b、π;

其中词性状态矩阵a即为词性状态矩阵,把41个词性之间的状态转移矩阵(41×41)转化为表的形式存储其中。矩阵a的元素aij为:

aij=n(ti,tj)/n(ti)

其中n(ti,tj)是在训练中词性标记tj紧跟在ti后出现的次数,n(ti)是标记ti出现的次数。

其中符号概率分布矩阵b,把每个词对应不同的词性概率存储在其中。对词性表中的概率,由以下公式得到词性概率分布bjk:

bjk=n(wk,tj)/n(ti)

其中n(wk,tj)是在训练中词汇wk的词性标注为tj出现的次数。

参数π表示初始状态概率分布。

输入参数集λ=(a,b,π),对于给定句子确定出每个词的词性。令w=w1w2λwm为一个句子,wi为句子中的一个词。又令q=q1q2λqm为句子w一个可能词性标注序列,qi为词wi的一个词性标注结果。将问题转化为在一个模型λ寻求一个词性序列使得它能最好解释句子w,本发明采用hmm评价标准,选用单个最可能状态qt,这个评价标准使得达到正确状态的数目的期望值最大。

对于每一种可能的预切分路径,首先初始化:

δ1(i)=πibi(o1)初始化时bi(o1)

归纳计算并保存回溯

δt(j)=max1<i<n[δt(j)aij]×bj(ot),2≤t≤t,1≤j≤n

其中t为时刻,aij为状态转移概率即词性转移,j为词性状态,δt(j)是t时刻状态为j,输出为o1,o2,…,ot的最大概率,该变量保存到达每个结点的最有可能的路径的概率。利用动态规划算法计算整个网格的最佳路径。

最后结束并产生路径(带回溯)

p=max1<i<n[δt(j)]

至此,求得最优路径状态序列及最优权值。

对于每一种可能的预切分路径都将计算p值,比较所有预切分路径的p值,选择一种最大概率p,作为输出结果。

综上所述,本发明提出了一种基于机器学习的关键词识别方法,改进了对分词的二义字段处理的过程,具备更理想的时间复杂度和切分正确率。

显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。

应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。

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