TF-IDF:传统IR的相关排序技术(二)

TF-IDF:传统IR的相关排序技术(二)

rude 2 条评论
搜索引擎技术

既然是二,就是顺着上一篇文章《TF-IDF:传统IR的相关排序技术》写下来的。所以,有兴趣的同学请先看完第一篇文章再来继续。

嗯,我继续开始二。

关于词频,只要你的分词工具够牛逼,就很好理解和实现。关于反文档频率,各位亲们,看到时会不会初时感觉很牛叉,然后细想会很有疑惑该?

逆文档频率(idf)=log(文档总数/包含关键词的文档数量)

对,疑惑就在怎么获得“文档总数”与“包含关键词的文档数量”上。

在搜索引擎上,可以有一个不错的替代方式,下面听我细细道来。

每篇文章每个网页几乎都含有“的”这个字,嗯,你想到了吧。在搜索引擎中搜这个字,出来的结果数量可以理解为所有的文档数量,然后再搜你的目标词即为包含这个词的文档数量,这一数据也就得到了解决,下面是我弄的一个例子:

反文档频率

好了,有了这些数据,我们接下来看看能够做些什么出来。

将网站中每个网页进行分词,去掉语气助词停顿词之后按照tf-idf值从大到小进行排序。

网页A={a1,b1,c1,d1,e1……z1}

网页B={a1,b2,c1,d5,e2……z6}

网页C={a2,b1,c2,d1,e2……z2}

……

显然从{a1,b1,c1,d1,e1……z1}中就可以了解到网页A所表达的意思,B、C亦然。

如果通过一个方法将A、B、C中的词进行比对,那岂不是就可以算出来……,你想对了,页面之间的相似程度。

这个方法,就是余弦值。具体操作,如下:

我们首先从A、B、C中选出前N个可以表达页面主题的词,组成一个集合。

{a1,c1,d1,e1,b2,d5,e2,a2,b1,c2}

然后计算A、B、C页面针对这个集合中每个词的词频(如有必要,请使用相对词频),组成对应的向量。

A=[2,1,3,5,0,0,0,0,1,0]

B=[……]

C=[……]

请记住这个高中时就学到的公式。
余弦值与相似度

OK,经过此公式的计算,不但是页面之间的相似度,同样一个页面最相关的推荐文章也即可由此产生。

有兴趣的同学们,请试验一下吧。
文军二维码

2 条评论

rude

九月 19, 2013 at 10:07 下午

数学太差

 Reply

    rude

    九月 29, 2013 at 10:07 上午

    其实都不难,高中时学到过的

     Reply

发表评论

今日说说

    问:做什么事情会让你成就感爆棚?

    答:做让你感觉心理畏惧的事情,做完之后你会发现,去TMD,不过如此。

站内搜索