我有数千个表,每个表都包含数百个单词,以及它们在第二列中的相应分数。我需要计算每对表的相关性。
所以,我开始阅读每个表格,并将其转换为字典;每个单词都是一个字典键,它的分数就是值。
现在是计算相关性的时候了。我必须提到,不一定所有字典都有相同的键;多一些,少一些;每个字典都应根据其对进行扩展 - 意思是如果该对具有另一个不存在的某个键,则另一个字典应由这些键更新,并且这些键的值应为 0,最终必须计算相关系数.
例子:
dict1 = {'car': 0.1, 'dog':0.3, 'tiger':0.5, 'lion': 0.1, 'fish':0.2}
dict2 = {'goat':0.3, 'fish':0.3, 'shark':0.4, 'dog':0.3}
所以, dict1 应该看起来像:
dict1.comparable = {'car':0.1, 'goat':0.0 ,'dog':0.3, 'tiger':0.5, 'lion': 0.1, 'fish':'0.2, 'shark':0.0}
dict2.comparable = {'car': 0.0, 'goat':0.3, 'dog':0.3, 'fish':0.3, 'shark':0.4, ,'tiger':0, 'lion': 0}
然后应该计算它们的值的相关性。
我很欣赏如何根据字典的值有效地计算字典的相似性/相关性。
更新
这是一篇解释如何从技术上计算相关系数的帖子。
这是最简单的版本
import numpy
numpy.corrcoef(list1, list2)[0, 1]
但它只适用于“列表”。基本上,我在计算两个字典相对于它们的键的相关系数之后,以一种有效的方式。(更少的扩展和排序键)