具体实施方式
下面将参考附图并结合实施例,来详细说明本发明。
图1示出了根据本发明实施例的微博实时检索方法的流程图,包括:
步骤S10,对微博空间中的各个微博进行文档扩展以生成文档扩展逻辑式(即文档模型);
步骤S20,获取来自用户的关键词;
步骤S30,对关键词进行逻辑扩展得到以生成扩展检索逻辑式(即查询模型);
步骤S40,以扩展检索逻辑式检索各个文档扩展逻辑式以获得最终检索结果。
文档扩展是利用微博包含的外部链接来扩充微博文本的语义信息。相关技术仅仅运用查询扩展并不能很好地解决微博中的词汇不匹配的问题,而本方法中采用了文档扩展,使得微博的字数得以增加,所以克服了微博字数太少导致的检索不精确的问题,提高了微博检索的准确度。
优选地,步骤S10包括:将微博中包含的短链接还原成原始的长链接;从长链接中解析出网站关键字,从原始的长链接的网页的源代码中解析出标题标签的内容,即,从网页HTML代码中解析出<TITLE>标签的内容,作为网页核心内容的候选文本;利用网站关键字和解析内容生成网页主题信息;对网页主题信息分词以生成主题信息逻辑式,对微博分词以生成文档逻辑式;将主题信息逻辑式与文档逻辑式线性叠加以生成文档扩展逻辑式。
本优选实施例从语义相关度的角度出发,将从原始的长链接的网页的源代码中解析出标题标签的内容用于做文档扩展,因为这部分内容的语义相关度较大,且容易获取,能够实现较高准确度的检索,且容易实现。
优选地,利用网站关键字和解析内容生成网页主题信息包括:将解析内容用分隔符(例如“|”,“-”,“_”)分割成多个子字符串,若不能分割,则将全部解析内容作为一个子字符串;分别检验各个子字符串是否含网站关键字,如果是,则舍弃这个子字符串,将未被舍弃的子字符串作为网页主题信息;若各个子字符串都不包含网站关键字,则取文本长度最长的子字符串作为网页主题信息。
本方案很容易通过计算机编程来实现。
优选地,用语言模型辅以狄利特雷平滑估计网页主题信息,以对网页主题信息分词以生成主题信息逻辑式。语言模型辅以狄利特雷平滑估计是比较成熟的技术,容易实现。
文档扩展利用文档所包含的链接来扩展原文档的语义,从而克服了微博环境中对文档字数的限制。结合一个实际的例子,文档扩展的步骤如下:
1)将文档中包含的短链接还原成原始的长链接。例如,文档“一段视频用数字很好的分析了林书豪持续爆发的原因”包含了http://t.cn/zO4AlI9短链接地址,通过短链接恢复服务,得到该短链接对应的原始长链接为http://video.sina.com.cn/p/sports/k/v/2012-02-23/083261673863.html。
2)从长链接中解析出网站关键字。这里,网站关键字为sina。
3)从网页HTML代码中解析出<TITLE>标签的内容,作为网页核心内容的候选文本。该网址对应的网页核心内容候选文本为“视频-科学解析林书豪爆发原因0.6秒投篮1秒加速|新浪NBA视频”
4)将网页核心内容的候选文本用常见的分隔符分割,对分割后的子字符串进行检验,若其中有包含网站关键字的子字符串,则舍弃这个字符串,否则取最长的子字符串内容作为网页主题信息,并用语言模型辅以狄利特雷平滑估计主题信息,形成主题信息模型。在这个例子中,网页核心内容候选文本被分隔符分割成三个个字符串,都不包含网页关键字,则取最长的子字符串,也即“科学解析林书豪爆发原因0.6秒投篮1秒加速”作为网页主题信息。
5)用类似更新逻辑式的方法将主题信息模型与文档模型线性叠加形成文档扩展模型。
优选地,步骤S30包括:对关键词生成初始检索逻辑式;以初始检索逻辑式检索各个文档扩展逻辑式得到初始结果集;取初始结果集中与关键词的语义相关度最大的第一个文档扩展逻辑式更新初始检索逻辑式线性,以生成更新检索逻辑式;以更新检索逻辑式检索各个文档扩展逻辑式得到二次结果集;取二次结果集中与关键词的语义相关度最大的前预定个数的文档扩展逻辑式更新更新检索逻辑式,以生成扩展检索逻辑式。
本优选实施例的查询扩展是利用初始检索结果集中的第一条微博以及二次检索结果集中的前N条微博共同扩充查询语义。本方案比较简单,很容易通过计算机编程来实现。结合一个实际的例子,查询扩展的步骤如下:
1)用最大似然估计来估计原始逻辑式。例如查询“林书豪爆发”,分词后的结果为[“林书豪”,“爆发”],经过最大似然估计,p(林书豪)=0.5,p(爆发)=0.5。
2)用原始逻辑式进行检索,取检索结果中排名第一的文档作为反馈支持文档,利用最大似然估计来估计反馈支持文档模型,并与原始模型进行线性叠加,获得第一阶段更新后的逻辑式。例如,在输入“林书豪爆发”查询后得到的第一条检索结果是“一段视频用数字很好的分析了林书豪持续爆发的原因”,分词后的结果是[“一段”,“视频”,“数字”,“分析”,“林书豪”,“持续”,“爆发”,“原因”],对每一个词wi,它在反馈支持文档中的模型中的概率为p(wi)=1/8,设反馈支持文档在线性叠加中的权重为2/5,则原始模型的权重为3/5,则在更新后的逻辑式中,p(林书豪)=p(爆发)=3/5*1/2+2/5*1/8=3/5*1/2+2/5*1/8=7/20,其他每一个词的概率p(wi)=2/5*1/8=1/20。
3)利用更新后的查询进行检索,取检索结果中排名最高的前5个文档作为反馈支持文档集,利用语言模型估计反馈支持文档集模型,并利用EM算法迭代获得反馈支持文档集模型,然后再次与前一阶段的逻辑式进行线性迭代,获得最终的逻辑式。
优选地,利用KL距离计算查询初始检索逻辑式与各个文档扩展逻辑式的语义相似度,从而获得初始结果集;利用KL距离计算查询更新检索逻辑式与各个文档扩展逻辑式的语义相似度,从而获得二次结果集;利用KL距离计算查询扩展检索逻辑式与各个文档扩展逻辑式的语义相似度,从而获得最终检索结果。KL距离计算是比较成熟的技术,很容易通过计算机编程来实现。
优选地,利用KL距离计算确定语义相关度。KL距离计算是比较成熟的技术,很容易通过计算机编程来实现。
优选地,取初始结果集中与关键词的语义相关度最大的第一个文档扩展逻辑式更新初始检索逻辑式线性包括:利用最大似然估计的方法来估计第一个文档扩展逻辑式中各个词的概率,以生成第一阶段反馈文档逻辑式;将第一阶段反馈文档逻辑式与初始逻辑式进行线性叠加,以生成更新检索逻辑式。本方案比较简单,很容易通过计算机编程来实现。
优选地,取二次结果集中与关键词的语义相关度最大的前预定个数的文档扩展逻辑式更新更新检索逻辑式包括:利用EM算法以及语言模型来估计前预定个数的文档扩展逻辑式中各个词的概率,以生成第二阶段反馈文档逻辑式;将第二阶段反馈文档逻辑式与更新逻辑式进行线性叠加,以生成扩展检索逻辑式。本方案比较简单,很容易通过计算机编程来实现。
优选地,本方法还包括:
过滤最终检索结果中在各个时间段语义相似度低于预设过滤阈值的文档扩展逻辑式;
将查询时间戳与文档时间戳的差值作为文档时间属性的值,查询时间戳是指用户输入查询关键词时的系统时间,文档时间戳是指微博发布时间;
以预设的时间衰减函数将文档时间属性转化为时间衰减值,使得离检索时间越近的文档有越高的时间权重;
根据时间权重将最终检索结果中的各个文档扩展逻辑式对应的微博进行排序,生成最终检索结果列表返回给用户。
时间因素重排序是根据微博发布的时间戳对微博排序进行重新调整,以提高离检索时间较近的微博的时间权重。在传统的信息检索中,返回的搜索结果以相似度倒序排列,而在本优选实施例的微博环境下的实时检索中,返回的搜索结果可以按其发布时间倒序排列。
优选地,过滤最终检索结果中在各个时间段语义相似度低于预设过滤阈值的文档扩展逻辑式包括:将最终检索结果中各个文档扩展逻辑式以其文档时间戳以2小时为区间做归一化;计算区间内各个文档扩展逻辑式的文档语义相似度的平均值Avg,并以0.2*Avg作为该时间区间的过滤阈值;将该区间内文档相似度低于该区间的过滤阈值的文档扩展逻辑式过滤。本优选实施例提供了更优化的微博检索结果。
优选地,根据时间权重将最终检索结果中的各个文档扩展逻辑式对应的微博进行排序,生成最终检索结果列表返回给用户包括:将最终检索结果中的各个文档扩展逻辑式的时间权重乘以其文档语义相似度得到文档得分;按其文档得分降序排列产生最终检索结果列表。本优选实施例提供了更优化的微博检索结果。
在完成查询扩展以及文档扩展后,利用KL距离来估计查询和文档之间的语义相似度,由于用户希望通过实时检索来获取最近发生的相关微博,因此在生成最终的检索结果之前还需要经过时间因素重排序。结合一个实际的例子,文档扩展的步骤如下:
1)过滤在各个时间段语义相似度过低的文档。例如,查询“林书豪爆发”在2012年2月8日12:00发出,则将所有待检索文档的发布时间按2小时做归一化,例如在2012年2月8日9:30发布的微博被归入到8:00~10:00时间段,在每个时间段内,计算各个文档的语义相似度的平均值Avg,并以Avg作为该时间区间的过滤阈值,将区间内文档相似度低于区间阈值的文档过滤。
2)将查询时间戳与文档时间戳的差值作为文档时间属性的值。例如,在2012年2月8日9:10发布的微博的时间属性为2.5小时。
3)令高斯函数为时间衰减函数,将文档时间属性转化为时间衰减值。衰减函数的形式为,令x=2.5带入公式,得到时间衰减值。
4)将时间衰减值乘以文档语义相似度得到新的文档得分,并按文档得分降序排列文档产生结果候选列表。从候选列表中截取前30个文档,并将这30个文档按时间戳倒序排列,形成最终结果列表,返回给查询者。
图2示出了根据本发明优选实施例的微博实时检索方法的流程图,包括以下步骤:
步骤S10,对输入的文本(查询或者文档)进行分词、停用词过滤、词形变换(即预处理模块);
步骤S20,利用原始查询模型与反馈文档模型线性叠加得到查询模型(即查询扩展模块);
步骤S30,利用微博包含的外部链接扩充微博文本的语义信息(即文档扩展模块);
步骤S40,利用KL距离计算查询检索逻辑式与各个文档扩展逻辑式的语义相似度(即匹配模块);
步骤S50,生成文档时间属性,过滤最终检索结果中在各个时间段语义相似度低于预设过滤阈值的文档扩展逻辑式,最后根据微博的时间属性对检索结果进行重排序(即时间衰减模块)。
图3示出了根据本发明优选实施例的文档扩展流程图,包括以下步骤:
步骤S10,提取出微博中的短链接,如http://t.cn/h51HE;
步骤S20,:将微博中包含的短链接还原成原始的长链接(即原始链接),如http://www.sina.com;
步骤S30,从长链接中解析出网站关键字,sina.;
步骤S40,利用脚本爬取链接指向的网页,从网页源代码中解析出标题标签的内容,作为网页核心内容的候选文本;
步骤S50,利用网站关键字和解析内容生成网页主题信息包括:将解析内容用分隔符(例如“|”,“-”,“_”)分割成多个子字符串,若不能分割,则将全部解析内容作为一个子字符串(即主题内容候选分隔模块);
步骤S60,若S50得到的主题信息集中包含步骤S30得到的网站关键词,则将其去除,得到最终主题信息;
步骤S70,用语言模型辅以狄利特雷平滑估计网页主题信息,以对网页主题信息分词以生成主题信息逻辑式。
图4示出了根据本发明优选实施例的查询扩展流程图,包括以下步骤:
步骤S10,对输入的查询或支持文档进行分词、停用词过滤、词形变换(即预处理模块);
步骤S20,将原始查询模型与反馈文档模型进行线性叠加(即线性叠加模块),特别的,当没有反馈文档时直接输出原始的查询模型;
步骤S30,计算查询模型与文档模型的KL距离(即匹配模块);
步骤S40,根据初步查询的语义检索结果生成反馈支持文档,利用语言模型估计反馈支持文档集模型,并利用EM算法迭代获得反馈支持文档集模型(即反馈更新模块)。
图5示出了根据本发明优选实施例的时间因素重排序流程图,包括以下步骤:
步骤S10,将查询时间戳与文档时间戳的差值作为文档时间属性的值(即文档时间属性模块);
步骤S20,将文档按时间属性排序,过滤检索结果中在各个时间段语义相似度低于预设过滤阈值的文档扩展逻辑式包括(即区间过滤模块);
步骤S30,根据衰减函数计算出各个文档的时间权重;
步骤S40,结合原始分数和时间权重得到新的结果得分,根据此得分对结果重排序得到最终检索结果。
图6示出了根据本发明实施例的微博实时检索装置的示意图,包括:
文档扩展模块10,用于对微博空间中的各个微博进行文档扩展以生成文档扩展逻辑式;
关键词模块20,用于获取来自用户的关键词;
检索扩展模块30,用于对关键词进行逻辑扩展得到以生成扩展检索逻辑式;
匹配模块40,用于以扩展检索逻辑式检索各个文档扩展逻辑式以获得最终检索结果。
本装置采用了文档扩展,使得微博的字数得以增加,所以克服了微博字数太少导致的检索不精确的问题,提高了微博检索的准确度。
从以上的描述可以看出,本发明的特点在于利用了反馈支持文档(集)更新逻辑式,从而扩展了查询的语义;利用微博包含的外部链接获取外部网页的主题信息,从而丰富了原微博的语义信息;利用了文档时间戳信息对文档得分进行调权,平衡了文档语义相似度和文档实时性,从而得到一个更合理、更准确的检索结果。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。