Personal Name Classification in web Queries

作为命名实体识别的一个很特殊的类别,人名识别已经被提过很多次了。但是通常我们说得人名识别都是长文本中的人名识别,也就是人名是处于一个上下文中的。这样的话一些传统的机器学习方法可能就很管用了。但是在web查询中,查询通常都是很短的,也就是很难直接得到上下文,该怎么识别查询是人名呢?今天看了一个论文《Personal Name Classification in web Queries》,据说也是第一篇研究web查询中的人名识别问题的。翻译过来是《web查询中的人名分类》,作者是微软的Dou Shen等。

 

摘要

人名识别在现在的搜索引擎中越来越受到重视,但是web查询通常非常的短,传统的有监督的机器学习算法不能够直接被利用。一个替代的方法就是用查字典的方法,这个我想都知道,当然也知道字典大小也是一个矛盾。为了解决这个问题,本文提出来一个方法,它基于建立一个带有概率的人名串字典以及人名语法。为了建立一个人名概率字典,本论文介绍4种方法,为每个串得到一个它属于人名类别的概率。

因为web查询中的信息的稀疏,很难得到足够的特征来应用于传统的分类算法。为了解决这个问题,我们介绍一个基于构建人名串概率字典的方法来折中P和R。给定一个候选的人名列表,我们用几种方法来为这些词打分。有了这个概率字典,我们再利用语法来计算一个查询属于人名的概率。

 

相关研究

介绍了很多的研究成果,但是所有的这些方法都依赖于丰富的上下文信息。还有一个就是我以前所说的意图分类里面的方法,通过点击信息或者利用搜索引擎的返回结果来丰富特征,但是一个是对于新来的查询无能为力,一个对于在线算法来说非常的耗时。本方法包括在线和离线两个步骤。离线步骤中,我们使用集中算法来建立概率字典,在线步骤中,我们利用了“语法”来进行分类。

 

解决方案

总的来说,两个步骤:

  • 离线:对于一个候选的词列表,计算每个词属于姓或者名的概率
  • 在线:根据姓名的语法来计算语法概率

 

需要解释几个概念:

  1. 候选词典:抽取出来的需要计算概率的词典列表
  2. 词上下文:一个包含了这个词的文本片段,对于查询,可能需要用搜索引擎来进行扩展
  3. 姓名词上下文:这个上下文中的这个词表现的像是姓名
  4. 姓名上下文:这个上下文中的这个词一定是姓名

 

相对频率

得到了一个人名列表,就可能计算出每个词属于姓或者名的概率,用最大似然估计就行了。

上下文概率

一个假设就是如果一个词的上下文更有可能是人名上下文,那么这个词就更有可能是人名。所有我们为了计算一个词的概率,可以计算这个词的上下文的概率。也就是对于一个词,我们首先通过搜索引擎得到他的上下文,然后计算这些上下文是由人名上下文生成的概率。这里用到的是一元文法。

片段共现

我不知道为什么会是这个名字,但是这里的道理很简单的。给定一个词,我们能够容易的得到这个词的上下文。为了计算这个词的概率,我们需要统计这个词的上下文中,有多少是人名词上下文。也就是也是用最大似然估计的方法来得到这个词的概率。人名词上下文的判断使用了很多的规则,比如判断是姓:

后面跟着名

后面跟着姓加名

后面跟着特殊的词,比如“说“

这样再第一个规则中,我们需要收集一些”黄金词汇“,以此为依据来判断一个词是否是姓或者名。

二元共现

跟片段共现是差不多的道理,只不过用的是二元的统计模型

 

语法分类器

正如编译原理里面的,为人们写了一个语法树来判断一个短语是否是人名。然后再根据一个连乘的公式来计算这个概率的问题。

 

最后还有非常大的篇幅是写得试验,这个才是重点,但是太多了,可以自己去看看。

 

这个论文主要讲得是查询中的人名识别,通不同的人名识别问题有很大的区别。本文的思想就是离线的计算一个概率字典,在线的计算概率。关于字典的问题,是首先找到一个字典列表,然后为这些字典打分,也就是计算这些字典有多大可能是一个人名。其中用到了扩展的方法,将短文本扩展到上下文来进行计算,这个想法很好。最后用了一个语法分析器来进行最终的概率计算。

 

这里面多少有些思想是很有借鉴价值的,比如用概率字典的方法来对一个实体进行“语义”表示,对简单实体用语法表示等等。

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(classification,web,搜索引擎,算法,扩展,微软,查询意图分类)