【发布时间】:2021-02-08 22:30:36
【问题描述】:
我正在尝试从头开始计算 IDF 值,以便了解它在幕后的工作原理,但仍然无法获得预期的结果。
我有一组这样的文件
docs = {'d1' :'t3 t3 t3 t6 t6',
'd2' :'t1 t2 t3 t3 t6',
'd3' :'t3 t3 t4 t5',
'd4' :'t4 t5 t6 t6',
'd5' :'t1 t2 t3 t5'}
我应该计算一个名为 query_sum_idf 的值,它表示请求中发送的令牌的 IDF 总和值,在本例中为 ['t5', 't2']
这种情况下的期望值是1.4271 ± 1.0e-04,但是在开发微积分时,这是我所做的,我得到了不同的结果:
math.log10(5 / float(3)) + math.log10(5 / float(2)) = 0.6197,其中5是文档总数,3是所有文档中t5的计数,最后2是所有文档中t2的计数。
正如你所看到的结果不同,所以我问我是否遗漏了什么。
【问题讨论】:
标签: python python-3.x nlp tf-idf