一种基于词的关联特征的中文分词方法与流程

文档序号:15999231发布日期:2018-11-20 19:14阅读:259来源:国知局

本发明涉及一种基于词的关联特征的中文分词方法,属于信息处理技术领域。



背景技术:

中文分词技术属于自然语言处理技术范畴,对于一句话,人可以通过自己的知识来明白哪些是词,哪些不是词,但如何让计算机也能理解?其处理过程就是分词算法。

现有的分词算法可分为三大类:基于理解的分词方法、基于字符串匹配的分词方法和传统的基于统计的分词方法。

基于理解的分词方法,是通过让计算机模拟人对句子的理解,达到识别词的效果。其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。它通常包括三个部分:分词子系统、句法语义子系统、总控部分。在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断,即它模拟了人对句子的理解过程。这种分词方法需要使用大量的语言知识和信息。由于汉语语言知识的笼统、复杂性,难以将各种语言信息组织成机器可直接读取的形式,因此目前基于理解的分词系统还处在试验阶段。

基于字符串匹配的分词方法,又叫做机械分词方法,它是按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。常用的几种机械分词方法有:(1)正向最大匹配法(由左到右的方向);(2)逆向最大匹配法(由右到左的方向);(3)最少切分(使每一句中切出的词数最小)。还可以将这三种机械分词方法相互组合,例如,可以将正向最大匹配方法和逆向最大匹配方法结合起来构成双向匹配法。由于汉语单字成词的特点,正向最小匹配和逆向最小匹配一般很少使用。一般说来,逆向匹配的切分精度略高于正向匹配,遇到的歧义现象也较少。实际使用的分词系统,都是把机械分词作为一种初分手段,还需通过利用各种其它的语言信息来进一步提高切分的准确率。一种提高方法是改进扫描方式,称为特征扫描或标志切分,优先在待分析字符串中识别和切分出一些带有明显特征的词,以这些词作为断点,可将原字符串分为较小的串再来进机械分词,从而减少匹配的错误率。另一种提高方法是将分词和词类标注结合起来,利用丰富的词类信息对分词决策提供帮助,并且在标注过程中又反过来对分词结果进行检验、调整,从而极大地提高切分的准确率。

上述基于字符串匹配的分词方法,也就是机械分词方法中,不管是正向最大匹配法、逆向最大匹配法还是最少切分,这些最大匹配法的目的是试图在每分一个词时都尽量使其与词典中的词匹配长度最长。最大匹配法的优点是原理简单,易于实现,缺点是最大匹配长度不易确定,若太大则时间复杂度上升,太小则有些超过该长度的词无法匹配,降低了分词的准确率。最大匹配法的评价原则是“长词优先”。然而现有的最大匹配法不论顺向还是逆向,增字或减字,都是在局部范围进行最大匹配,即每次最大匹配的范围都是最先i个或最后i 个字符,这样并没有充分体现“长词优先”的原则。

基于传统统计的分词方法的原理是,从形式上看,词是稳定的字的组合,因此在上下文中,相邻的字同时出现的次数越多,就越有可能构成一个词。因此字与字相邻共现的频率或概率能够较好的反映成词的可信度。可以对语料中相邻共现的各个字的组合的频度进行统计,计算它们的互现信息。定义两个字的互现信息,计算两个汉字X、Y的相邻共现概率。互现信息体现了汉字之间结合关系的紧密程度。当紧密程度高于某一个阈值时,便可认为此字组可能构成了一个词。这种方法只需对语料中的字组频度进行统计,不需要切分词典,因而又叫做无词典分词法或统计取词方法。但这种方法也有一定的局限性,会经常抽出一些共现频度高、但并不是词的常用字组,例如“这一”、“之一”、“有的”、“我的”、“许多的”等,并且对常用词的识别精度差,时空开销大。



技术实现要素:

本发明要解决的技术问题是提供一种基于词的关联特征的中文分词方法,用以解决现有技术中无法从大规模语料中有效识别并提取词的缺陷,实现计算机系统在大规模语料中有效识别并提取词。

本发明的技术方案是:一种基于词的关联特征的中文分词方法:

a、从文本库中选出需要处理的文本,并对文本库进行预处理,包括去符号并使其形成语句,利用去符号后的语句构建语料库;

b、采用前后拼接词的分词方法,对步骤1中的语料库进行分词,形成分词碎片;

c、采用二元切分前后词拼接方法、三元切分前后词拼接方法、四元切分前后词拼接方法,形成二元候选词库、三元候选词库和四元候选词库;

d、对二元候选词库、三元候选词库和四元候选词库中的二元候选词,三元候选词,四元候选词进行词频统计;

e、对统计好词频的候选词设定一个词频门限,并对其进行判决,满足此门限的候选词保留,形成新的语料库,若不满足此门限的候选词则删除;

f、计算出步骤5处理后的语料库中的候选词的自由度和凝合度,并给定所有候选词一个统一的自由度和凝合度的门限,并进行判决,满足判决的候选词保留,若不满足此判决的候选词则删除;

g、采用分词过滤方法,在对筛选出来的三元候选词和四元候选词进行进一步的过滤,形成新的词库。

所述前后拼接词方法是指对一句中文从第一个字开始进行连续的切割分词,将其所有成词词语切割出来,具体为:

对于一个中文文本所包含的文本内容假设为:

{ai,ai+1,ai+2,ai+3,ai+4,ai+5.......ai-1+n,ai+n},其中,ai表示为文本中的一个字符,n∈N;

采用二元切分前后词拼接方法对文本集合进行二元切分拼接处理,得到处理结果二元文本片段集合,为:{(aiai+1),(ai+1ai+2),(ai+2ai+3),(ai+3ai+4),ai+5.......(ai-1+nai+n)};

采用三元切分前后词拼接方法对文本集合进行三元切分拼接处理,得到处理结果三元文本片段集合,为:{(aiai+1),(ai+1ai+2),(ai+2ai+3),(ai+3ai+4),ai+5.......(ai-1+nai+n)};

采用四元切分前后词拼接方法对文本集合进行四元切分拼接处理,得到处理结果四元文本片段集合,为:{(aiai+1ai+2ai+3),(ai+1ai+2ai+3ai+4),(ai+2ai+3ai+4ai+5).......(ai-3+nai-2+nai-1+nai+n)}。

所述自由度是指:当一个文本片段出现在各种不同的文本集中,且具有左邻字集合和右邻字集合,左邻字集合是指出现在文本片段左边相邻的字符的集合,右邻字集合是指出现在文本片段右边相邻的字符的集合,通过计算左邻字集合和右邻字集合的信息熵获取一个文本片段的信息熵,取左邻字集合和右邻字集合中较小信息熵作为自由度。

所述自由度为得到的文本片段集合中,当一个文本片段能够出现在各种不同的文本集中,且具有左邻字集合和右邻字集合,通过计算左邻字集合和右邻字集合的信息熵获取一个文本片段的信息熵H,即,H=min{s′,s″}H表示候选词的自由度,S′表示候选词的右熵,s″为候选词的左熵,取左邻字集合和右邻字集合中较小信息熵作为自由度。

所述凝合度是指在一个文本中,一个新词单独出现的概率高于其组合词的概率的乘积,即P(AB)>P(A)P(B),令取最小的M为凝合度,其中AB表示一个新词,P(AB)表示新词在文本中出现的概率,A和B分别指代一个组合词,P(A) 和P(B)分别代表组合词在文本中出现的概率。

所述统计候选词的凝合度是通过计算语料中候选词的独立概率和联合概率的比值得到,具体步骤为:

(1)由候选词的概率和候选词的组合概率的比值得到两元候选词凝合度M2:

其中,M2表示候选词的凝合度,si表示两元候选词的第一个字在语料库中出现的概率, Ni表示两元候选词第一个字在语料中出现的次数,Ni+1表示两元候选词第二个字在语料中出现的次数,Ni,i+1表示两元候选词在语料库中出现的次数,表示语料中总字数,si+1表示两元候选词第二个字在语料库中出现的概率,p(i,i+1)表示两元候选词语在语料中出现的概率;

(2)由候选词的概率和候选词的组合概率的比值得到三元候选词凝合度M3:

其中,M3表示候选词的凝合度,Si表示三元候选词的第一个字在语料库中出现的概率, si+1,i+2表示三元候选词的后两个字同时在语料库中出现的概率,si,i+1表示三元候选词的前两个字同时在语料库中出现的概率,si+2表示三元候选词的最后一个字在语料库中出现的概率,Ni表示三元候选词的第一个字在语料库中出现的次数,Ni+2表示三元候选词的第三个字在语料库中出现的次数,Ni+1,i+2表示三元候选词的后两个字在语料库中出现的次数,Ni,i+1表示三元候选词的前两个字在语料库中出现的次数,Ni,i+1,i+2表示三元候选词在语料库中出现的次数,P(i,i+1,i+2)表示三元候选词语在语料中出现的概率;

(3)由候选词的概率和候选词的组合概率的比值得到四元候选词凝合度M4:

其中,M4表示候选词的凝合度,Si表示四元候选词的第一个字在语料库中出现的概率, Si+1,i+2,i+3表示四元候选词的后三个字同时在语料库中出现的概率,Si,i+1,i+2表示四元候选词的前三个字同时在语料库中出现的概率,Si,i+1,表示四元候选词的前两个字在语料库中出现的概率,Si+2,i+3表示四元候选词的后两个字在语料库中出现的概率,Ni表示四元候选词的第一个字在语料库中出现的次数,Ni+3表示四元候选词的第四个字在语料库中出现的次数, Ni,i+1表示四元候选词的前两个字在语料库中出现的次数,Ni+2,i+3表示四元候选词的后两个字在语料库中出现的次数,Ni+1,i+2,i+3,表示四元候选词的后三个字在语料库中出现的次数, Ni+1,i+2,i+3,表示四元候选词的前三个字在语料库中出现的次数,P(i,i+1,i+2,i+3)表示四元候选词在语料库中出现的概率。

所述三元候选词的过滤方法是:对于三元候选词,若后两个字符是存在于二元候选词库中,判断第一个字是否与左邻接字构成一个词,若前两个字符是存在于二元候选词库中,判断最后一个字是否与右邻接字构成一个词,确定三元候选词是否候选词;

若则(Ai-1AiAi+1)属于三元词;

其中,(Ai-1AiAi+1)属于三元候选词,Ai-2是三元候选词的左邻字集,Ai+2是三元候选词的右邻接字,{A0....Ai....AN.},是语料库中字符集和,{(A0,A1)...(Ai,Ai+1)...(Ai-2,Ai-1)},是二元候选词集合。

所述四元候选词的过滤方法是:对可能成词的四元候选词,首先,进行分割,前两个字为一个分词片段,后两个字为另一个分词片段,并分别对分词片段与已分好的二元词库进行匹配,匹配中的则作为预选词,然后,在对四元词的中间两个字进行分割,并与已分好的二元词库进行匹配,匹配不中的则作为预选词,如果两个条件都满足,则作为分词的结果:

其中,{Ai-2,(Ai-1AiAi+1)Ai+2}.表示四元候选词,{(Ai-2,Ai-1),(Ai,Ai+1)}表示由四元候选词分出来的前后两各词,{(A0A1)...(AiAi+1)...(ANAN+1)}表示二元词库,{(Ai-1,Ai)}表示四元候选词中间词。

本发明的有益效果是:本发明所提供的方法的正确性和有效性比较高,系统可以高效地进行分词,本发明设计到的,凝合度,自由度,三元和四元分词方法可以很好的解决传统的基于统计模型的分词方法所出现的问题。

附图说明

图1是本发明的流程示意图;

具体实施方式

下面结合附图和具体实施方式,对本发明作进一步说明。

实施例1:如图1所示,一种基于词的关联特征的中文分词方法:

a、从文本库中选出需要处理的文本,并对文本库进行预处理,包括去符号并使其形成语句,利用去符号后的语句构建语料库;

b、采用前后拼接词的分词方法,对步骤1中的语料库进行分词,形成分词碎片;

c、采用二元切分前后词拼接方法、三元切分前后词拼接方法、四元切分前后词拼接方法,形成二元候选词库、三元候选词库和四元候选词库;

d、对二元候选词库、三元候选词库和四元候选词库中的二元候选词,三元候选词,四元候选词进行词频统计;

e、对统计好词频的候选词设定一个词频门限,并对其进行判决,满足此门限的候选词保留,形成新的语料库,若不满足此门限的候选词则删除;

f、计算出步骤5处理后的语料库中的候选词的自由度和凝合度,并给定所有候选词一个统一的自由度和凝合度的门限,并进行判决,满足判决的候选词保留,若不满足此判决的候选词则删除;

g、采用分词过滤方法,在对筛选出来的三元候选词和四元候选词进行进一步的过滤,形成新的词库。

所述前后拼接词方法是指对一句中文从第一个字开始进行连续的切割分词,将其所有成词词语切割出来,具体为:

对于一个中文文本所包含的文本内容假设为:

{ai,ai+1,ai+2,ai+3,ai+4,ai+5.......ai-1+n,ai+n},其中,ai表示为文本中的一个字符,n∈N;

采用二元切分前后词拼接方法对文本集合进行二元切分拼接处理,得到处理结果二元文本片段集合,为:{(aiai+1),(ai+1ai+2),(ai+2ai+3),(ai+3ai+4),ai+5.......(ai-1+nai+n)};

采用三元切分前后词拼接方法对文本集合进行三元切分拼接处理,得到处理结果三元文本片段集合,为:{(aiai+1),(ai+1ai+2),(ai+2ai+3),(ai+3ai+4),ai+5.......(ai-1+nai+n)};

采用四元切分前后词拼接方法对文本集合进行四元切分拼接处理,得到处理结果四元文本片段集合,为:{(aiai+1ai+2ai+3),(ai+1ai+2ai+3ai+4),(ai+2ai+3ai+4ai+5).......(ai-3+nai-2+nai-1+nai+n)}。

所述自由度是指:当一个文本片段出现在各种不同的文本集中,且具有左邻字集合和右邻字集合,左邻字集合是指出现在文本片段左边相邻的字符的集合,右邻字集合是指出现在文本片段右边相邻的字符的集合,通过计算左邻字集合和右邻字集合的信息熵获取一个文本片段的信息熵,取左邻字集合和右邻字集合中较小信息熵作为自由度。

所得到的文本片段集合中,文本片段的左邻字集合是指:出现在文本片段左边相邻的字符的集合,例如文本片段(ai+1ai+2)在文本集合{ai,ai+1,ai+2,ai+3,ai+4,ai+5.......ai-1+n,ai+n}中左邻字集合为{ai},文本片段的右邻字集合是指:出现在文本片段右边相邻的字符的集合,例如文本片段(ai+1ai+2)在文本集合{ai,ai+1,ai+2,ai+3,ai+4,ai+5.......ai-1+n,ai+n}中右邻字集合为 {ai+3}。

所述自由度为得到的文本片段集合中,当一个文本片段能够出现在各种不同的文本集中,且具有左邻字集合和右邻字集合,通过计算左邻字集合和右邻字集合的信息熵获取一个文本片段的信息熵H,即,H=min{s′,s″}H表示候选词的自由度,S′表示候选词的右熵,s″为候选词的左熵,取左邻字集合和右邻字集合中较小信息熵作为自由度。

所述候选词的自由度是通过计算并选择候选词左右邻字集信息熵小者为候选词的自由度。

H=min{s′,s″}

其中,H表示候选词的自由度,s'表示候选词的右熵;

其中,bi属于候选词的右邻字集,nbi表示bi出现在候选词右边的频数,k表示候选词的右邻字集中字元素个数,s″为候选词的左熵;

其中,mi属于候选词的左邻字集,nmi表示mi出现在候选词左边的频数,M表示候选词的左邻字集中字元素个数。

所述凝合度是指在一个文本中,一个新词单独出现的概率高于其组合词的概率的乘积,即P(AB)>P(A)P(B),令取最小的M为凝合度,其中AB表示一个新词,P(AB)表示新词在文本中出现的概率,A和B分别指代一个组合词,P(A)和P(B) 分别代表组合词在文本中出现的概率。

所述统计候选词的凝合度是通过计算语料中候选词的独立概率和联合概率的比值得到,具体步骤为:

(1)由候选词的概率和候选词的组合概率的比值得到两元候选词凝合度M2:

其中,M2表示候选词的凝合度,si表示两元候选词的第一个字在语料库中出现的概率, Ni表示两元候选词第一个字在语料中出现的次数,Ni+1表示两元候选词第二个字在语料中出现的次数,Ni,i+1表示两元候选词在语料库中出现的次数,表示语料中总字数,Si+1表示两元候选词第二个字在语料库中出现的概率,p(i,i+1)表示两元候选词语在语料中出现的概率;

(2)由候选词的概率和候选词的组合概率的比值得到三元候选词凝合度M3:

其中,M3表示候选词的凝合度,Si表示三元候选词的第一个字在语料库中出现的概率, si+1,i+2表示三元候选词的后两个字同时在语料库中出现的概率,si,i+1表示三元候选词的前两个字同时在语料库中出现的概率,si+2表示三元候选词的最后一个字在语料库中出现的概率,Ni表示三元候选词的第一个字在语料库中出现的次数,Ni+2表示三元候选词的第三个字在语料库中出现的次数,Ni+1,i+2表示三元候选词的后两个字在语料库中出现的次数,Ni,i+1表示三元候选词的前两个字在语料库中出现的次数,Ni,i+1,i+2表示三元候选词在语料库中出现的次数,P(i,i+1,i+2)表示三元候选词语在语料中出现的概率;

(3)由候选词的概率和候选词的组合概率的比值得到四元候选词凝合度M4:

其中,M4表示候选词的凝合度,Si表示四元候选词的第一个字在语料库中出现的概率, Si+1,i+2,i+3表示四元候选词的后三个字同时在语料库中出现的概率,Si,i+1,i+2表示四元候选词的前三个字同时在语料库中出现的概率,Si,i+1,表示四元候选词的前两个字在语料库中出现的概率,Si+2,i+3表示四元候选词的后两个字在语料库中出现的概率,Ni表示四元候选词的第一个字在语料库中出现的次数,Ni+3表示四元候选词的第四个字在语料库中出现的次数, Ni,i+1表示四元候选词的前两个字在语料库中出现的次数,Ni+2,i+3表示四元候选词的后两个字在语料库中出现的次数,Ni+1,i+2,i+3,表示四元候选词的后三个字在语料库中出现的次数, Ni+1,i+2,i+3,表示四元候选词的前三个字在语料库中出现的次数,P(i,i+1,i+2,i+3)表示四元候选词在语料库中出现的概率。

所述三元候选词的过滤方法是:对于三元候选词,若后两个字符是存在于二元候选词库中,判断第一个字是否与左邻接字构成一个词,若前两个字符是存在于二元候选词库中,判断最后一个字是否与右邻接字构成一个词,确定三元候选词是否候选词;

若则 (Ai-1AiAi+1)属于三元词;

其中,(Ai-1AiAi+1)属于三元候选词,Ai-2是三元候选词的左邻字集,Ai+2是三元候选词的右邻接字,{A0....Ai....AN.},是语料库中字符集和,{(A0,A1)...(Ai,Ai+1)...(Ai-2,Ai-1)},是二元候选词集合。

所述四元候选词的过滤方法是:对可能成词的四元候选词,首先,进行分割,前两个字为一个分词片段,后两个字为另一个分词片段,并分别对分词片段与已分好的二元词库进行匹配,匹配中的则作为预选词,然后,在对四元词的中间两个字进行分割,并与已分好的二元词库进行匹配,匹配不中的则作为预选词,如果两个条件都满足,则作为分词的结果:

其中,{Ai-2,(Ai-1AiAi+1)Ai+2}.表示四元候选词,{(Ai-2,Ai-1),(Ai,Ai+1)}表示由四元候选词分出来的前后两各词,{(A0A1)...(AiAi+1)...(ANAN+1)}表示二元词库,{(Ai-1,Ai)}表示四元候选词中间词。

实施例2:如图1所示,从文本库中选出需要处理的文本,并对文本库进行预处理,包括去符号并使其形成语句,利用去符号后的语句构建语料库。

采用前后拼接词的分词方法,对步骤a1中的语料库进行分词,形成分词碎片。

采用二元切分前后词拼接,三元切分前后词拼接,四元切分前后词拼接方法,形成一个二元候选词库,三元候选词库和四元候选词库。

对统计好了的词频的候选词设定一个词频门限,并对其进行判决,满足此判决的保留,形成新的语料库。

统计候选词的凝合度及候选词的自由度;本实施例中,所述统计候选词的凝合度可以通过计算语料中候选词的独立概率和联合概率比值获得;所述候选词的自由度可以通过计算并选择候选词左右邻字集信息熵最小者为候选词的自由度。

将所述候选词的凝合度与候选词的自由度与设定的门限值进行比较。

提取大于门限值的候选词,作为候选词库。

在本实施例中,收集了四大名著中小说《西游记》。在统计出的词库中,若成词的文本片段分布充足,那么相对于不成词的片段其凝合程度会较高,且自由度更大。如果将字的左右邻字看作随机变量,那么一个字的左右邻字集的信息熵就反映了这个字左右邻字的随机性,熵值越大说明该字的左邻字集合或右邻字集合越丰富,我们取左右邻字集中较小的熵作为自由度。

在本实施例中,对于成词的片段其凝合程度会较高,说明词与词的之间关系程度就更高,在计算凝合度时,我们取凝合度较小的作为最终的凝合度。

我们把通过自由度和凝合度统计出的词库作为候选词库,在通过三元分词过滤方法和四元分词过滤方法,对三元候选词库和四元候选词库进行处理,最终得到的作为词库。

三元分词过滤方法和四元分词过滤方法解决了从主观上看似是词而实际上不是词的问题,从而提高了三元词库和四元词库的有效性。

以上结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。

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