一种基于成词率适应度函数的新词识别免疫遗传方法与流程

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

技术特征:

1.一种基于成词率适应度函数的新词识别免疫遗传方法,其特征在于:

本发明的核心思想是利用免疫遗传算法优化新词识别性能,具体的,根据网络新词的特点以及先验知识、提取网络新词中的共同语素,并从新闻语料中提取独词,将这两部分作为免疫遗传方法中的示范性抗体,设计一种基于成词率的适应度函数,使用免疫遗传方法得到候选词集合,最后利用规则和新闻语料对候选词进行处理得到新词;

本发明涉及的相关定义如下:

定义1:共同语素,指从网络新词中提取的能体现网络新词特点的字;记共同语素的集合为U,主要包括“奴”、“客”、“门”、“鸟”、“爷”、“姐”、“哥”、“女”、“晒”、“被”、“吧”、“逼”、“比”、“娘”、“撸”、“萌”、“哒”、“粗”、“爆”、“炮”、“渣”、“友”、“纸”、“怒”、“帝”、“控”、“哒”、“怒”、“纸”、“热”、“达人”、“男”、“亚”、“嫂”34个;

其中,“帝”字,在“技术帝”、“表情帝”以及“挽尊帝”为主的网络新词中经常被使用,具有粘着性强的特点;

定义2:独自成词率,指某个字作为独词出现的概率;

定义3:组合成词率,指某个字串作为一个词出现的概率;

定义4:独词,指独自成词率大于一定阈值的字;记独词集合为T;

定义5:群体,指经过二进制编码的一定数量个体组成的集合;其中的个体定义为:经过二进制编码得到的一串二进制数;

定义6:条件随机场,指一种基于最大熵模型和隐马尔科夫模型的判别式概率模型,其定义如下:

设G=(V,E)是一个无向图,V是无向图G中顶点的集合,E是无向图G中边的集合,Y={Yv|v∈V}是以G中集合V为索引的随机变量Yv构成的集合,v是V的元素,V是节点的集合;在给定X的条件下,如果每个随机变量Yv服从马尔科夫属性,即p(Yv|X,Yu,u≠v)=p(Yv|X,Yuu v),则(X,Y)就构成一个条件随机场,其中,v、u分别代表集合V中的两个元素,Yv、Yu分别代表集合Y中的两个元素,p(Yv|X,Yu,u≠v),p(Yv|X,Yu,u v)代表两个条件概率。

2.如权利要求1所述的一种基于成词率适应度函数的新词识别免疫遗传方法,其特征还在于:

一种基于成词率适应度函数的新词识别免疫遗传方法,包括以下步骤:

步骤一、初始化候选解集合为空,并对语料1利用条件随机场进行分词,得到分词碎片;

步骤二、提取示范性抗体,具体包括提取共同语素和提取独词;

步骤三、利用免疫遗传方法构建候选词集合;

步骤四、对候选词集合进行去重处理,并将在语料2中出现的字串去掉;

至此,从步骤一到步骤四,完成了一种基于成词率适应度函数的新词识别免疫遗传方法。

3.如权利要求2所述的一种基于成词率适应度函数的新词识别免疫遗传方法,其特征还在于:

步骤一中,所述的分词碎片是指利用条件随机场进行分词所得结果中连续单字组成的字串;

其中,所述的语料1主要包括微博语料、贴吧语料以及网络评论语料;

所述的条件随机场,其下载地址为:

http://download.csdn.net/detail/linson3344/8039087

条件随机场的使用方法为如下网址所述:

http://www.52nlp.cn/%E4%B8%AD%E6%96%87%E5%88%86%E8%AF%8D%E5%85%A5%E9%97%A8%E4%B9%8B%E5%AD%97%E6%A0%87%E6%B3%A8%E6%B3%954

4.如权利要求2所述的一种基于成词率适应度函数的新词识别免疫遗传方法,其特征还在于:

步骤二中,示范性抗体,指的是用于估计最佳个体某些基因位上值的先验知识,包括共同语素和独词;

其中,提取共同语素所得集合为定义1中集合U;

其中,提取独词,独词定义见定义4,具体为:

步骤2.1 初始化独词集合T为空,并对语料2中的每个字使用条件随机场进行词位信息标注;

其中,所述的语料2是新闻语料;

其中,语料2中第i个不同的字,记为wi,下标i的取值为1到语料2中不同的字的总数,记为NumW

其中,词位信息指词的位置信息,具体到字wi的词位信息,是S(单独成词)、B(词首)、M(词中)以及E(词尾),wi的各个词位信息出现的次数记为:fWi(S)、fWi(B)、fWi(M)和fWi(E);

步骤2.2 统计步骤2.1中字wi的词位信息的总出现次数;

其中,记步骤2.1中字wi的词位信息的总出现次数为fWi(All),其计算公式为公式(1):

fWi(All)=fWi(S)+fWi(B)+fWi(M)+fWi(E) (1);

步骤2.3 计算步骤2.2中字的独自成词率,具体通过公式(2)来计算;

p(Wi)=fWi(S)/fWi(All) (2);

其中,独自成词率记为p(Wi),其含义为字wi的独自成词率,其定义见定义2;

步骤2.4 设定阈值并判断步骤2.3计算出来的独自成词率是否超过阈值,并做相应操作:

其中,所述的阈值,记为δ;δ的范围为大于0.8,小于等于1;

2.41 若超出阈值δ,则将字wi加入集合T中,跳至步骤2.5;

2.42 若未超出阈值δ,跳至步骤2.5;

步骤2.5 判断i是否等于NumW,并进行相应操作:

2.51 若i不等于NumW,则i=i+1,跳至步骤2.2;

2.52 若i等于NumW,则跳至步骤三。

5.如权利要求2所述的一种基于成词率适应度函数的新词识别免疫遗传方法,其特征还在于:

步骤三中,候选词是指通过免疫遗传算法识别出的同时作为网络新词候选的字串,候选词的集合称为候选词集合;其构建过程具体为:

步骤3.1 设定最大迭代次数,初始化迭代次数为1,并对步骤一中得到的每个分词碎片进行二进制编码,获得包含r个个体的群体;

其中,群体及个体的定义见定义5,记步骤3.1中的分词碎片为第j个分词碎片Slicej

其中,二进制编码用二进制数0和1进行编码,具体为:

随机产生r个长度为Lj的二进制字串;

其中,第k个二进制字串记为wkl∈{0,1},l=1,2,...,Lj;Lj表示分词碎片Slicej的长度;二进制字串wk表示编码后的第k个个体;

即通过步骤3.1的二进制编码,我们得到了r个长度为Lj的二进制字串,每个二进制字串代表一个编码后的个体;

步骤3.2 对步骤3.1中得到的群体以交叉概率进行交叉,具体为:

其中,交叉概率,记为p1;

步骤3.2.1 将群体中的所有个体两两分组;

其中,所述的两两分组是指对r个个体,按顺序每两个进行分组;若r为偶数,r个个体被分为r/2组;若r为奇数,最后一个个体单独成组,即:r个个体被分为组,其中,表示对r/2向上取整;

步骤3.2.2 为步骤3.2.1输出的分组产生随机数;

其中,当前分组为第g个分组,其对应的随机数,记Randomg,下标g的范围是1到

步骤3.2.3 判断步骤3.2.2产生的随机数是否大于交叉概率,并做如下相应操作;

3.2.3A 若Randomg>p1,产生随机交叉位置,交换分组g两个个体交叉位置之后的基因,得到两个新个体;

其中,所述的随机交叉位置,具体为一个随机整数,其范围为1到当前所处理的分词碎片Slicej的长度Lj

3.2.3B 若Randomg≤p1,则将第g个分组内的两个个体不做变化,判断g与关系,并进行相应操作:

3.2.3BA 若则将g加1,跳至步骤3.2.2;

3.2.3BB 若则至此步骤3.2得到的变化后的g个分组内的所有个体,记为交叉后群体,跳至步骤3.3;

步骤3.3 对步骤3.2中得到的交叉后群体以变异概率进行变异,具体为:

其中,所述的变异概率,记为p2;

步骤3.3.1 针对交叉后群体中的第q个个体,随机产生一个0到1之间的随机数;

其中,q的范围是1到r,记第q个个体对应的随机数记为Randomq

步骤3.3.2 判断步骤3.3.1产生的随机数是否大于变异概率,并做如下相应操作:

3.3.2A 若Randomq>p2,产生范围为1到当前所处理的分词碎片Slicej长度Lj的随机数作为变异位置,并将当前第q个的此变异位置处的基因改变,形成第q个新个体,具体为:

3.3.2AA 当第q个体的变异位置的基因为0,则将其变为1;

3.3.2AB 当第q个体的变异位置的基因为1,则将其变为0;

3.3.2B 若Randomq≤p2,则将第q个体不做变化,并判断q与r的关系,并进行相应操作:

3.3.2BA 若q<r,则将q=q+1,跳至步骤3.3.1;

3.3.2BB 若q=r,则至此步骤3.3到了变化后的r个新个体,记为变异后群体,跳至步骤3.4;

步骤3.4 采用适应度函数计算步骤3.3得到的变异后群体中每个新个体的适应度值;

其中,独自成词率通过公式(2)计算,具体通过步骤2.1到步骤2.3计算;

组合成词率通过公式(4)计算:

<mrow> <mi>p</mi> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mi>f</mi> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>/</mo> <msubsup> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </msubsup> <mi>f</mi> <mrow> <mo>(</mo> <msup> <mi>W</mi> <mrow> <mi>s</mi> <mi>x</mi> <mi>i</mi> </mrow> </msup> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mo>(</mo> <mn>4</mn> <mo>)</mo> <mo>;</mo> </mrow>

组合成词率,记为p(sk),字串sk表示为sk=Wsx1Wsx2...Wsxn,f(Wsxi)表示语料1中字Wsxi出现的次数,其中i取值[1,n],即1≤i≤n;f(sk)表示字串sk在语料1中出现的次数;

步骤3.5 对步骤3.4计算的适应度值进行从小到大排序,并为从小至大的部分个体注射示范性抗体;

所述的部分个体其数量为N%*r,N的范围为1到100;

其中,注射示范性抗体,具体步骤为:

步骤3.5.1 初始化独词出现位置集合和共同语素出现位置集合为空;

其中,独词出现位置集合记为Position1,共同语素出现位置集合记为Position2;

步骤3.5.2 找到分词碎片Slicej中独词出现的位置加入集合Position1中;

找到分词碎片Slicej中共同语素出现的位置加入集合Position2中;

步骤3.5.3 把需要注射示范性抗体的个体中,Position1中所有元素对应位置的基因变为1,得到新个体;

其中,记需要注射示范性抗体的个体为Ci,其中i的范围为1到N%*r;

步骤3.5.4 把步骤3.5.3输出的新个体中,Position2中所有元素对应位置的基因变为0,得到注射完示范性抗体后的个体;

步骤3.5.5 判断i与N%*r的大小关系,并进行相应操作:

3.5.5A 若i<N%*r,则将i加1,转步骤3.5.3;

3.5.5B 若i=N%*r,则转步骤3.6;

至此,从步骤3.5.1到步骤3.5.5,得到了部分个体注射完示范性抗体后的新个体,这些新个体与未注射示范性抗体的部分个体,组成注射示范性抗体后的群体,记为注射后群体;

步骤3.6计算步骤3.5输出的注射后群体中每个个体的适应度值,将适应度值最大的个体加入候选解集合中;

其中,候选解集合,即注射后群体中适应度值最大的个体组成的集合,记为set;适应度值的计算通过公式(3);

步骤3.7使用轮盘赌方法对步骤3.5输出的注射后群体中个体进行选择,产生新一代群体;

其中,轮盘赌选择方法又称为适应度比例选择法,具体为:

步骤3.7.1计算注射后群体中的个体适应度值占总适应度值的百分比,具体为:

通过公式(5),利用步骤3.6计算出的注射后群体中每个个体适应度值的计算结果,计算注射后群体中的个体适应度值占总适应度值的百分比;

<mrow> <mi>p</mi> <mi>e</mi> <mi>r</mi> <mrow> <mo>(</mo> <msub> <mi>c</mi> <mi>t</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mi>p</mi> <mrow> <mo>(</mo> <msub> <mi>c</mi> <mi>t</mi> </msub> <mo>)</mo> </mrow> <mo>/</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>r</mi> </munderover> <mi>p</mi> <mrow> <mo>(</mo> <msub> <mi>c</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mo>(</mo> <mn>5</mn> <mo>)</mo> <mo>;</mo> </mrow>

其中,注射后群体中的个体,记为ct,per(ct)代表ct适应度值占总适应度值的百分比;p(ct)代表个体ct的适应度值;p(ci)表示个体ci的适应度值;

步骤3.7.2 产生0到1之间的随机数,根据随机数的值,确定对应个体,并将此对应个体作为新一代群体中的一个个体,具体为:

步骤3.7.2A 计算其中1≤j≤r;

其中,代表对从i从1开始,到j的per(ci)取和;

步骤3.7.2B 产生0到1之间的随机数,记为Randomt,其中t的范围为1到r;

步骤3.7.2C 判断Randomt是否在范围[Rangej,Rangej+1)内,即判断Rangej≤Randomt<Rangej+1

3.7.2CA 若是,则将Rangej对应个体cj留到下一代,此对应个体,为选择后群体中的一个个体;

3.7.2CB 若否,则将j加1,转步骤3.7.2C;

步骤3.7.2D 判断t与r的大小关系,并进行相应操作:

3.7.2DA 若t<r,则将t加1,转步骤3.7.2B;

3.7.2DB 若t=r,则得到了新一代群体,转步骤3.8;

步骤3.8 判断是否达到最大迭代次数,并进行相应操作:

3.8.1 若否,则将迭代次数加1,转步骤3.2;

3.8.2 若是,遍历候选解集合求出适应度值最大个体,即最优解,具体通过公式(6)进行优化:

<mrow> <msub> <mi>C</mi> <mrow> <mi>b</mi> <mi>e</mi> <mi>s</mi> <mi>t</mi> </mrow> </msub> <mo>=</mo> <mi>arg</mi> <munder> <mi>max</mi> <mrow> <mi>s</mi> <mi>e</mi> <mi>t</mi> </mrow> </munder> <mrow> <mo>(</mo> <mi>p</mi> <mo>(</mo> <mi>c</mi> <mo>)</mo> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mo>(</mo> <mn>6</mn> <mo>)</mo> <mo>;</mo> </mrow>

其中,p(c)表示候选解集合中个体c的适应度值,表示遍历候选解集合set中所有个体,求出适应度值最大个体Cbest

将步骤3.8.2得到的最优个体中连续0出现位置对应字串加入候选词集合中。

6.如权利要求2所述的一种基于成词率适应度函数的新词识别免疫遗传方法,其特征还在于:

步骤四的具体处理过程如步骤4.1及步骤4.2:

步骤4.1 对步骤三得到的候选词集合进行去重处理,将候选词集合中重复的字串去掉;

步骤4.2 对步骤4.1得到的候选词集合用语料2进行处理,即将候选词集合中出现在语料2中的字串去掉。

7.如权利要求5所述的一种基于成词率适应度函数的新词识别免疫遗传方法,其特征还在于:

其中,步骤3.4所述的适应度函数为如下公式(3):

<mrow> <mi>p</mi> <mrow> <mo>(</mo> <mi>h</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mi>n</mi> <mi>u</mi> <mi>m</mi> <mn>0</mn> </mrow> </munderover> <mi>&alpha;</mi> <mi>&beta;</mi> <mi>p</mi> <mrow> <mo>(</mo> <mi>X</mi> <msub> <mn>0</mn> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>+</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mi>n</mi> <mi>u</mi> <mi>m</mi> <mn>1</mn> </mrow> </munderover> <mi>a</mi> <mi>p</mi> <mrow> <mo>(</mo> <mi>X</mi> <msub> <mn>1</mn> <mi>j</mi> </msub> <mo>)</mo> </mrow> <mo>+</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mi>n</mi> <mi>u</mi> <mi>m</mi> <mi>s</mi> </mrow> </munderover> <mrow> <mo>(</mo> <mn>1</mn> <mo>+</mo> <mfrac> <mrow> <msub> <mi>s</mi> <mi>k</mi> </msub> <mo>.</mo> <mi>l</mi> <mi>e</mi> <mi>n</mi> <mi>g</mi> <mi>t</mi> <mi>h</mi> </mrow> <mi>&chi;</mi> </mfrac> <mo>)</mo> </mrow> <mi>p</mi> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>s</mi> <mi>k</mi> </msub> <mo>.</mo> <mi>l</mi> <mi>e</mi> <mi>n</mi> <mi>g</mi> <mi>t</mi> <mi>h</mi> <mo>&lt;</mo> <mn>5</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mi>n</mi> <mi>u</mi> <mi>m</mi> <mn>0</mn> </mrow> </munderover> <mi>&alpha;</mi> <mi>&beta;</mi> <mi>p</mi> <mrow> <mo>(</mo> <mi>X</mi> <msub> <mn>0</mn> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>+</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mi>n</mi> <mi>u</mi> <mi>m</mi> <mn>1</mn> </mrow> </munderover> <mi>a</mi> <mi>p</mi> <mrow> <mo>(</mo> <mi>X</mi> <msub> <mn>1</mn> <mi>j</mi> </msub> <mo>)</mo> </mrow> <mo>+</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mi>n</mi> <mi>u</mi> <mi>m</mi> <mi>s</mi> </mrow> </munderover> <mi>p</mi> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>s</mi> <mi>k</mi> </msub> <mo>.</mo> <mi>l</mi> <mi>e</mi> <mi>n</mi> <mi>g</mi> <mi>t</mi> <mi>h</mi> <mo>&GreaterEqual;</mo> <mn>5</mn> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mo>(</mo> <mn>3</mn> <mo>)</mo> <mo>;</mo> </mrow>

其中,p(h)代表第h个新个体的适应度值,h的范围是1到r;p(X0i)表示第h个新个体中第i个独0出现位置对应字的独自成词率,其中,独0出现位置表示0单独出现的位置;num0表示第h个新个体中,独0的个数;p(X1j)表示第h个新个体中第j个1出现位置对应字的独自成词率;num1表示第h个新个体中1的个数;其中,sk表示第h个新个体中第k个连续0出现位置对应的字串;nums表示第h个新个体中出现连续0二进制字串的个数;p(sk)表示字串sk的组合成词率,其定义见定义3;其中,二进制字串连续0的个数范围是2到步骤一中输出分词碎片的长度;∑表示求和;α为调节系数;β为惩罚因子,表示对基因中存在独0的个体进行惩罚;χ代表字串长度加权因子,sk.length代表字串sk的长度。

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