基于Java的比率算法
假设我有一个巨大的单词列表和一个数组,其中填充了这些单词的随机组合。一个插槽可以容纳一个或多个单词,该插槽中的单词数量没有限制,并且单词可以重复。(当我说slot时,我指的是数组中满是标记为分隔的单词的字符串)
想象一个由所有可能的单词组成的网络,其中它们之间的接近程度取决于它们一起出现在插槽中的频率
例如,如果word1和word2一起出现的频率高于word3和word2,则它们的“接近度”变量应小于word3和word2之间的变量。我需要比率
我如何确定一个算法可以计算出网络中所有可能单词之间的“接近度”比率
# 1 楼答案
您可以使用相关频率:
其中
f(w1 and w2)
是两个单词出现的时隙数,f(w1 or w2)
是两个单词中至少有一个出现的时隙数。如果这两个词只同时出现,你会得到f = 1
。如果这两个词从未出现在一起,你会得到^{您可以通过
distance = k * (1 - f)
为某些比例因子k
轻松地将其映射到类似距离的值