1
私はキー値のペアがそれぞれsentence_ID
とcluster_ID
の辞書を持っています。大きな辞書を使って反復処理を高速化する方法
これは形式である:{sentence_ID : cluster_ID}
例:合計で
my_id_dict:
{0: 71,
1: 63,
2: 66,
3: 92,
4: 49,
5: 85
.
.}
、私はsentence_IDs上200,000 100 cluster_IDsを有します。
私はmy_id_dict
をループして、の文章のリストを生成しようとしています。各クラスタの文番号はです。
出力例私がしたい:
ロジックは、各クラスタのために、辞書上のすべての20万にCLUSTER_IDのために、その後、文のリストを作成することです:これは私が使用したコードがある
Cluster 0
[63, 71, 116, 168, 187, 231, 242, 290, 330, 343]
Cluster 1
[53, 107, 281, 292, 294, 313, 353, 392, 405, 479]
値、dict値==現在のクラスタインデックスの場合は、センテンスリストにセンテンスIDを書き込みます。
100回続けます。
cluster_dict = defaultdict(list)
num_clusters = 100
for cluster in xrange(0,num_clusters):
print "\nCluster %d" % cluster
sentences = []
for i in xrange(0,len(my_id_dict.values())):
if(my_id_dict.values()[i] == cluster):
sentences.append(my_id_dict.keys()[i])
cluster_dict[cluster] = sentences
print sentences[:10]
これは動作しますが、非常に遅いです。私はこれを行うことができるより速い方法はありますか?