00:00
刚才我们给大家讲过了,ES软件的评分机制呢,用的就是TF和IDF公式,那么这里我们就要说一下TF和IDF分别代表什么含义,那么我们下面呢有说明,所谓的TF呢,它表述的是我们的词频,它说了搜索文本中各个词条在查询文本中出现了多少次,出现的次数越多它越相关,它得分会比较高,因为它的关联性更强嘛。对吧,但是呢,还有一个叫IDIDF是逆文档频率,这句话是什么意思呢?说搜索文本中的各个词条,在整个索引的所有文档中出现了多少次,出现的次数越多,说明它越不重要,也就越不相关,得分就比较低。说的简单点,我们的第一个TF就是看这个文档当中啊,我们想查询的那个关键词啊,它是不是很多,如果越多说明这个文档更重要,对不对,那么说明它的关联性越强,所以它的评分就会比较高,但是呢,如果我们搜索的关键词在很多的文档里面都有,就说明它没那么重要,对不对,为什么呢?每个都有啊,那所以就没那么重要,那么它的评分就会相对来说低一些。
01:14
这就是我们计算当中需要明确的两个操作,那么我们说这样的话,最后得分就跟他们俩有很大的关系,那好,那我们现在简单的解释了一下它们两个的概念,可是它们两个的分值是如何计算出来的呢?所以咱们接下来给大家去演示一下它的基本的计算规则,那么首先我们这里来看一下。我们这里呢,就给它来做基本的操作,所以呢,我们这里来,我们把这个数据呢,我们再添加一下啊,咱们再把它去掉,接下来我来添加一个新的索引,我们叫put,然后我们的艾硅谷行了,那我们执行一下。执行以后现在呢,我们这边直接来我们put啊,艾特硅谷,然后斜杠dock,然后斜杠1001,我们加条数据很简单,我们就写上它,我们就叫加吧。
02:06
我写完以后,那现在呢,我们直接去增加,我现在去查询,我查询的时候大家可以看到我要添加我们的get,然后艾特硅谷索引,然后呢,我们下划线设,我再跟之前一样加上查询条件,我们再来写上我们的ma,然后再写上我们的text,我们写上Java很简单。我们现在这个索引当中就一条数据,那我就直接查这一条数据,那我们来看看他的分值是多少,所以点一下,点完以后它的分值是2876821,所以啊,咱们把这个值呢,稍微的给它记一下,咱们放过来啊,这是我们当前的值对不对?好,咱们咱们继续。接下来咱们往下看,哎,那你说这个值怎么来的呢?我们就需要在我们的后面加个问号,然后给他分析一下,我们给它一个true,那么这个时候呢,我们点击之后,它会告诉你我们这里的分值是如何给它平出来的,那么首先我们前面讲过了,有一个基本的公式,就是它这里面有一个权重系数,叫做2.2对吧?然后这边呢,会有个IDF和TF,刚才我们也说过了,这个TF表示的是我们查询的这个关键字在整个文档当中它是否重要,而我们的IDF,它表述的是我们的这个关键词在所有的文档当中是否重要,所以它们两个不一样。
03:26
那么我们别的先不讲,咱们就先讲第一个叫TF,这个TF呢,是在下面的这个位置来计算出来的,它的评分呢,是0.45454544,啊有这么一个评分,那么评分公式是什么呢?所以它的评分公式在这里咱们拷贝。大家可以看到这是它的平分公式,那么我们现在呢,可以一个一个来,我们来看一看,首先我们的第一个叫做它。这个是什么意思呢?他就跟你说了,说我们的f re EQ,它表述的是我们这个关键词在我们当前文档当中出现的次数。
04:03
啊,你出现了多少次,那明显我们就一个,那肯定是一次呀,所以我们的它就是一,所以我们拷贝过来,拷贝过来以后我们就是一啊,它就是一了,然后呢,我们接着往下,这个叫K1,这个K1呢,说的是我们关键词的一个什么,我们的参数,这个参数是我们的一个默认值1.2,所以我们这个是不用管它的,它是一个默认值。这个B呢,它说这是我们的一个长度的一个系数参数,那么0.75,它其实也是我们当前的啊,当前的啊,我们写上它,我们叫0.75啊,0.75意思呢,就是说你查询的关键字,它的长度跟我们当前文档的重要性的关系。什么意思呢?就举个最简单的例子吧,比方说我们的这个A对吧,我们的A很短,那么在我们的文档中会大量的出现,那你说它重不重要呢?它可能就没那么重要,对不对,它可能越长可能会越重要,对不对?诶,所以我们越长可能就会做越重要,所以啊,这就是一个长度的一个参数啊,这个咱们不用管它,它是有一个默认值的啊,0.75,好,我们继续。
05:09
咱们继续往下以后,它的这个地方说了有一个叫DL,这个DL呢,说的是我们的F的长度,这什么意思呢?它说的是你分解之后,你的那个分值的个数,大家可以看到我们这里就一个呀,那所以从这个角度来讲的话,那么我们这就应该是一,所以我们这就应该是一对吧,好,我们再往下看,往下看他说了这个表述的是我们的平均值,这个平均值是什么意思呢?是所有的我们的这个分词字段和总文件数的一个平均。用我们的总的字段数除以匹配的文档数,所以啊,这里给大家稍微说一下,这个是什么意思呢?是所有的那个build啊来它除以我们的document数量,所以我们现在我们的字段就一个,我们的文档就一个,所以它的结果是一,这是对的,好了,我们这里写上一个一,可以看到我们这里呢是多少呢?大概算一算啊,咱们这里也不能算那么精确嘛,我们这里是一加上1.2再乘以。
06:12
那括号里面我们是一减对吧?一减去这个是0.75,那么合在一块应该是我们的0.25了啊,0.25,然后再加上我们0.75对吧?0.75再加上我们的一对不对,没错吧?那么这样的话其实就是什么0.75好,那么它们俩合在一块不就是一吗?所以它就是一,如果它是一的话,大家想一想,那么我们一除以多少?我们的1.2加一,那不就是2.2吗?B啊,我们现在的分值呢,其实就应该是我们的什么,哎,我们一除以2.2,咱们算一下。好了,我们打开,咱们用一,咱们再除以2.2等于,你会发现它确实就是这个值,所以我们刚才的这个结果应该是没有问题的。但是有的同学说,老师我还不是很明白这些参数的含义,所以我们再把这个咱们再去做一下操作,做什么操作呢?咱们把这个文档再添加一个,但是这个时候我的文档啊,我发生点变化了,我发生什么变化呢?我再加一个,我们叫做big data大数据对吧?好,记住了,同学们,我现在又加了一个,我们现在给他执行,执行以后我还是查询同样的内容。
07:22
你查询同样的内容,我们点击它,你会发现我们的数值就发生了变化,发生了什么变化呢?同学们,我们的数值跟之前就不一样了,那么不一样我们就来区分一下,记住啊,我们这里还是来区分我们的TF,先不看别的啊,先不看别的来。我们看一看我们的这个TF啊,咱们在这儿。大家可以看到我们的第一个我们讲过了,它表述的是我们文档当中我们的关键词出现的次数是一没问题,所以我们的这个地方大家看拷贝过来,拷贝过来我们这里还是一是没有问题的好,那么一没问题的话,这个K1我说了,它是一个我们的默认值参数,我们写上它叫1.2。
08:06
然后后面这个呢,对我们长度的一个系数,这个是0.75也没问题,0.75对吧,这个呢,是我们的0.75也没有问题,好继续我们的这个点L呢,他说我们当前字段的长度,我们这个是不是还是一样,所以还是一没问题,所以它是一是对的,但是我们这个值有变化了。它的变化在哪了呢?是因为我们当前查询的文档应该有两个了,因为你符合条件的有两个,对不对,所以我们的这个document应该是二,它如果是二的话,那么好你分词了几个字段呢?大家会发现这是一个,这是一个,这是一个,我们当前有三个字端,所以我们的这个值应该是三,那么三个的话,三除以二,那么所以这个值应该是什么?1.5。所以大家可以看到它给的是1.5,其实是对的,如果它是1.5的话,大家算一算吧,我们把这个值咱们算一算,那么我们来啊一斜杠,我们写上一,再加上1.2,咱们再乘以,乘以以后这个是0.25,对吧?哎,再加上那什么呢?0.75乘以一,再除以1.5,这不就50%嘛,就0.5嘛,0.5,那么0.5的话,再合在一块,那不就是0.75嘛,所以我们这个地方应该是0.75对吧?0.75,好,0.75,再什么乘以1.2 OK,那我们算一下来。
09:32
把这个呢,我们给它清空啊,0.75再乘以1.2。那么好,它等于0.9,那么这样的话就等于是什么呢?用一再除以零,我们这里是0.9,那么一再加上0.9不是1.9嘛,那么好,我们现在看一看,我们的一除以啊,除以我们的1.9等于,等于的是我们0.526315526315,咱们确认一下。
10:02
咱们这边是526315对不对,诶差不多嘛,所以这样的话,说明我们的分析逻辑应该是没有问题的,那好,这是我们刚才说的第一个文档,那么我们第二个文档它也有评分呢,所以咱们接着往下。往下以后大家可以看到这个评分跟我们刚才的处理机制是完全一样的,只不过有一些变化了,变化在哪里了呢?我们再来啊,把咱们的这个值我们拷贝。拷贝以后大家看一下我们在当前的处理过程当中,我们的第一个。说了,在你当前的文档当中,这个关键词出现了多少次,那肯定是一次呀,对不对?好,如果出现了一次的话,那么下面的1.2和0.75是没有变化的,所以我们这里写上一,这里写上一,这个我们写上1.2。然后呢,我们这里写成0.75,都是完全一样的啊,0.0.75啊,这个呢,也是0.75,好了,0.75有了以后,这就问你了,你当前的这个内容分了几段啊,哎,咱们分了两段对不对,OK,所以它应该是个二,那么这里呢,它应该是个二。
11:07
然后呢,你的平均值是多少?我们说了有两个文档,然后呢有三段,那么1233除以二,那么是1.5,所以这个地方应该是1.5。那0.75带什么呢?乘以二再除1.5,那不用说了,这个肯定是什么呢?我们的一了对吗?那么一加一是二,二再减去0.75的话,那不就是1.25嘛,所以我们这里呢,就是我们的1.25啊1.25,那么1.25乘以1.2,咱们算一下来。咱们是1.25,再乘以1.2等于,那么是1.5,那么在这种情况下,大家可以看到我们这里呢,就是1.5加二,那么就是我们的2.5了。2.5的话,那么我们把这个去掉,我们一再除以我们的2.5,对吧,那么就等于0.4左右了,那么我们这里呢,可以去看一看,往上看,那么这里不就是0.4吗?所以啊,我们的这个TF就是这样的一个计算公式,我们大概的了解一下。
我来说两句