发明名称 一种基于语义特征模型的用户搜索串机构名识别方法
摘要 本发明属于自然语言处理领域,具体涉及一种基于语义特征模型的用户搜索串机构名识别方法。其包括模型构建阶段和识别阶段的处理过程。在模型构建阶段,利用已有的长文本标注语料库,构建符合用户搜索串分布的训练语料库,该语料库除保存了传统原有分词、词性标注的特征,更增加了查询串中的上下文特征、粘合度特征相关语义环境特征,根据复合语义特征建立条件随机场模型作为机构名识别模型。在识别阶段,通过计算用户搜索串的相应语义环境特征得到用户查询串的模式序列,抽取符合机构名的模式序列,即获得用户搜索串中的机构名。本方法使用户搜索串中机构名识别的准确率和召回率得到了综合的提升。
申请公布号 CN104679885A 申请公布日期 2015.06.03
申请号 CN201510116518.6 申请日期 2015.03.17
申请人 北京理工大学 发明人 牛振东;陆浩
分类号 G06F17/30(2006.01)I;G06F17/27(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 代理人
主权项 一种基于语义特征模型的用户搜索串机构名识别方法,其特征在于:其具体实现步骤包括:步骤一、以机器学习方式训练机构名识别语义模型;具体操作为:步骤1.1:确定识别用户搜索串中机构名的识别模型;所述用户搜索串中文机构名识别模型采用条件随机场模型CRF;步骤1.2:确定训练语料库;具体操作为:步骤1.2.1:选取待处理语料库;选取经过人工分词和词性标注处理的篇章型文本作为待处理语料库,用符号ArticleSet表示;步骤1.2.2:构建机构名大词典;对已有机构词库进行合并,排除重复机构词汇后,合并之后的词库称为机构名大词典,用符号OrgDict表示;步骤1.2.3:对待处理语料库进行处理,生成包含机构名的用户搜索串用户搜索串,作为训练步骤1.1中所述识别模型的正例集,用符号Pset表示;所用户搜索串是用户输入到搜索引擎中的文本内容;所述生成识别模型的正例集Pset的具体操作为:步骤1.2.3.1:确定4种包含机构名的正例查询串;用符号S表示待处理语料库ArticleSet中的一个句子,S=w<sub>1</sub>w<sub>2</sub>w<sub>3</sub>…w<sub>n</sub>,其中w<sub>k</sub>代表句子S中的一个词,1≤k≤n,n为句子S包含的词的数量;若句子S中包含机构名,则机构名用符号nt表示,nt=w<sub>i</sub>w<sub>i+1</sub>…w<sub>j</sub>,1≤i<j≤n;用符号P表示用户搜索串类型集合;P={P<sub>1</sub>,P<sub>2</sub>,P<sub>3</sub>,P<sub>4</sub>,P<sub>5</sub>},其中P<sub>1</sub>表示机构名上下文缺失情况,P<sub>1</sub>=nt;P<sub>2</sub>表示机构名下文缺失情况,P<sub>2</sub>=w<sub>i‑1</sub>+nt;P<sub>3</sub>表示机构名上文缺失情况,P<sub>3</sub>=nt+w<sub>j+1</sub>;P<sub>4</sub>表示机构名上下文完整情况,P<sub>4</sub>=w<sub>i‑1</sub>+nt+w<sub>j+1</sub>;P<sub>5</sub>表示不包含机构名的情况,P<sub>5</sub>=w<sub>i</sub>w<sub>i+1</sub>…w<sub>j</sub>;P<sub>1</sub>,P<sub>2</sub>,P<sub>3</sub>,P<sub>4</sub>即为包含机构名的4种正例查询串;步骤1.2.3.2:对步骤1.2.1中所述待处理语料库ArticleSet中的每一个句子,做以下处理:如果当前句子中包含机构名nt,则按照P<sub>1</sub>,P<sub>2</sub>,P<sub>3</sub>,P<sub>4</sub>所代表的4种用户搜索串类型的组成格式,分别提取包含机构名的4个正例查询串,组成备选的用户搜索串{P<sub>1</sub>,P<sub>2</sub>,P<sub>3</sub>,P<sub>4</sub>};步骤1.2.3.3:选取一个搜索引擎的后台用户搜索串库,用符号QuerySet表示,并确定后台用户搜索串库QuerySet中P<sub>1</sub>,P<sub>2</sub>,P<sub>3</sub>,P<sub>4</sub>4种用户搜索串类型的分布概率,分别用符号p<sub>1</sub>%、p<sub>2</sub>%、p<sub>3</sub>%和p<sub>4</sub>%表示,并根据P<sub>1</sub>,P<sub>2</sub>,P<sub>3</sub>,P<sub>4</sub>4种用户搜索串类型的分布概率p<sub>1</sub>%、p<sub>2</sub>%、p<sub>3</sub>%和p<sub>4</sub>%,对备选的用户搜索串{P<sub>1</sub>,P<sub>2</sub>,P<sub>3</sub>,P<sub>4</sub>}进行随机保留,从4类情况选取其中一种作为正例查询串;通过上述步骤的操作,得到正例集Pset;步骤1.2.4:对待处理语料库进行处理,生成不包含机构名的用户搜索串,作为训练步骤1.1中所述识别模型的反例集,用符号Nset表示;具体操作为:将待处理语料库中出现的正例查询串P<sub>1</sub>,使用符号#代替,将待处理语料库中出现的其它正例查询串P<sub>2</sub>,P<sub>3</sub>,P<sub>4</sub>,直接从待处理语料库中做删除处理;然后将得到的文本通过其包含的标点符号进行分割,得到反例查询串;如果得到的反例查询串的长度大于16个字符,则通过随机切分,将其分割为长度在2至16个字符范围内的反例查询串;所有的反例查询串构成反例集Nset;步骤1.2.5:将正例集Pset与反例集Nset合并得到训练集,用符号TrainSet表示;步骤1.2.6:对训练集TrainSet进行处理,得到训练语料集;具体操作为:步骤1.2.6.1:构建上文词表和下文次表,上文词表用符号UContextDict表示和下文次表,上文词表用符号DContextDict表示;步骤1.2.6.2:对步骤1.2.3中所述正例集Pset中的每个正例搜索串,采用正例搜索串标注规则对机构名内部及上下文词进行机器标注,得到正例搜索串中每个词的上下文特征标注;步骤1.2.6.3:对步骤1.2.4中所述反例集Nset中的每个用户搜索串,采用反例搜索串标注规则进行机器标注,得到反例搜索串中每个词的上下文特征标注;步骤1.2.7:计算训练集TrainSet中每一用户搜索串中的每个分词的语义粘合度特征值;步骤1.2.7.1:对于每个用户搜索串P属于训练集TrainSet,通过公式(1)计算P中每个分词w<sub>r</sub>的左粘合度;<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>ADH</mi><mo>_</mo><mi>L</mi><mrow><mo>(</mo><msub><mi>w</mi><mi>r</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mi>M</mi><mrow><mo>(</mo><msub><mi>w</mi><mi>r</mi></msub><mo>,</mo><mi>UContextDict</mi><mo>)</mo></mrow></mrow><mrow><munderover><mi>&Sigma;</mi><mrow><msup><mi>d</mi><mo>&prime;</mo></msup><mo>=</mo><mn>1</mn></mrow><msup><mi>n</mi><mo>&prime;</mo></msup></munderover><msup><mi>M</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><msub><mi>w</mi><mi>r</mi></msub><mo>,</mo><msup><mi>d</mi><mo>&prime;</mo></msup><mo>)</mo></mrow></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000683288990000031.GIF" wi="1920" he="282" /></maths>其中,ADH_L(w<sub>r</sub>)表示分词w<sub>r</sub>的左粘合度,即分词w<sub>r</sub>与上文词表的粘合度;n′表示步骤1.2.3.3中确定的搜索引擎的后台用户搜索串库QuerySet中数据的数量;M(w<sub>r</sub>,UContextDict)的取值为:在上文词表UContextDict中查找w<sub>r</sub>,如果匹配成功,则将上文词表UContextDict中w<sub>r</sub>对应的次数作为M(w<sub>r</sub>,UContextDict)的取值;否则,其值为0;M′(w<sub>r</sub>,d′)取值为:当w<sub>r</sub>在搜索引擎的后台用户搜索串库QuerySet中的第d′条数据中匹配成功,则M′(w<sub>r</sub>,d′)的值为1;否则,取值为0;步骤1.2.7.2:对于每个用户搜索串P属于训练集TrainSet,通过公式(2)计算P中每个分词w<sub>r</sub>的右粘合度;<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>ADH</mi><mo>_</mo><mi>R</mi><mrow><mo>(</mo><msub><mi>w</mi><mi>r</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mi>M</mi><mrow><mo>(</mo><msub><mi>w</mi><mi>r</mi></msub><mo>,</mo><mi>DContextDict</mi><mo>)</mo></mrow></mrow><mrow><munderover><mi>&Sigma;</mi><mrow><msup><mi>d</mi><mo>&prime;</mo></msup><mo>=</mo><mn>1</mn></mrow><msup><mi>n</mi><mo>&prime;</mo></msup></munderover><msup><mi>M</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><msub><mi>w</mi><mi>r</mi></msub><mo>,</mo><msup><mi>d</mi><mo>&prime;</mo></msup><mo>)</mo></mrow></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000683288990000032.GIF" wi="1871" he="286" /></maths>其中,ADH_R(w<sub>r</sub>)表示分词w<sub>r</sub>的右粘合度,即分词w<sub>r</sub>与下文词表的粘合度;m表示机构名大词典OrgDict中词的数量;n′表示步骤1.2.3.3中确定的搜索引擎的后台用户搜索串库QuerySet中数据的数量;M(w<sub>r</sub>,DContextDict)的取值为:在下文词表DContextDict中查找w<sub>r</sub>,如果匹配成功,则将下文词表DContextDict中w<sub>r</sub>对应的次数作为M(w<sub>r</sub>,DContextDict)的取值;否则,其值为0;M′(w<sub>r</sub>,d′)取值为:当w<sub>r</sub>在搜索引擎的后台用户搜索串库QuerySet中的第d′条数据中匹配成功,则M′(w<sub>r</sub>,d′)的值为1;否则,取值为0;步骤1.2.7.3:对步骤1.2.7.1得到的左粘合度和步骤1.2.7.2得到的右粘合度进行区间映射;当分词w<sub>r</sub>的左粘合度ADH_L(w<sub>r</sub>)的值位于区间[0.1,1]之间时,将其映射为左粘合度第一区间,用符号L<sub>1</sub>表示;当分词w<sub>r</sub>的右粘合度ADH_R(w<sub>r</sub>)的值位于区间[0.1,1]之间时,将其映射为右粘合度第一区间,用符号R<sub>1</sub>表示;当分词w<sub>r</sub>的左粘合度ADH_L(w<sub>r</sub>)的值位于区间[0.01,0.1)之间时,将其映射为左粘合度第二区间,用符号L<sub>2</sub>表示;当分词w<sub>r</sub>的右粘合度ADH_R(w<sub>r</sub>)的值位于区间[0.01,0.1)之间时,将其映射为右粘合度第二区间,用符号R<sub>2</sub>表示;当分词w<sub>r</sub>的左粘合度ADH_L(w<sub>r</sub>)的值位于区间[0.001,0.01)之间时,将其映射为左粘合度第三区间,用符号L<sub>3</sub>表示;当分词w<sub>r</sub>的右粘合度ADH_R(w<sub>r</sub>)的值位于区间[0.001,0.01)之间时,将其映射为右粘合度第三区间,用符号R<sub>3</sub>表示;当分词w<sub>r</sub>的左粘合度ADH_L(w<sub>r</sub>)的值位于区间[0.0001,0.001)之间时,将其映射为左粘合度第四区间,用符号L<sub>4</sub>表示;当分词w<sub>r</sub>的右粘合度ADH_R(w<sub>r</sub>)的值位于区间[0.0001,0.001)之间时,将其映射为右粘合度第四区间,用符号R<sub>4</sub>表示;当分词w<sub>r</sub>的左粘合度ADH_L(w<sub>r</sub>)的值位于区间[0.00001,0.0001)之间时,将其映射为左粘合度第五区间,用符号L<sub>5</sub>表示;当分词w<sub>r</sub>的右粘合度ADH_R(w<sub>r</sub>)的值位于区间[0.00001,0.0001)之间时,将其映射为右粘合度第五区间,用符号R<sub>5</sub>表示;当分词w<sub>r</sub>的左粘合度ADH_L(w<sub>r</sub>)的值位于区间(‑∞,0.00001)之间时,将其映射为左粘合度第六区间,用符号L<sub>6</sub>表示;当分词w<sub>r</sub>的右粘合度ADH_R(w<sub>r</sub>)的值位于区间(‑∞,0.00001)之间时,将其映射为右粘合度第六区间,用符号R<sub>6</sub>表示;步骤1.2.7.4:选取分词w<sub>r</sub>的左粘合度和右粘合度两者中的大值作为分词w<sub>r</sub>的语义粘合度特征值,用符号ADH(w<sub>r</sub>)表示,并保存其映射区间;步骤1.2.8:对应训练集TrainSet中的数据,建立一个特征表,称为训练语料库;所述特征表包括:用户搜索串标识、用户搜索串类型、分词w<sub>r</sub>标识、分词w<sub>r</sub>内容、分词w<sub>r</sub>词性、分词w<sub>r</sub>语义粘合度特征值ADH(w<sub>r</sub>)的映射区间、上下文特征标注;所述用户搜索串类型为P<sub>1</sub>,P<sub>2</sub>,P<sub>3</sub>,P<sub>4</sub>,P<sub>5</sub>;所述分词w<sub>r</sub>词性由步骤1.2.1中所述待处理语料库中的词性标注信息得到;所述分词w<sub>r</sub>语义粘合度特征值ADH(w<sub>r</sub>)的映射区间从步骤1.2.7得到;所述上下文特征标注从步骤1.2.6得到;步骤1.3:配置条件随机场模型CRF的参数;步骤1.4:使用步骤1.2得到的训练语料库作为输入,训练步骤1.3配置好的条件随机场模型CRF,得到识别模型;步骤二、对待识别用户搜索串进行特征提取;步骤2.1:对待识别用户搜索串进行分词和词性标注,得到词性标注特征;具体操作为:采用中文分词及词性标注工具,对待识别用户搜索串进行处理,得到经过分词和词性标注的待识别用户搜索串;所述中文分词及词性标注工具包括FudanNLP、哈工大LTP、NLPIR;步骤2.2:计算待识别用户搜索串中每个分词的语义粘合度特征值及其映射区间;步骤2.3:生成待识别用户搜索串对应的特征表;所述待识别用户搜索串对应的特征表包括:分词标识、分词内容、分词词性、分词语义粘合度特征值ADH(w<sub>r</sub>)的映射区间和上下文特征标注;其中,上下文特征标注为未知信息,其余均为已知信息;步骤三、获得待识别用户搜索串中的机构名;步骤3.1:将步骤二得到的待识别用户搜索串对应的特征表输入至步骤一得到的识别模型,识别模型输出待识别用户搜索串对应的特征表的上下文特征标注;步骤3.2:按顺序提取待识别用户搜索串对应的特征表的上下文特征标注,得到上下文特征标注串,在上下文特征标注串中匹配[B(I)(P_NS/P_NT/P_J/P)E]模式,如匹配成功,则将匹配成功的串对应的词串进行输出,得到的结果即为识别的机构名称;其中,[B(I)(P_NS/P_NT/P_J/P)E]模式中的字符含义为步骤1.2.6.2和步骤1.2.6.3中描述的字符含义,小括号表示可选项,斜杠表示或关系。
地址 100081 北京市海淀区中关村南大街5号北京理工大学