本发明涉及语言分析领域,特别是涉及一种基于大规模语料提词方法和装置。
背景技术:
在中文资料的自然语言处理中,经常需要从语料中提取词。但是在中文文本处理领域,对词的定义一直含糊不清,什么样的单字或者单字的组合可以作为一个词,目前仍没有一个公认的、权威的标准。中文提词需要在没有标准词库的情况下,从语料中筛选出最可能成词的文本片段,主要应用于从语料中发现词。在中文没有标准词定义和划分的情况下,以什么标准定义词是从语料中提取词的关键。
计算机对于处理中文提词的关键是让计算机系统如何从汉语文本语料中发现词,并将它们提取出来。中文的字是记录语言的符号,而词是由语素组成的,是能够独立运用的最小的语言单位。但是汉语这种孤立语的文本,词与词之间没有任何空格之类的显式标志指示词的边界。因此,中文提词问题成为计算机处理孤立语时面临的一个重要工作。
因此,如何构建一种基于大规模语料提词方法和装置成为亟待解决的技术问题。
技术实现要素:
本发明实施例提供一种基于大规模语料提词方法和装置,用以解决现有技术中无法从大规模语料中有效识别并提取词的缺陷,实现计算机系统在大规模语料中有效识别并提取词。
为了解决上述问题,本发明公开了一种基于大规模语料的提词方法,包括步骤:
从收集的语料中统计候选词的凝合度及候选词的自由度;
将所述候选词的凝合度与候选词的自由度的乘积获得成词得分;
提取所述成词得分超过预先设定阈值的候选词。
本发明所述的方法,其中,
所述统计候选词的凝合度是通过计算语料中候选词的字间信息熵和词频获得。
本发明所述的方法,其中,
所述候选词的凝合度
其中,T表示候选词的内部凝合度,d表示候选词的长度,
S'i是候选词中第i个字的右熵,
其中,表示第i个字的右邻字符集中字元素“kj”出现在其右侧的次数,ni表示第i个字在语料中出现的次数,K表示第i个字的右邻字集中字元素个数;
S″i+1表示候选词中第i+1个字的左熵,
其中,表示第i+1个字的左邻字集中字元素“mj”出现在其左侧的次数,ni+1表示候选字中第i+1个字在语料中出现的次数,M表示第i+1个字的左邻字集中字元素个数;
pj表示候选词相对于第j个字的频率,
其中,n表示该长度为d的候选词在语料中出现的次数。
本发明所述的方法,其中,
所述候选词的自由度是通过计算并选择候选词左右邻字集信息熵小者为候选词的自由度。
本发明所述的方法,其中,
所述候选词的自由度
H=min{S',S″}
其中,H表示候选词的自由度,S'表示候选词的右熵,
其中,bi属于候选词的右邻字集,表示bi出现在候选词右边的频数,K表示候选词的右邻字集中字元素个数;
S″为候选词的左熵,
其中,mi属于候选词的左邻字集,表示mi出现在候选词左边的频数,M表示候选词的左邻字集中字元素个数。
为了解决上述问题,本发明还公开了一种基于大规模语料的提词装置,包括语料收集单元,还包括:
候选词凝合度计算单元,用于计算候选词的凝合度;
候选词自由度计算单元,用于计算候选词的自由度;
成词得分计算单元,用于将所述候选词的凝合度与候选词的自由度的乘积获得成词得分;
提词单元,用于提取所述成词得分超过预先设定阈值的候选词。
本发明所述的装置,其中,
所述候选词凝合度计算单元,进一步用于通过计算语料中候选词的字间信息熵和词频获得候选词的凝合度。
本发明所述的装置,其中,
所述候选词凝合度计算单元,进一步用于通过以下公式计算候选词的凝合度
其中,T表示候选词的内部凝合度,d表示候选词的长度,S'i是候选词中第i个字的右熵,
其中,表示第i个字的右邻字符集中字元素“kj”出现在其右侧的次数,ni表示第i个字在语料中出现的次数,K表示第i个字的右邻字集中字元素个数;
S″i+1表示候选词中第i+1的字的左熵,
其中,表示第i+1个字的左邻字集中字元素“mj”出现在其左侧的次数,ni+1表示候选字中第i+1个字在语料中出现的次数,M表示第i+1个字的左邻字集中字元素个数;
pj表示候选词相对于第j个字的频率,
其中,n表示该长度为d的候选词在语料中出现的次数。
本发明所述的装置,其中,
所述候选词自由度计算单元,进一步用于通过计算并选择候选词左右邻字集信息熵小者为候选词自由度。
本发明所述的装置,其中,
所述候选词自由度计算单元,进一步用于通过以下公式计算所述候选词的自由度
H=min{S',S″}
其中,H表示候选词的自由度,S'表示候选词的右熵,
其中,bi属于候选词的右邻字集,表示bi出现在候选词右边的次数,K表示候选词的右邻字集中字元素个数;
S″为候选词的左熵,
其中,mi属于候选词的左邻字集,表示mi出现在候选词左边的次数,M表示候选词的左邻字集中字元素个数。
本发明实施例提供的一种基于大规模语料的提词方法及装置,通过计算候选词的凝合度,在计算候选词凝合度时结合了其内部字间的信息熵与候选词相对于内部各字的频率信息;其次对于计算候选词的自由度采用计算左右邻字集信息熵,即候选词左右邻字集信息熵的小者;最后对于候选词凝合度与自由度的乘积作为其成词得分,在对大规模语料进行提词时,将候选词成词得分高于预先设置的阈值的候选词提取出来。实现了计算机系统在大规模语料中有效识别并提词。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一种基于大规模语料的提词方法实施例的步骤流程图;
图2是本发明一种基于大规模语料提词装置实施例的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
参照图1,示出了本发明实施例一种基于大规模语料提词方法的步骤流程图。
本实施例的方法包括以下步骤:
步骤100:从收集的语料中统计候选词的凝合度及候选词的自由度;本实施例中,所述统计候选词的凝合度可以通过计算语料中候选词的字间信息熵和词频获得;所述候选词的自由度可以通过计算并选择候选词左右邻字集信息熵最小者为候选词的自由度。
步骤200:将所述候选词的凝合度与候选词的自由度的乘积获得成词得分;
步骤300:提取所述成词得分超过预先设定阈值的候选词。
在本实施例中,收集了搜狐网2016年4月前半个月的各个领域的新闻语料数据。在收集的大规模语料中,若成词的文本片段分布充足,那么相对于不成词的片段其内部凝合程度会较高,且自由度更大。如果将字的左右邻字看作随机变量,那么一个字的左右邻字集的信息熵就反映了这个字左右邻字的随机性,熵值越小说明该字的左或右邻字集越稳定。
将文本片段中各字的右信息熵与其右相邻字的左信息熵相乘并求最大者,则可以反映该文本片段内部各字之间的最低稳定性,越小说明该文本片段越稳定。而候选词与其中各字的频数比又从整体上反映了候选词与其中包含的各个字的紧密程度,越大说明候选词与其中各字关系越紧密。这样取前者的倒数与后者相乘就可以反映该文本片段的内部凝合度。所以本发明中我们用候选词内部字间信息熵乘积最大者的倒数与候选词的相对频率的乘积作为其内部凝合度T,其值越大表明候选词内部凝合度越高,成词可能性也越高。
对于某个长度为d的候选词,其内部凝合度
其中,T表示候选词的内部凝合度,d表示候选词的长度,S'i是候选词中第i个字的右熵,
其中,表示第i个字的右邻字符集中字元素“ki”出现在其右侧的次数,ni表示第i个字在语料中出现的次数,K表示第i个字的右邻字集中字元素个数。S″i+1表示候选词中第i+1个字的左熵,
其中,表示第i+1个字的左邻字集中字元素“mj”出现在其左侧的次数,ni+1表示候选字中第i+1个字在语料中出现的次数,M表示第i+1个字的左邻字集中字元素个数。pj表示候选词相对于第j个字的频率:
其中,n表示该长度为d的候选词在语料中出现的次数。
在本实施例中,候选词的自由运用程度可以反映候选词上下文环境的丰富性。由信息熵的定义,可以知道其值越大,说明随机变量的随机性越强。这里取候选词的左右邻字集的信息熵来反映其自由运用程度,为了整体上反映候选词的自由度,取候选词左右信息熵的较小者作为其自由度H,其值越大说明候选词越自由,成词可能性越高。自由度
H=min{S',S″}
其中,H表示候选词的自由度,S'表示候选词的右熵,
其中,bi属于候选词的右邻字集,表示bi出现在候选词右边的次数,K表示候选词的右邻字集中字元素个数。S″为候选词的左熵,:
其中,mi属于候选词的左邻字集,表示mi出现在候选词左边的次数,M表示候选词的左邻字集中字元素个数。
本实施例中候选词成词得分为G,同样该分值越大,候选词成词的可能性越高,其中,
G=T*H
实现提词对文本中出现的所有长度不超过d的子串都当作潜在词的候选词,计算它们的成词得分,再为候选词的成词得分设定一个阈值,最后取出所有阈值之上的候选词作为需要提取的词。具体操作中,可以将整个语料看作一个字符串,并对该字符串的所有后缀按字典序排序,从而将相同的候选词集中在一起。从头到尾扫描一遍算出各候选词的内部各字的右邻字信息熵、与候选词对应的右邻字信息熵、以及候选词的频数和内部各字的频数。再将整个语料逆序后重新排列现在所有的后缀,再扫描一遍便可统计得到候选词内部各个字的左邻字信息熵,以及与候选词对应的左邻字信息熵。通过计算各候选词的成词得分,降序排序后抽取阈值之上的词,这样就完成了大规模语料的提词算法。
本实施例所述方法在中文没有标准词定义和划分的情况下,实现了计算机系统在大规模语料中有效识别并提取词。
实施例二
参照图2,示出了本发明实施例一种基于大规模语料提词装置的结构框图。
本实施例的装置,包括语料收集单元,还包括:
候选词凝合度计算单元,用于计算候选词的凝合度;在本实施例中,可以用于通过计算语料中候选词的字间信息熵和词频获得候选词的凝合度。
候选词自由度计算单元,用于计算候选词的自由度;本实施例中,可以通过计算并选择候选词左右邻字集信息熵最小者为候选词自由度。
成词得分计算单元,用于将所述候选词的凝合度与候选词的自由度的乘积获得成词得分;
提词单元,用于提取所述成词得分超过预先设定阈值的候选词。
在本实施例中,所述候选词凝合度计算单元,可以用于通过以下公式计算候选词的凝合度
其中,T表示候选词的内部凝合度,d表示候选词的长度,
S'i是候选词中第i个字的右熵,
其中,表示第i个字的右邻字符集中字元素“ki”出现在其右侧的次数,ni表示第i个字在语料中出现的次数,K表示第i个字的右邻字集中字元素个数;
S″i+1表示候选词中第i+1的字的左熵,
其中,表示第i+1个字的左邻字集中字元素“mj”出现在其左侧的次数,ni+1表示候选字中第i+1个字在语料中出现的次数,M表示第i+1个字的左邻字集中子元素个数;
pj表示候选词相对于第j个字的频率,
其中,n表示该长度为d的候选词在语料中出现的次数。
在本实施中,所述候选词自由度计算单元,可以用于通过以下公式计算所述候选词的自由度
H=min{S',S″}
其中,H表示候选词的自由度,S'表示候选词的右熵,
其中,bi属于候选词的右邻字集,表示bi出现在候选词右边的次数,K表示候选词的右邻字集中字元素个数;
S″为候选词的左熵,
其中,mi属于候选词的左邻字集,表示mi出现在候选词左边的次数,M表示候选词的左邻字集中字元素个数。
本实施例的基于大规模语料提词的装置用于实现前述实施例一中相应的提词方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。