You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

复现TF-IDF示例时乘法计算结果异常问题排查

问题分析与解决

嘿,我一眼就发现你代码里的关键错误了!你明明定义了正确的computeTFIDF函数,但最后计算TF-IDF的时候却误用了computeTF函数,这就是结果不符合预期的核心原因。

具体问题点

看你代码的最后两行:

tfidfBowA = computeTF(tfBowA, idfs)
tfidfBowB = computeTF(tfBowB, idfs)

这里你应该调用的是自己定义好的computeTFIDF函数,而不是重复调用computeTF!

为什么会出现0.020833这个错误值?

computeTF的逻辑是词频 = 该词出现次数 / 文档总词数,而你传入的tfBowA已经是计算好的TF值(比如"my"的TF是0.1666),再用computeTF处理的话,相当于又做了一次除法:0.1666 / 6 ≈ 0.020833,这正好是你看到的错误结果。

修正后的代码

把最后两行改成调用computeTFIDF:

tfidfBowA = computeTFIDF(tfBowA, idfs)
tfidfBowB = computeTFIDF(tfBowB, idfs)

验证修正结果

修正后,公共词(on、my、sat、the)的IDF值为0,乘以它们的TF值(0.1666)后结果就是0;而仅出现在单个文档的词(比如"cat"),TF值0.1666乘以IDF值0.6931,结果约为0.1155,完全符合你的预期输出。

内容的提问来源于stack exchange,提问作者Ullsokk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:38:50