C tf idf何时使用哪个日志库?

C tf idf何时使用哪个日志库?,c,tf-idf,C,Tf Idf,我正在开发一个简单的搜索引擎,我使用TF-IDF公式来计算搜索词的重要性。我看到人们对公式使用不同的基础,但我看不出何时使用的解释。这有关系吗?你有什么建议吗 我当前的实现使用了math.h库的regular log()函数,这无关紧要,因为以下等式成立: log_a(x)/log_a(y) = log_b(x)/log_b(y) 您始终可以从一个基准转换为另一个基准。其实很简单。只要用这个公式: log_b(x) = log_a(x)/log_a(b) 工程师们通常喜欢2号和10号这样的底

我正在开发一个简单的搜索引擎,我使用TF-IDF公式来计算搜索词的重要性。我看到人们对公式使用不同的基础,但我看不出何时使用的解释。这有关系吗?你有什么建议吗


我当前的实现使用了math.h库的regular log()函数,这无关紧要,因为以下等式成立:

log_a(x)/log_a(y) = log_b(x)/log_b(y)
您始终可以从一个基准转换为另一个基准。其实很简单。只要用这个公式:

log_b(x) = log_a(x)/log_a(b)
工程师们通常喜欢2号和10号这样的底座。中场休息时2号很好,10号是我们的数字系统。数学的人更喜欢自然对数,因为它使微积分容易得多。函数
b^x
的导数是
k*b^x
,其中
b
是常数。但是如果
b
等于
e
(自然对数),那么
k
就是
1

假设您希望使用
log()
发送5.63的2对数。只需使用
log(5.63)/log(2)

如果需要,只需将此函数用于任意基:

double logb(double x, double b) {
    return log(x)/log(b);
}

工程师们为什么喜欢2和10,有什么原因吗?@Esye好吧,2非常适合中场休息,10是我们用来计算数字的基数。@Esye我修正了答案,所以现在它包含了不重要的真正原因。