发明名称 一种基于信息熵和术语可信度的金融领域术语识别方法
摘要 本发明提出了一种基于信息熵和术语可信度的金融领域术语识别方法。本发明仅选择简单的特征,用CRF模型识别金融术语;在识别结果中根据基于边缘概率的信息熵公式,通过设定阈值筛选出属于特定错误类型的候选术语,对候选术语的处理更有针对性;过滤候选术语时将词转换为蕴含丰富语义信息的词向量,通过计算相似度与传统的互信息方法互为补充,可过滤得到大量的金融领域术语。利用本发明能有效避免现有机器学模型过于繁琐的特征选择过程,后处理部分灵活而不局限于特定语料,不但有利于提高召回率,还能够提高术语结构的完整性,可作为通用的术语识别方法。
申请公布号 CN106095753A 申请公布日期 2016.11.09
申请号 CN201610404892.0 申请日期 2016.06.07
申请人 大连理工大学 发明人 黄德根;梁晨
分类号 G06F17/27(2006.01)I 主分类号 G06F17/27(2006.01)I
代理机构 大连理工大学专利中心 21200 代理人 温福雪;李宝元
主权项 一种基于信息熵和术语可信度的金融领域术语识别方法,其特征在于,步骤如下:(1)使用CRF模型初步识别出金融语料中的金融领域术语,选取的特征如下:1)词和词性;2)点式互信息:表示两个词的关联程度,pmi<sub>f</sub>和pmi<sub>r</sub>分别为当前词与前一词、后一词的点式互信息,其中,w<sub>i</sub>代表当前词,w<sub>i‑1</sub>代表w<sub>i</sub>的前一词,w<sub>i+1</sub>代表w<sub>i</sub>的后一词;为降低数据稀疏,对得到的浮点数取整;<maths num="0001"><math><![CDATA[<mrow><msub><mi>pmi</mi><mi>f</mi></msub><mrow><mo>(</mo><msub><mi>w</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>,</mo><msub><mi>w</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>=</mo><msub><mi>log</mi><mn>2</mn></msub><mfrac><mrow><mi>p</mi><mrow><mo>(</mo><msub><mi>w</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>,</mo><msub><mi>w</mi><mi>i</mi></msub><mo>)</mo></mrow></mrow><mrow><mi>p</mi><mrow><mo>(</mo><msub><mi>w</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow><mo>&times;</mo><mi>p</mi><mrow><mo>(</mo><msub><mi>w</mi><mi>i</mi></msub><mo>)</mo></mrow></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001011840970000011.GIF" wi="1374" he="158" /></maths><maths num="0002"><math><![CDATA[<mrow><msub><mi>pmi</mi><mi>r</mi></msub><mrow><mo>(</mo><msub><mi>w</mi><mi>i</mi></msub><mo>,</mo><msub><mi>w</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow><mo>=</mo><msub><mi>log</mi><mn>2</mn></msub><mfrac><mrow><mi>p</mi><mrow><mo>(</mo><msub><mi>w</mi><mi>i</mi></msub><mo>,</mo><msub><mi>w</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow></mrow><mrow><mi>p</mi><mrow><mo>(</mo><msub><mi>w</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>&times;</mo><mi>p</mi><mrow><mo>(</mo><msub><mi>w</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001011840970000012.GIF" wi="1494" he="166" /></maths>(2)采用基于信息熵的术语可信度模型处理CRF的识别结果1)根据识别结果中标签的边缘概率求信息熵,筛选出候选术语采用BIO标记方法对步骤(1)识别结果进行标记,即B为术语的首词,I为术语的中间和尾部,O为非术语;将CRF识别结果分为6类术语标注错误:尾部缺失即术语尾部未识别、尾部多余即术语尾部冗余、头部缺失即术语头部未识别、头部多余即术语头部未冗余、整体缺失即术语整体未识别和整体多余即术语整体冗余;在CRF识别结果中,每个词均有为B、I、O三种标记以其对应的边缘概率,CRF将概率最大的标记作为最终的标注结果;如果某个词的边缘概率不具有明显的区分性,即该词的标记具有很大的不确定性,那么该词极有可能被标注错误;通过token标记信息熵定量观察标记的不确定性;某一个词W有3种可能的标记T<sub>1</sub>=B,T<sub>2</sub>=I,T<sub>3</sub>=O,对应的边缘概率为P<sub>B</sub>,P<sub>I</sub>,P<sub>O</sub>,且P<sub>B</sub>+P<sub>I</sub>+P<sub>O</sub>=1,W的token标记信息熵为H(W),如式(3)所示:<maths num="0003"><math><![CDATA[<mrow><mi>H</mi><mrow><mo>(</mo><mi>W</mi><mo>)</mo></mrow><mo>=</mo><munder><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mi>B</mi><mo>,</mo><mi>I</mi><mo>,</mo><mi>O</mi></mrow></munder><mrow><mo>(</mo><mo>-</mo><msub><mi>p</mi><mi>i</mi></msub><msub><mi>log</mi><mn>2</mn></msub><msub><mi>p</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001011840970000013.GIF" wi="1358" he="117" /></maths>由信息熵原理可知,H(W)越大,则这个标记的不确定性越大;当H(W)≥α时,即该词的标记是不确定的,作为候选术语进一步判断;其中α是H(W)的阈值,针对不确定的强度,分别有α<sub>1</sub>、α<sub>2</sub>、α<sub>3</sub>三个阈值,α<sub>1</sub>=0.92,α<sub>2</sub>=0.6,α<sub>3</sub>=0.5;token标记信息熵筛选算法,筛选“整体缺失”型的候选术语:输入:CRF识别结果;输出:候选术语集合;wordList:CRF识别结果的词表,包含特征、标记和边缘概率信息;secMaxP:第二大边缘概率;termStart:候选术语的开始位置;termEnd:候选术语的结束位置;L1:将CRF识别结果存入wordList中;L2:如果当前词wordList[i]的标记不为‘O’,则当前词不属于“整体缺失”型,退出返回;L3:如果当前词wordList[i]的标记为‘O’,满足条件⑴:H(wordList[i])≥α<sub>1</sub>且wordlist[i]的secMaxP是‘B’,记录此位置为termStart;L4:如果下一个词wordList[++i]的标记为‘O’,满足条件⑵:H(wordList[i])≥α<sub>2</sub>且wordlist[i]的secMaxP是‘I’,重复步骤L4;若该词标记不为‘O’,就跳到L5;若不满足条件⑵,就记录此位置为termEnd,跳到L6;L5:当前词的标记不为‘O’,若满足条件⑶:H(wordList[i])<min{α<sub>1</sub>,α<sub>2</sub>,α<sub>3</sub>},记录此位置为termEnd,跳到L6;L6:提取wordlist中下标[term_start,term_end]内的候选术语,放入候选术语集合中;2)根据基于互信息和词向量相似度的术语可信度对候选术语进行过滤;根据候选术语词长的不同,过滤由token标记信息熵得到的候选术语集合,分为以下两种情况:ⅰ.当词长≥2时,设有候选术语片段A<sub>1</sub>A<sub>2</sub>,统计训练语料中以A<sub>1</sub>开始的术语片段A<sub>1</sub>C<sub>i</sub>,i=1,2,3…,以A<sub>2</sub>结尾的术语片段B<sub>j</sub>A<sub>2</sub>,j=1,2,3…,若A<sub>1</sub>A<sub>2</sub>满足以下任一条件,则称A<sub>1</sub>A<sub>2</sub>具有术语可信度;①反向术语度:<img file="FDA0001011840970000031.GIF" wi="764" he="118" />②正向术语度:<img file="FDA0001011840970000032.GIF" wi="782" he="119" />③术语相似度:<img file="FDA0001011840970000033.GIF" wi="1028" he="117" />其中,pmi是求两个词的点式互信息,具体公式参考式(1)或(2);avg是求数据集合的平均值;max是求数据集合的最大值;cos是求两个词所对应的词向量的余弦距离,反应了两个词的相似程度;X,Y是单位化向量;余弦距离公式见式(4):<maths num="0004"><math><![CDATA[<mrow><mi>c</mi><mi>o</mi><mi>s</mi><mrow><mo>(</mo><mi>X</mi><mo>,</mo><mi>Y</mi><mo>)</mo></mrow><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>X</mi><mi>i</mi></msub><msub><mi>Y</mi><mi>i</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001011840970000034.GIF" wi="1238" he="151" /></maths>上述条件①和②分别从反向和正向计算术语词对之间的关联程度,判断是否大于或等于已知术语搭配的互信息平均值;而条件③则将词转换为词向量,考察了候选词与已知搭配词的相似度是否大于或等于已知搭配词之间的整体相似度;ⅱ.当词长=1时,设有候选术语A,统计训练语料中词长为1的术语D<sub>k</sub>,k=1,2,3…,如果满足式(5),则认为候选术语A具有术语可信度,其中β为阈值;<maths num="0005"><math><![CDATA[<mrow><munder><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow><mrow><mi>k</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>2</mn><mo>,</mo><mo>...</mo></mrow></munder><mo>{</mo><mi>c</mi><mi>o</mi><mi>s</mi><mrow><mo>(</mo><mi>A</mi><mo>,</mo><msub><mi>D</mi><mi>k</mi></msub><mo>)</mo></mrow><mo>}</mo><mo>&GreaterEqual;</mo><mi>&beta;</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001011840970000035.GIF" wi="1226" he="102" /></maths>基于术语可信度的候选术语过滤方法:输入:候选术语集合;输出:修正后的序列标注文件;L1:判断候选术语所属错误类型,若它属于“头部缺失”的类型跳到L2,“尾部缺失”的类型跳到L3,“整体缺失”的类型跳到L4,“头部多余”的类型跳到L5,“尾部多余”的类型跳到L6,“整体多余”的类型跳到L7;L2:如果候选术语A<sub>1</sub>A<sub>2</sub>…A<sub>n</sub>的缺失部分为A<sub>1</sub>A<sub>2</sub>…A<sub>i</sub>,1≤i≤n‑1,若A<sub>1</sub>A<sub>2</sub>…A<sub>i+1</sub>中每两个相邻词对A<sub>j</sub>A<sub>j+1</sub>,1≤j≤i,都具有术语可信度,则跳到L8;L3:如果候选术语A<sub>1</sub>A<sub>2</sub>…A<sub>n</sub>的缺失部分为A<sub>i</sub>A<sub>i+1</sub>…A<sub>n</sub>,1<i≤n,若A<sub>i‑1</sub>A<sub>i</sub>…A<sub>n</sub>中每两个相邻词对A<sub>j</sub>A<sub>j+1</sub>,i‑1≤j≤n‑1,都具有术语可信度,则跳到L8;L4:如果候选术语词长为1,仅当该词具有术语可信度时跳到L8;否则为A<sub>1</sub>A<sub>2</sub>…A<sub>n</sub>,若每两个相邻词对A<sub>j</sub>A<sub>j+1</sub>,1≤j≤n‑1,都具有术语可信度,则跳到L8;L5:如果候选术语A<sub>1</sub>A<sub>2</sub>…A<sub>n</sub>的多余部分为A<sub>1</sub>A<sub>2</sub>…A<sub>i</sub>,1≤i≤n‑1,若A<sub>i</sub>A<sub>i+1</sub>不具有术语可信度,则将多余子串A<sub>1</sub>A<sub>2</sub>…A<sub>i</sub>输入到L7;L6:如果候选术语为A<sub>1</sub>A<sub>2</sub>…A<sub>n</sub>的多余部分为A<sub>i</sub>A<sub>i+1</sub>…A<sub>n</sub>,1<i≤n,若A<sub>i‑1</sub>A<sub>i</sub>不具有术语可信度,则将多余子串A<sub>i</sub>A<sub>i+1</sub>…A<sub>n</sub>输入到L7;L7:如果候选术语词长为1,仅当该词不具有术语可信度时跳到L8;否则候选术语为A<sub>1</sub>A<sub>2</sub>…A<sub>n</sub>,若每两个相邻词对A<sub>j</sub>A<sub>j+1</sub>,1≤j≤n‑1,都不具有术语可信度,再分别判断每个词是否具有术语可信度,跳到L8;L8:修正候选术语,填补缺失的词或删去多余的词,写入序列标注文件。
地址 116024 辽宁省大连市甘井子区凌工路2号