gpt4 book ai didi

arrays - 设计指标的建议

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:12:31 26 4
gpt4 key购买 nike

我正在设计一个指标来衡量搜索词何时“模棱两可”。接近 1 的分数意味着它是模棱两可的(“Ajax”可以是一种编程语言、清洁解决方案、希腊英雄、欧洲足球俱乐部等),而接近 0 的分数意味着它非常清楚用户想要什么意思(“Lady Gaga”可能只意味着一件事)。此指标的部分是我有一个可能的解释列表以及这些解释来自过去数据的频率,我需要将其转换为 0 到 1 之间的数字。

例如:假设术语是“猫”——在一百万次试验中,850,000 次用户指的是会喵喵叫的毛茸茸的东西,80,000 次用户指的是那个名字的音乐剧,其余的都是事物的缩写意味着微不足道的次数。我会说这应该有一个低歧义分数,因为即使有多种可能的含义,但到目前为止,一个是首选的含义。相比之下,假设这个词是“ friend ”——在一百万次试验中,500,000 次用户指的是他们一直在一起的人,450,000 次他们指的是那个名字的电视节目,其余的是其他含义.这应该得到更高的歧义分数,因为不同的含义在频率上更接近。

TLDR:如果我按降序对数组进行排序,我需要一种方法来获取快速下降到接近 0 的数字的数组,以及下降较慢到接近 1 的数字的数组。如果数组是 [1,0,0,0...] 这应该得到满分 0 如果它是 [1/n,1/n,1/n...] 这应该得到满分共 1 个。有什么建议吗?

最佳答案

您要查找的内容听起来与 Entropy 非常相似信息论中的度量。它是衡量随机变量基于每个结果的概率的不确定性的指标。它由:

H(X) = -sum(p(x[i]) * log( p(x[i])) )

其中 p(x[i]) 是第 i 种可能性的概率。因此,在您的情况下,p(x[i]) 将是某个搜索短语对应于实际含义的概率。在猫的例子中,你会:

p(x[0]) = 850,000 / (850,000+80,000) = 0.914
p(x[1]) = 80,000 / (850,000+80,000) = 0.086
H(X) = -(0.914*log2(0.914) + 0.086*log2(0.086)) = 0.423

对于 Friends 案例,您将有:(假设只有一个其他类别)

H(X) = -(0.5*log2(0.5) + 0.45*log2(0.45) + 0.05*log2(0.05)) = 1.234

这里的数字越大意味着不确定性越大。

请注意,我在这两种情况下都使用以 2 为底的对数,但如果您使用等于可能性数的底数的对数,则可以得出 0 到 1 的比例。

H(X) = -(0.5*log3(0.5) + 0.45*log3(0.45) + 0.05*log3(0.05)) = 0.779

另请注意,最模棱两可的情况是所有可能性都具有相同的概率:

H(X) = -(0.33*log3(0.33) + 0.33*log3(0.33) + 0.33*log3(0.33)) = 1.0

最明确的情况是只有一种可能性:

H(X) = -log(1) = 0.0

因为您希望最模糊的项接近 1,您可以只使用 1.0-H(X) 作为您的指标。

关于arrays - 设计指标的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8981528/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com