我正在使用Kolmogorov-Smirnov和Jaccard的比率来确定2个文本单词列表之间是否存在相关性(列表的排名为1-n,每个列表中的项目数不同,每个列表中只有一些项目相同的列表,列表中没有重复的项目)
问题1 :应用这些统计算法Kolmogorov-Smirnov和Jaccard的比率的最佳方法是什么。
问题2 :用于计算文本列表统计信息的最佳语言和工具是什么?到目前为止,我所阅读的python经常用于Jaccards Ratio,而excel / python则用于计算Kolmogorov-Smirnov
任何可以提供的指导将不胜感激。 谢谢
Jaccards比率
我发现以下内容将Jaccard应用于文本字符串的完整列表 代码参考-How can I calculate the Jaccard Similarity of two lists containing strings in Python?
def jaccard_similarity(list1, list2):
intersection = len(list(set(list1).intersection(list2)))
print(list(set(list1).intersection(list2)))
union = (len(list1) + len(list2)) - intersection
return float(intersection / union)
但是我也发现了以下与各个字符串有关的内容 代码参考https://towardsdatascience.com/overview-of-text-similarity-metrics-3397c4601f50
def get_jaccard_sim(str1, str2):
a = set(str1.split())
b = set(str2.split())
c = a.intersection(b)
return float(len(c)) / (len(a) + len(b) - len(c))
Kolmogorov-Smirnov
代码参考https://kite.com/python/examples/704/scipy-compute-the-kolmogorov-smirnov-statistic-on-2-samples
像Wikipedia这样的相关输出显示了一个图表,所以我也不知道是否也应将其应用于列表中的每个项目,例如Wikipedia https://en.wikipedia.org/wiki/Kolmogorov%E2%80%93Smirnov_test
from scipy.stats import ks_2samp
x = [1, 2, 3, 4, 5]
y = [6, 7, 8, 9, 10]
ks_statistic, p_value = ks_2samp(x, y)
print(ks_statistic)
print(p_value)