使用向量空间模型(df-idf)计算搜索文档与查询词的相关性

如果要实现一个搜索引擎,当搜索到与用户查询相关的文档后,需要按照搜索文档与查询词相关性的先后顺序显示文章标题与概要,所以需要一种办法计算用户查询和搜索文档的相关性,然后按照相关性由高到低进行排序。
那如何计算用户查询和搜索文档的相关性呢?在解决这个问题之前,需要先解决如何计算两篇文档的相关性,因为我们可以把用户查询看做一个特殊的文档,如果把“计算两篇文档的相关性”这个问题解决了,“计算查询词与搜索文档的相关性”也就迎刃而解了。
方法之一就是使用向量空间模型,向量空间模型它作为文档表示和相似性计算的工具,不仅仅在搜索领域,在自然语言处理、文本挖掘等其他领域也是普遍采用的有效工具。

(1)文档表示

向量空间模型把每个文档看做是由t维特征组成的一个向量,特征的定义可以采用不同方式,可以是单词、词组、N-gram片段等多种形式,最常用的还是以单词作为特征。其中每个特征会根据一定依据计算其权重,这t维带有权重的特征共同构成一个文档,以此来表示文档的主体内容。
也就是说我们要从一篇文档中找出最能代表该篇文档的特征词,然后根据每个特征词的重要性赋予不同的权重。在向量空间模型里,特征权重的计算框架一般被称做Tf*IDF框架,它基于如下思想:在一篇文章中某个单词出现的次数越多并且它在其他文章中出现的次数越少,它越能代表该篇文档的内容,权重越大。所以这一计算框架主要考虑两个计算因子:词频Tf和逆文档频率IDF。

(2)中文分词和停用词

在介绍TF和IDF之前先介绍一下中文分词和停用词。因为由(1)知,每篇文档的主体内容可以由最能代表它内容的特征词表示,但是对于中文文档来说,文档是由句子组成的,所以首先需要把句子分成一个个单词,比如句子“我是中国人”需要分成“我/是/中国/人”,才能计算这些分好单词的权值,我用过的中文分词有中科院NLPIR系统结巴分词
文档总有一些比如”的”、”是”、”在”这一类最常用的词,它们叫做”停用词”(stop words),对找到结果毫无帮助,所以计算特征词权重时需要把它们过滤掉。实际操作中通常会有一个停用词文件,事先需要读取该文件获取所有停用词,判断一个词是否是停用词,只需要在停用词表查找即可。

(3)词频因子TF

TF计算因子代表了词频,即一个单词在文档中出现的次数,一般来说,在某个文档中反复出现的单词,往往能够表征文档的主题信息,即Tf值越大,越能代表文档所反映的内容,那么应该给于这个单词更大的权值。
具体计算词频因子的时候,基于不同的出发点,可以采用不同的计算公式。
最直接是使用词频数作为TF。
一种词频因子的变体计算公式是: WTf=1+log(Tf) ,即将词频数值Tf取log值作为词频权值,比如单词在文档中出现过4次,则它的词频因子权值为3。公式中加1是为了考虑词频等于1的情况,如果不加1只计算log(TF),那么 WTf 就等于0了。之所以要对词频取log,是基于如下考虑:如果一个单词出现了10次,也不应该在计算特征权值时,比出现1次的情况权值大10倍,所以加入log抑制这种过大的差异。
另外一种单词词频因子的变体计算公式是: WTf=α+(1α)

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值