私は何千ものテーブルを持っており、それぞれに数百の単語と、それに対応するスコアが 2 列目に含まれています。そして、テーブルの各ペアの相関を計算する必要があります。
そこで、各テーブルを読み取り、それを辞書に変換し始めました。各単語は辞書のキーであり、そのスコアは値です。
今度は相関を計算します。すべての辞書が同じキーを持っているとは限りません。いくらか多め、少なめ。各ディクショナリはそのペアに従って展開する必要があります。つまり、ペアに他のキーに存在しないキーがある場合、他のディクショナリはそれらのキーによって更新され、それらのキーの値は 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]
ただし、「リスト」でのみ機能します。基本的に、私は効率的な方法で、キーに関する2つの辞書の相関係数を計算した後です。(キーの展開と並べ替えの量が少ない)