发明名称 基于隐马尔可夫模型的英文简历关键字段抽取方法
摘要 本发明公开了基于隐马尔可夫模型的英文简历关键字段抽取方法,包括:收集英文简历,将收集的英文简历分为训练样本和测试样本;预处理训练样本,并对简历文本序列做隐含状态标记;获取字符字典;计算出隐马尔可夫模型参数初值;使用Baum‑Welch算法对隐马尔可夫模型参数重估,得到一个训练过的隐马尔可夫模型;预处理测试样本;根根据训练过的隐马尔可夫模型,使用维特比算法将测试样本简历标记出最大概率的隐含状态序列。本发明使用隐马尔可夫模型的维特比算法,不仅适应性好、抽取精度较高,而且不需大规模的词典集与规则集,具有很强的实用性。
申请公布号 CN105912570A 申请公布日期 2016.08.31
申请号 CN201610189293.1 申请日期 2016.03.29
申请人 北京工业大学 发明人 李玉鑑;彭蔚
分类号 G06F17/30(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 北京思海天达知识产权代理有限公司 11203 代理人 沈波
主权项 一种基于隐马尔可夫模型的英文简历关键字段抽取方法,其特征在于:该方法包括以下步骤,步骤一,收集英文简历,将收集的英文简历分为训练样本和测试样本;步骤二,预处理训练样本,并对简历文本序列做隐含状态标记,方法如下:首先,将无结构的训练样本进行编号处理,并统一转换成html格式;其次,统一编码格式为UTF‑8以解决中文符号乱码问题;再次,使用正则表达式将无结构的样本处理成结构化的文本,在此过程中删除训练样本中乱码、用单个空格替换回车符、多个空格,并在每个英文单词后标记非关键字隐含状态符号:N,在标点符号后标记标点隐含状态符号T;最后,手动修改简历中关键字后的隐含状态符号,修改为Y;因此,所有样本的都已经格式化,每个单词后都有隐含状态符号,并以单个空格隔开;步骤三,从训练样本中获取字符字典,方法如下:对于步骤二得到的训练样本,将单个样本按空格切分后存入到字符数组中,其中数组下标为奇数的存放的是简历的字符,下标为偶数的存放的是隐含状态符号;在此获取字符数组下标为奇数的简历字符,存入Hashmap中;递归处理所有训练样本,得到一个字符字典;步骤四,计算出隐马尔可夫模型参数初值;通过训练样本计算隐马尔可夫模型参数初值λ=(N,M,A,B,П),隐马尔可夫模型包括N个不同的隐含状态,在系统中对应的是简历字符的隐含状态,隐含状态共有3种(Y:关键字,N:非关键字,T:标点符号);M个不同的观察符号,在系统中对应的是简历中所有的字符集合,通过将训练样本经过步骤三的处理,得到所有简历中出现的字符,并形成一个字符字典;因为N和M已知,所以隐马尔可夫模型可记为一个三元组λ=(A,B,П),各参数在系统中的详细解释及计算方法如下:П={π<sub>i</sub>}是初始状态概率分布,在本方法中指简历中第一个字符的隐含状态分别是关键字、非关键字、标点符号的概率,通过遍历所有训练样本第一个字符的隐含状态,将隐含状态出现的次数存放到一个长度为3的一维数组中,最后分别将数组各位值除以数组总和可求得初始状态概率分布;A={a<sub>ij</sub>}是状态转移概率矩阵,在本方法中指简历中当前字符的隐含状态是i,下一个字符的隐含状态为j的概率;因为本方法只有三种隐含状态,所以A是一个三阶矩阵,可以用一个3×3的数组来存储,其中数组下标0、1、2分别表示字符的隐含状态是关键字、非关键字、标点符号,所以经过遍历所有训练样本,将隐含状态转移数量统计存入3×3的数组后,分别将数组的每个值除以当前值所处行的值的总和,得到状态转移概率矩阵;B={b<sub>j</sub>(o<sub>t</sub>)}是观察值概率分布,在本方法中指简历中每个字符的隐含状态分别是关键字、非关键字、标点符号的概率;遍历所有训练样本,分别统计出字符的隐含状态是关键字、非关键字、标点符号的总数,再将每个字符隐含状态是关键字、非关键字、标点符号的数量存入Hashmap统计出来,再将每个字符的隐含状态出现次数除以该隐含状态在训练样本出现的总数得到观察值概率分布;步骤五,使用Baum‑Welch算法对隐马尔可夫模型参数重估,得到一个训练过的隐马尔可夫模型。参数重估过程是已知观察序列并不断修正模型参数λ={π,A,B}使得模型λ产生观察序列O的概率p(O|λ)最大。在本方法中,将所有训练简历以及测试简历中的原始文字看作观察序列集合,Baum‑Welch算法对模型参数进行重估,得到一个新的<img file="FDA0000953325300000021.GIF" wi="294" he="63" />Baum‑Welch算法在理论上可以保证概率<img file="FDA0000953325300000022.GIF" wi="347" he="63" />步骤六,预处理测试样本;将测试样本统一转换成html格式、统一编码格式为UTF‑8以解决中文符号乱码问题;再次,使用正则表达式将无结构化的样本删除乱码、用单个空格替换回车符、多个空格;步骤七,根据训练过的隐马尔可夫模型,使用维特比算法将测试样本简历标记出最大概率的隐含状态序列;维特比变量δ<sub>t</sub>(j)在本方法中指简历隐含状态序列的最大概率值,递推公式:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>&delta;</mi><mi>t</mi></msub><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow><mo>=</mo><munder><mi>max</mi><mrow><mn>0</mn><mo>&le;</mo><mi>i</mi><mo>&le;</mo><mi>N</mi></mrow></munder><mo>&lsqb;</mo><msub><mi>&delta;</mi><mrow><mi>t</mi><mo>-</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><msub><mi>a</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>&rsqb;</mo><msub><mi>b</mi><mi>j</mi></msub><mrow><mo>(</mo><msub><mi>o</mi><mi>t</mi></msub><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000953325300000023.GIF" wi="566" he="94" /></maths>辅助变量ψ<sub>t</sub>(j)在本方法中用来记录简历中第t‑1个字符的最佳隐含状态<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>&psi;</mi><mi>t</mi></msub><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow><mo>=</mo><mi>arg</mi><munder><mi>max</mi><mrow><mn>0</mn><mo>&le;</mo><mi>i</mi><mo>&le;</mo><mi>N</mi></mrow></munder><mo>&lsqb;</mo><msub><mi>&delta;</mi><mrow><mi>t</mi><mo>-</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><msub><mi>a</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>&rsqb;</mo></mrow>]]></math><img file="FDA0000953325300000024.GIF" wi="574" he="95" /></maths>其中N表示单词的隐含状态总数,N=3;t表示当前处于简历中第t个字符,j表示第t个字符的隐含状态状态,i表示第t‑1个字符的隐含状态状态,a<sub>ij</sub>为条件转移概率,即简历中当前字符的隐含状态是i、下一个字符的隐含状态为j的概率,b<sub>j</sub>(o<sub>t</sub>)为观察值概率分布,即指简历中每个字符的隐含状态分别是关键字、非关键字、标点符号的概率,辅助变量记录了到达此点的最佳上一个时刻的状态点路径,用于最后回溯路径得到最终结果。
地址 100124 北京市朝阳区平乐园100号