好吧,又要开始bb叨模式了。 这篇文章,我想把关键词权重给描述清楚?
大家想想这个场景,如果你在网上搜索“王健壕美的净水器”,搜索引擎通过索引发现,一共有100篇网页都含有这个关键词,哪一篇网页,是你最想要的呢?
先强调一下计算器搜索的基本方式,它会把关键词拆分为3个:王健壕,美的,净水机。 然后去匹配有这3个关键词的网页,至于如何匹配是上一篇笔记———布尔代数运算,所讲过的。在此不赘述。
而现在的问题是,
我们匹配出了有100篇网页,都含有这三个关键词后,请问哪一篇是相关性最高的,是搜索者最想要结果。
答案是:这三个关键词——王健壕,美的,净水机,在哪个网页出现次数最多,就是哪个网页。
这个思路肯定都认可吧。
比如,A网页,一共由1000个词语组成,“王健壕”出现了5次,“美的”出现了20次,“净水机”出现了8次,我们可以计算出这些词的出现频率:5/1000=0.005,20/1000=0.02,8/1000=0.008. 把这3个数相加,等于0.033. 这个0.033就是“王健壕美的净水机”的单文本词频,英文单词是Term Frequency,简写就是TF。
那么,我们同样是不是能够计算出,其他99个网页的TF值呢? 于是,计算机只需要比对,哪个网页的TF值高,就把该网页放在靠前的位置,那一定更吻合你想要的结果。
当然,我尝试搜了一下,没想到出来,竟是这样的结果,只想说“这是什么gui”
你是不是以为,说到这里就完啦?
那你就太天真了,要是搜索这么简单,怎会让百度,谷歌这些公司成为世界级大企业呢?
如果遵循这个法则,会有两个漏洞:
如果关键词含有“的”,“是”,“和”....,那些每句话都会用到的万能词语,那么网页的TF值会高得离谱,因为每个网页一定都会用到,这样根本筛选不出有用的网页,所以关键词会自动屏蔽掉这些词,这次词被划分成单独的一类,叫做停止词(stop word)
还有一类词语,称之为“通用词”,比如“美的”,不光是一个品牌的名字,也是“美丽的”之简称,如美的风景,美的诗,会在各种领域出现,如果计算它的tf值,也会特别高,如果一篇网页出现多次“美的诗文”,相信也容易排在很靠前的位置,但这肯定不会是我们想要的。
那么针对,第二个漏洞,该怎么办呢?
答案是:把不太通用的词汇,给予更高的权重。
- 比如,“王健壕”和“美的”,这两个词,肯定是“王健壕”这个词更稀有,如果A网页多次出现“王健壕”,B网页多次出现“美的”,你认为哪个网页是更相关的呢?
这两词的本质差别就是:谁更少出场,谁就更有预测主题的能力。 那么这个词就应该有更高的权重。
那么问题来了,如何计算这个不同的词语的权重呢?
对应到,这个案例中,如何计算“王健壕”和“美的”这两个词的权重呢?
按照刚才的逻辑,谁的出场次数越少,就该有更高的权重。 那么我只需要计算,“王健壕”和“美的”,这两个词在整个互联网的出场次数,就可以啦。
- 计算机只需要有两个信息就能算出来:
1.整个互联网有多少个网页,这件事计算机轻易能做到,我们姑且假设整个互联网有1万个网页吧。
- 多少个网页出现过“王健壕”,多少个网页出现过“美的”,我们姑且假设分别为20个网页出现过“王健壕”,和300个网页出现过“美的”。
- 那么我们可以这样计算一下:
1万个网页中,关键词“王健壕”出现了20次,计为10000/20,等于500。
1万个网页中,关键词“美的”出现了300次,计为10000/300,等于33.3。
1万个网页中,关键词“净水机”出现了100次,计为10000/100,等于100。
直接对两个值取对数,就是关键词的逆文本频率指数(inverse document frequency,缩写为IDF).
所以; - 关键词“王健壕”的IDF为 log(500)=2.6989,
- 关键词“美的”的IDF为log(33.3)=1.522。
- 关键词“净水机”的IDF为log(100)=2
ps:对数知识,就不用普及了吧
两个指数加起来,就是TF-IDF。我们计算的时候,只需要把TF乘以IDF,就能够得出一个更加有效的关键词权重啦,继续以”王健壕美的净水机“为例.
如果有100个网页,都含有“王健壕美的净水机”,我们如何确定哪一篇,排在前面,哪一篇在后面呢?
答案是:
计算这100个网页的TF-IDF值,谁大,谁靠前。
刚才我们说到,
- A网页,一共由1000个词语组成,“王健壕”出现了5次,“美的”出现了20次,“净水机”出现了8次,我们可以计算出这些词的出现频率:5/1000=0.005,20/1000=0.02,8/1000=0.008.
- 关键词“王健壕”的IDF为 log(500)=2.6989;关键词“美的”的IDF为log(33.3)=1.522;关键词“净水机”的IDF为log(100)=2
那么此网页的TF-IDF值为:0.0052.6989+0.021.522+0.008*2=0.0599345。
同理可以算出其他网页的TF-IDF值。再根据谁的值大,谁就靠前。
我猜,看到这里,你一定还是有点懵圈,那我讲个“谁是阿帅女朋友”的故事吧。
阿帅,是附近有名的帅哥,24岁,文质彬彬,但是他妈妈很着急,因为从来没听儿子正式提过女朋友的事情,虽然感觉到儿子有女朋友。
于是,阿帅妈妈找来了侄女儿小可,说出了自己的困惑,小可说道“姨,交给我吧,我去调查调查,就知道阿帅哥哥的女朋友是谁”
小可是干嘛的呢,她是附近商场的物业经理,你猜她会怎么调查呢?
小可心想,如果是阿帅哥哥的女朋友,那么他们一定会出去逛街啊,所以谁跟阿帅逛过街,谁就有可能是他女朋友。 于是她用了调用商场最新的监控系统,通过脸部识别系统,找到了过去一年,阿帅逛商场的次数。
发现,阿帅1年内,逛了60次商场,但问题是,阿帅分别和不同4个人的人来逛过。
小可心想,就算跟4个人来逛过商场,也不怕。和谁逛的次数最多【TF值】,那个人一定就是亲密度最高的人嘛,数数就知道了。
于是,小可数了一下,她发现:
琴,10次;
菡,10次;
大勇,8次;
张姐,32次;
小可,惊出一身冷汗,“啊?难道,张姐和阿帅,是那种关系。”
突然间,小可大笑起来,自己真糊涂,张姐是阿帅家的年轻保姆,保姆几乎每天都要买菜,当然要来商场啦,有时候阿帅也要去商场,难免一起进出啦。 所以排除张姐。
【此处的张姐,就相当于关键词中的停止词,如“的”,经常会出现】
现在只剩下:琴(10),菡(10),大勇(8)。
小可,突然犯难了,现在两个女孩儿,和阿帅出来逛街的次数相同,这可不好下定论了,于是小可,骂起了自己的阿帅哥哥,怎么同时跟两女孩儿暧昧呀,讨厌。
突然,小可灵机一动,如果一个女生不本来就不怎么逛街,却也经常出来逛街的话,那说明这女生肯定更重视阿帅,那么就更有可能是阿帅最亲密的人。
于是,小可再次用人脸识别,调出了那两个女孩儿一年内逛街的次数,
小可心想,如果一个女孩儿本来就很爱逛街,那么肯定就不是那么重视阿帅哥哥的,但如果一个女孩儿不爱逛街,却也和阿帅一起逛,那么肯定是真爱。
这时俩女孩儿逛商场的数据出来了:
琴,去年逛商场116次;
菡,去年逛商场60次;
小可,在本子上开始记录:
一年365天,琴逛商场116次, 365/116=3.14,每三天逛一次;
而菡,365/60=6.1,相当于每6天逛一次。
假如有个测试真爱的算法的话,那一定是用和帅逛街次数乘以女孩儿的逛街频率:
- 琴的真爱值:10*3.14=31.4.
- 菡的真爱值:10*6.1 = 61.
【其实就是TF-IDF值】
小可,写到这里,茅塞顿开,知道自己找到了答案,菡的真爱值可是琴的两倍啊。
于是,收起笔记,准备去找姨母,请功领赏。
但是,小可玩性大发,心想,要不也算算,阿帅哥哥的哥们儿,大勇的真爱值是多少呢?
数据显示,过去一年大勇逛商场的次数为8.
小可大惊失色: 365/8*8=365.....
小可,不敢继续算下去了,顿觉背心发凉,一个熟悉的声音在后方传来
“你知道得太多了......”
“嘣”,屋子里传来一声脆响。