搜索引擎理解网站主题的基本算法实现

SEO点点 托比网 2014-12-23 12:17:11

由于语言的特定含义在不同的上下文环境中,存在不同的解释,比如“化妆和服装”可以分成“化妆”、“和”、“服装”或者“化妆”、“和服”、“装”。由于没有人的知识去理解,容易产生歧义,计算机很难知道到底哪个方案正确,因此,有必要引导计算机进行正确的词义识别。随着语言处理技术的发展,已有的词义消歧方法主要基于语义词典,通过语义词典数据库查找每个单词的释义,同义词集合,扩展释义和扩展同义词集合,但由于词典数据库毕竟具有局限性,词汇覆盖面以及新词处理方面存在缺陷,其更新的速度并不能较好地适应实际语言应用的快速变化。因此,希望可以提出一种针对性强、灵活度高、应用范围广的语义消歧的方法和系统,以应对快速变化的语言环境,进行正确的语义识别,消除语言中容易产生的歧义。

搜索引擎提供了一种基于相关词主题的语义消歧方法和系统,可以有效应对快速变化的语言环境,进行正确的语义识别,达到语义消歧。一方面搜索引擎提供了一种基于相关词主题的语义消歧方法,该方法包括以下步骤:基于相关词主题挖掘相关词;对每个词进行编号并建立对应的频率特征向量;计算词与词之间的互信息值,并将互信息值作为特征向量;计算词与词之间的相似度及单个词的相关词;语义消歧。

另一方面,搜索引擎提供的基于相关词主题的语义消歧系统,包括相关词挖掘模块、语义相关词计算模块以及语义消歧模块,其中:所述的相关词挖掘模块,基于相关词主题对相关词进行挖掘;语义相关词计算模块,用于对每个词进行编号并建立对应的频率特征向量、计算词与词之间的互信息值并将互信息值作为特征向量、计算词与词之间的相似度及单个词的相关词;所述的语义消歧模块,用于语义消歧。

以下附图所作的对非限制性实施例所作的详细描述:图1是根据一个优选实施例的基于相关词主题的语义消歧方法流程图;图2是根据一个优选实施例的挖掘相关词中分词的示意图;图3是根据一个优选实施例的基于相关词主题的语义消歧系统的示意性框图。

搜索引擎算法

搜索引擎算法

为使算法的目的、技术方案和优点更加清楚,下面将结合附图对算法的实施例作详细描述。提供了一种优选实施例的基于相关词主题的语义消歧方法。基于相关词主题的语义消歧方法流程图,包括以下步骤:步骤ioi,基于相关词主题挖掘相关词。相关词主题表现为一系列相关的词,能够代表某个特定主题。例如,对于句子“富士苹果很甜”以及“苹果很好用”,分别所对应的主题可以为“水果”和“手机”。通常获取相关词主题后,可以构建相关词主题模型,即针对文本隐含主题所构建的模型。所谓隐含,是指相关词主题模型并不直接通过一系列诸如“水果”等显性含义的词去描述,而是基于词的相关性进行隐性描述。

通常,不同主题对应不同的词,例如对于主题“百度”,那么“搜索引擎”、“知道”等词就会以很高的频率出现,从数学角度而言,主题体现为词汇表上词语的条件概率分布,与主题越密切的词,条件概率越高。又如,对于主题“庐山恋2",则与其相关的词大多表现为“初恋红豆沙”、“四个丘比特”等。这些词语和主题之间具有很强的语义相关性。当然,对于同一语义的词也可以对应不同主题,例如,对于词“搜索引擎”,其可以对应“百度”主题,也可以对应“谷歌”主题。

进一步地,实施例中的主题(topic)根据规模可分为以下两大类:1)词级别的主题,即基于词本身含义的相关词主题。该类又可分为无歧义相关词主题和有歧义相关词主题,前者基本由一个实体词构建,后者主要通过两个词共同创建,通常是一个有歧义的词与另外一个无歧义的词组合,例如:通过“苹果梨”或者“苹果水果”创建一个词级别的主题,其中的“苹果”为有歧义的词,而“梨”或者“水果”是无歧义的词;2)句子级别或篇章级别的主题,即基于词所在的句子或篇章含义的相关词主题。通过对句子中的一个实体词或经过合并的两个词进行处理,构建句子或篇章级别的相关词主题。其中,所述对经过合并的两个词进行处理,具体指两个词合并后根据词之间的距离予以聚簇成词簇,并计算词与词簇之间的距离,对于距离小于一定值的词,将其作为该句子或篇章的相关词主题。

相关词主题挖掘主要利用词与词之间的相似度度量,通过挖掘和计算相关词,考虑词汇在大规模语料中语境的相似性,比如“医生”和“大夫”倾向于出现在相似的语境中,而特定语境中还存在“医院”、“手术”等相关词,则可以通过语境的相似性判断词的语义相似性,得到“医生”和“大夫”两个词具有高度的相似性。当然,对于单个词,也可以根据上下文语境推测其相关词,例如对于单个词“庐山恋2",通常可以根据其上下文推测其相关词包括“初恋红豆沙”、“四个丘比特”等。通过结合大规模语料库挖掘出相关词。所述挖掘卞要包括切词和词语统计、过滤这些过程,下文将对这些主要过程进行详述。首先,对目标文本按照事先已有的分割符号进行划分,分割符号比如为标点符号。对于分割好的每个句子进行分词和词性标注。如图2所示,目标句子为“这个门把手坏了”时,对该句进行分割并标注词性,得到“代词:这个;名词:门;名词:把手;形容词:坏”。目标句子为“把手拿开”时,对该句进行分割并标注词性,得到“介词:把;名词:手;动词:拿开”。采用最大的分词粒度进行分词,如对于“中华人民共和国国家知识产权局”,不会切分成“中华”、“人民”、“共和国”、“国家”、“知识产权”、“局”,而是直接切分成“中华人民共和国”和“国家知识产权局”。采用最大的分词粒度进行分词时,优选地,限定窗口的大小,即限定句子中词之间的距离。进一步优选,将窗口的大小取6。如“中华人民共和国国家知识产权局”中,“中华”与“国家”因中间隔了“人民”、“共和国”两个词,所以两者之间的距为2;接着,统计和过滤大量三元共现或者二元搭配,或者二元搭配与单字的信息,并对这些信息。进行二元搭配的限制,如只统计二元搭配为“名词+名词”、“形容词+名词”、“名词+动词”、“动词+名词”。如图2“把手拿开”,只统计其中的“名词+动词”,即“手拿开”,而不会统计“介词+名词”,即“把手”。优选地,进行单字统计时,即统计一元的相关信息,只统计预先保留在白名单中的单字,所述的白名单与黑名单相对。一元的相关词可以用于进一步的词聚类,反作弊应用等;最后设定一定闽值,并对低于一定闽值的二元搭配进行过滤。在大规模语料库中,采用4. 7T精选语料并取15作为闽值进行过滤。

当然,也可以统计词的三元共现信息。所谓三元共现信息,是指对句子中的具有密切关系的三个独立的词同时出现的次数进行统计,如“苹果”、“电脑”、“乔布斯”三个词在某一特定的文本中共同出现的次数。尽管二元搭配一般可以较好地消除歧义,但是由于二元搭配过多,因此只能统计一部分二元搭配对应的三元搭配信息。另外,在限制窗口的情况下,容易造成很多二元搭配的三元搭配信息稀疏。因此,可统一三元共现信息。对每个词进行编号并建立相应的频率特征向量。将词频作为词的频率特征向量。所谓词频,是指一定范围的语言材料中词的使用频率。如对以下的词的词频进行统计,得到其相应的特征向量为:手机222747一播放器174831一联想158289一三星154211一3g手机1533701applel48192一榨汁机1420181ipod1393251东芝1241601笔记本122693一防晒121449一华硕112241一公司101688一1g100174一佳能98279-海尔97124一3g89962一acer85685一成色,在频率特征向量的基础上,通过计算词与词之间的互信息值,利用互信息值作为特征向量,并过滤互信息值低于一定I值的频率向量的词。所谓的互信息,是信息论里一种有用的信息度量,指两个事物集合之间的相关性,互信息的计算公式为:其中,PM工(WWn, Wz-wz)表示wl,wz两个词的互信息值,而P (wl,wz)表示wl,wz两个词共同出现的次数,P ( w})表示w,单独出现的次数,P ( wz)表示wz单独出现的次数。如通过该计算公式得到以下词与苹果的互信息值分别为:苹果蔡昌成12.6858一mb881ch12.5531一趣味下载12. 5195—mb417ch12.4986一敖翔万里12. 4811一ibookg412.4807一mc240ch12.4756一leopal2. 4265一苏育琴12. 4056一c21ch12. 3646一艾瑞华12. 3604一mb467ch12.3582一胡魁章12. 3572一戎利12. 3549一shuff112. 3547一mb325ch由于互信息会偏爱低频的词,可以进一步过滤一些低频词。过滤时,可以采用P(wz一w1)的计算方法或者其他统计量如卡方一。所谓P ( wz一w1)的计算方一法,是指count (w1,wz)/count Cwl),即出现词w,的情况下,统计词w,和词wz的共同出现次数,接着将该统计结果除以词w,出现的总次数。所谓卡方统计,可以参照以下公式,假设有两个分类变量1和2,若要推断的论述为:1和2有关系,可以利用独立性检验来考察两个变量是否有关系,并能较精确得给出这种判断的可靠程度。具体的做法是,由一定统计的数据算出随机变量的值,随机变量越大,说明1和2有关系成立的可能性越大。

计算词之间的相似度及单个词的相关词。具体地,计算词之间的相似度时,可以采用余弦(COS)或者信息半径(工RAD)。如计算两个词之间的相似度时,COS的计算过程如下:毓嘱瞬群孟益一艺尹露双耐,咖尹豁黔尹艺尸赫双淤冲动”初产,其中,w‘表示词w,和词wz之间有互信息的所有的词候选,CP (w1 ;w2)表示基于COS方法进行计算得到的相似度结果,C表示所有词汇集合,PM工(wrw ;w1)表示wr、w,之间的互信息值。当利用工RAD计算两个词之间的相似度时,计算过程如下:一万、蜡氰丫召尹烈耐抽澎干叔,鸽二好 I RAD (w,;w2) -KL (P (w' I w1川AVGP)+KL (P (w' I w2川AVGP)其中,p"q分别表示两个词的概率分布信息,上述第一个公式度量了分布q近似于分布p的程度,KL (p一q)表示度量结果。但是由于KL是非对称的,为了使得更好地计算两个词之间的相似度,引入了AVGP(均值计算)和工以D。其中,P Cw' 1wl),P Cw')的含义同上文所述。

计算单个词的相关词时,可以利用数据稀疏性减少计算量,以便于提速。由于词汇量能够达到百万级,可以采用并行处理以便于提速。当采用上述cos方法计算单个词的相关词时,示例如下:苹果apple0. 197031一ipod0. 166174一香蕉0. 150346一水果0. 143984一草毒0. 136039一葡萄0. 1329471红富士0. 132131称桃0. 1296961 imac0. 1272231西瓜0. 122791菠萝0. 1226381柿子0. 1216261魅族0. 1200351樱桃0. 1199391山碴0. 119791芒果0. 1195591果肉0. 119104一橘子0. 117961一黑毒0. 116814一哈密瓜0. 114692

语义消歧。具体地,如“苹果”可能是电子产品,指的是苹果手机,也可能是水果,与“香蕉”、“梨子”相对。当在步骤101中对有效的二元搭配进行统计时,可以利用两个词的互信息求交集的方法,进行语义消歧。

如统计的二元搭配的互信息值的结果如下:苹果香蕉苹果0. 8742861香蕉0. 7426951水果0. 2964661芒果0. 2845841菠萝0. 2842571草}.}- 0. 2789591 }}猴桃0. 2584121胡卜0. 2582841西红柿0. 2575241番茄0. 2569651西瓜0. 256691木瓜0. 252863橘子0. 250614果肉0. 244553柿子0. 244403哈密瓜0. 242181一葡萄0. 240132一南瓜0. 238473一山碴0. 236044一橙子0. 234341一由上述的统计结果可知,由于苹果和香蕉的互信息值的交集值较大,因此判断苹果在该文本中为水果的可能性最大,而非电子产品。类似地,对于图2中所示的“把手”,是将其看做一个名词,还是将其看做两个词,根据“把”与“手”的互信息值即可作出判断。根据相关词主题的语义消歧系统。请参考图3所示,该系统包括相关词挖掘模块302、语义相关词计算模块303、语义消歧模块304,其中:相关词挖掘模块302,基于相关词主题对相关词进行挖掘。如上文方法所述的基于相关词主题挖掘相关词,主要利用词与词之间的相似度度量,通过挖掘和计算相关词,考虑词汇在大规模语料中语境的相似性,对于单个词,也可以根据上下文语境推测其相关词,例如对于单个词“庐山恋2",通常可以根据其上下文推测其相关词包括“初恋红豆沙”、“四个丘比特”等。更具体地,相关词挖掘模块302通过结合大规模预料库301挖掘出相关词。所述挖掘主要包括切词和词语统计、过滤这些过程,下文将对这些主要过程进行详述。通常,按照分词与词性标注的方法,挖掘大量三元共现或者二元搭配,或者二元搭配与单字的信息,并对这些信息进行统计和过滤,如统计词的出现频次和总词数。优选地,在挖掘信息时,采用最大的分词粒度进行分词。进一步优选地,限定窗口的大小为6。在挖掘二元搭配时,优选地,限定二元搭配的词性。在统计单字信息时,优选地,只统计预先保留在白名单中的单字。在过滤信息时,优选地,采用4. 7T精选语料,并取15作为闽值进行过滤。

语义相关词计算模块303,用于语义相关词的计算。具体地语义相关词计算模块303首先根据相关词挖掘模块302已经统计的文本信息对每个词进行工D编号,并建立频率特征向量,该频率特征向量是词的频次。在频率向量的基础上,计算词与词之间的互信息值,并将其作为特征向量。互信息值的计算公式同上所述。然后利用互信息值特征向量,计算词之间的相似度。实验证明,如果不利用互信息值特征向量,而是直接利用频率特征向量进行相似度计算,工RAD的计算方法优于COS余弦的计算方法,工RAD和COS的计算方法都同上。当然,可以通过后续的处理来过滤计算过程中的噪音并找出更好的特征向量。也可以计算单个词的TOP N(前N个)相关词。TOP N相关词是指与特定的单个词密切相关的按相关度排序的前N个词。

语义消歧模块 304,用于语义消歧。可以采取两种方式进行语义消歧。如果相关词挖掘模块302对大规模语料库301中的三元共现信息进行统计,由于三元共性信息统计可避免在二元搭配过多的时候,避免三元搭配信息的稀疏。通过统计三元共现信息,识别语义的强关联性,更好的识别语义,进行消歧。如“乔布斯苹果手机”的共现信息远远大于“苹果香蕉水果”时,判断苹果为手机的可能性更大。

如果相关词挖掘模块302对大规模语料库301中的二元搭配信息进行统计,可以采用两个词的互信息求交集的方法作为这两个词的特征向量,用于消歧。如在苹果与香蕉同时出现情况下,各词的互信息值统计如下:苹果香蕉苹果0. 874286一香蕉0. 742695一水果0. 296466一芒果0. 284584一菠萝0. 284257一草苟0. 278959一称猴桃0. 258412一胡卜0. 258284一西红柿0. 257524一番茄0. 256965一西瓜0. 25669一木瓜0. 252863一橘子0. 250614一果肉0. 244553一柿子0. 244403一哈密瓜0. 242181一葡萄0. 240132一南瓜0. 238473一山碴0. 236044一橙子0. 234341一通过上述统计结果,则可以得出与苹果的水果特性的相关词,能够较好地消除歧义。

从以上的实施例可以看出,搜索引擎通过利用词与词之间的相似度,考虑词汇在大规模预料中语境的相似性,能较好地确定词的正确含义及词之间的相互关系,实现了消歧的有益效果。

长按二维码关注我们