基于搜索交互信息和用户搜索意图的词义提取方法
技术领域
本发明属于信息检索和词义排歧技术领域,尤其涉及一种基于搜索交互信息和用户搜索意图的词义提取方法。
背景技术
近几年,信息检索和词义排歧技术各自的研究和应用非常普遍,但将信息检索和词意排歧技术相结合的研究和应用则较少。
从1998年Google成立开始,信息检索逐渐成为一项主流的技术,最初,信息检索提供人工编辑的目录式检索,典型公司为雅虎。但随着互联网信息的爆炸,人工编辑已不能满足用户的需要,此后,机器自动处理的方式日益成为主流。现今,各类搜索服务已经各具规模,搜索服务可分为水平型和垂直型。水平型用来提供综合服务,在中国,水平型搜索服务的典型代表是百度、谷歌等;垂直型用来对特定领域提供相应服务,在中国,典型垂直型搜索服务的代表是酷讯等。与水平型搜索服务相比,垂直型搜索服务更加贴近用户的特定需求,但还只是面向某个特定的群体或具有某种特点的领域或是特定的应用,还不能做到针对每一个用户个体。
就词义排歧技术而言,传统的方法大多是基于统计学习的方法,用机器自动找出规律,不用人工干预,这种方法称为无导的方法,该方法在特定领域效果不错,但在通用领域效果一般。另外,全部用人工标注处理的词义排歧方法也被使用,这种方法称为全导的方法。还有一种半导的方法,即采用人工标注处理很少的一部分,再用机器处理其他的大部分。上述词义排歧的各类方法中,人工标注处理的人力和物力成本很大且目前的词义排歧没有通过用户的点击情况来划分词义个数的方法。面对当前的情况,不少公司也在起步做个性化搜索服务,但不少还停留在概念和操作性不强的理论上。
现有技术中有各类词义提取方法,但现有的方法大多是在静态文本中进行分析,或是对静态文本进行人工标注后进行处理,前者通常需要限制文本领域,在一般的领域里的效果不好;后者中人工标注成本很大。
发明内容
针对现有技术存在的问题,本发明将信息检索与词义排歧技术相结合,提出了一种基于搜索交互信息和用户搜索意图的词义提取方法,该方法通过对所有用户过往历史交互信息进行分析,并根据分析结果对单个用户提供个性化搜索结果。
为解决上述技术问题,本发明采用如下的技术方案:
基于搜索交互信息和用户搜索意图的词义提取方法,依次包括以下步骤:
步骤一,记录每个用户的历史交互信息,所述的历史交互信息包括查询关键字、查询时间和对应点击;
步骤二,根据步骤一所得的历史交互信息,取所有用户查询频率排名前K1位的查询关键字构建查询关键字向量,查询关键字向量中的每一项对应一特定关键字,其中,K1可根据实验表现设置;
步骤三,根据步骤一所得的历史交互信息,取每个用户自身查询频率前K2位的查询关键字查询后的对应点击结果构建对应点击向量,并在步骤二所构建的查询关键字向量中将每个用户自身查询频率前K2位的查询关键字所对应的项设置为1,其他设置为0,其中,K2可根据实验表现设置;
步骤四,对任意单个高频查询关键字的点击情况进行统计处理,即统计各用户对任意单个高频查询关键字的点击结果中互斥的集合,该互斥的集合的数量极为该查询关键字的义项数量,每个集合中对应的网络资源即为该集合所代表的义项中所对应的资源,所述的高频查询关键字为所有用户查询频率排名前K1位的查询关键字和每个用户自身查询频率前K2位的查询关键字;
步骤五,根据步骤二和步骤三所得的查询关键字向量和对应点击向量中各项的值对用户聚类;
步骤六,根据步骤五所得的聚类结果,计算同类用户对各查询关键字对应义项的偏好排名。
上述步骤五中的聚类采用K-means聚类方法。
上述步骤六中的排名的计算是根据聚类在一起的各用户对各搜索关键字点击结果的频率进行。
与现有技术相比,本发明具有以下优点和有益效果:
1、本发明在词义排歧方面,避免了人工标注导致的成本问题,同时,这种方法又避免了无导方法效果差或是受领域限制的问题;
2、词语义项的确定取之于使用搜索引擎服务的用户,又用于对他们服务,更符合他们的搜索需求;
3、在词义选取方面更好的体现了用户的认知过程;
4、得到的义项分类更能体现用户搜索使用目的。
附图说明
图1为本发明方法的流程图;
图2为用户甲对查询关键字“苹果”的点击情况;
图3为用户乙对查询关键字“苹果”的点击情况;
图4为用户丙对查询关键字“苹果”的点击情况;
图5为用户1对查询关键字“苹果”的点击情况;
图6为用户2对查询关键字“苹果”的点击情况;
图7为用户3对查询关键字“苹果”的点击情况;
图8为用户4对查询关键字“苹果”的点击情况;
图9为用户5对查询关键字“苹果”的点击情况;
图10为用户6对查询关键字“苹果”的点击情况;
图11为返回给用户X的点击结果;
图12为返回给用户Y的点击结果。
具体实施方式
为了避免数据稀疏的问题,本发明方法在处理查询关键字时仅取用高频查询关键字,即只取所有用户查询排名频率排名前K1名的查询关键字进行处理;同样的,不同用户对各查询关键字的使用频率有高有低,为避免偶然性因素,仅取每个用户自身查询频率排名前K2位的查询关键字进行处理。
图1所示为本发明方法的流程图,本发明方法的步骤具体如下:
步骤一,记录每个用户的历史交互信息,所述的历史交互信息包括查询关键字、查询时间、对应点击,其中,查询关键字用来构建查询关键字向量,对应点击用来构建对应点击向量,查询时间用来锁定用户某一阶段的特点,每隔一定时间,重新构建关键字向量和对应点击向量。
步骤二,根据步骤一所得的历史交互信息,取所有用户查询频率排名前K1位的查询关键字构建查询关键字向量,查询关键字向量中的每一项对应一特定关键字,其中,K1可根据最终词义排岐的效果和搜索服务的表现设置,K1为一个变动的值,其值的变动影响最终词义排岐的效果和搜索服务的表现,同时,最终词义排歧的效果和搜索服务的表现反过来影响其值的设定。
步骤三,根据步骤一所得的历史交互信息,取每个用户自身查询频率前K2位的查询关键字查询后的对应点击结果构建对应点击向量,向量化的结果以关键字为标志符,不同用户的相同关键字所对应的点击向量可相互比较其相似度进行用户聚类;并在步骤二所构建的查询关键字向量中将每个用户自身查询频率前K2位的查询关键字所对应的项设置为1,其他设置为0,K2可通过实验的表现调整设置其值。
步骤四,对任意单个高频查询关键字的点击情况进行统计处理,即统计各用户对任意单个高频查询关键字的点击结果中互斥的集合,该互斥的集合的数量极为该查询关键字的义项数量,每个集合中对应的网络资源即为该集合所代表的义项中所对应的资源,所述的高频查询关键字为所有用户查询频率排名前K1位的查询关键字和每个用户自身查询频率前K2位的查询关键字;
本步骤的进行以下面三个假设为前提:
(1)在一次搜索中,用户在输入某个词时,只使用这个词的唯一一个义项;
(2)用户只点击与此义项相关的结果中他感兴趣的条目;
(3)短期内(某阈值时间内)用户的各方面情况保持稳定,而超过这一阈值时间后用户的情况,很可能发生变化。用户状态相对稳定的这一阈值时间要根据大量长期的实验得出,也要随时间变化而调整。
步骤五,根据步骤二和步骤三所得的查询关键字向量和对应点击向量中各项的值对用户聚类,聚类过程采用K-means方法。K-means 方法为本领域内处理聚类的一种较成熟的方法,当然采用本领域内的其它聚类方法也是可行的。
步骤六,根据步骤五所得的聚类结果,计算同类用户对各查询关键字对应义项的偏好排名;排名将根据聚类在一起的各用户对各查询关键字点击结果的频率进行评定。此排名将为各查询关键字的相应义项对应的网页为用户提供个性化搜索提供依据。
下面将结合附图和具体实施例来进一步说明本发明方法。
图2~4为根据用户历史交互信息的建模图,即简单表明了本发明方法中的步骤一~四。假设用户甲、乙、丙均输入查询关键字“苹果”,且每个用户均只取搜索结果的前9项进行点击,甲、乙、丙的点击情况分别如图2、图3、图4所示。从图2~4可以直观看出,关键词“苹果”这个词有三个义项,甲、乙、丙分别选择点击“苹果”的三个不同义项,从而说明甲、乙、丙在“苹果”这个词的词义的理解上没有分歧。
不过上述点击结果属于理想状态,一般情况下的点击结果并不理想。不同用户存在点击的重叠,但在大量用户的历史交互数据的记录中,还是可以找出统计规律。从直观上来看,用户对搜索结果的点击,实际上是对一个义项标注的过程,不过,用户标注的结果会漏掉他不感兴趣的条目。鉴于此,本发明作如下假设:每次某用户一次查询点击信息一般情况下主要是关键词的某个义项对应的网页的子集,并且,对应关键词各个义项的链接集之间基本无交集且并集为所有查询结果。基于上述两点假设,可以通过对每一用户对关键词某一义项的查询向量进行分类处理,得到最满足以上两点的集合组,其个数就是该关键词所对应的义项数。
图5~10为用户1~6的聚类图。在输入查询关键字“苹果”后,假设每个用户均只取搜索结果的前9项进行点击,6个用户点击结果的一种理想情况如图5~10所示。从图中可以直观看到,用户1和4具有相似的点击结果,用户2和5具有相似的点击结果,用户3和6具有相似的点击结果。那么,在具有大量用户的这类点击信息时,如果某些用户这种点击一致性不仅表现在“苹果”这个词上,还表现在其他词上,那么,就可以基于统计的特点把这样的用户归为一类。这样一来,用户1和4就可以归为一类,用户2和5可以归为一类,用户3和6可以归为一类。
根据用户的聚类结果,计算同类用户对各查询关键字对应义项的偏好排名,此排名将为各查询关键字相应义项对应的网页为用户提供个性化搜索提供依据。 下面将简单说明一下本发明在个性化搜索中的应用。在输入大量相同查询关键字的用户群中,若用户1~6对大量的相同查询关键字的点击情况如图5~10所示,则说明用户1和4、2和5、3和6是类似背景的人,即同一类用户。在这种情况下,假设用户X与用户1和2是同一类用户,用户X输入一个查询关键字A,则按照用户1和2对查询关键字A相应义项对应的点击结果作为搜索结果返给用户X,如图11所示;同样的道理,假设用户Y与用户2和5是同一类用户,用户Y输入一个查询关键字B,则按照用户2和5对查询关键字B相应义项对应的点击结果作为搜索结果返给用户Y。