【发布时间】:2015-04-27 23:00:44
【问题描述】:
我有一个子列表列表,每个子列表都包含一个或多个字符串。我将一个子列表中的每个字符串与其他子列表中的每个其他字符串进行比较。这包括编写两个 for 循环。但是,我的数据集是 ~5000 个子列表,这意味着我的程序会一直运行,除非我以 500 个子列表的增量运行代码。如何更改该程序的流程,以便我仍然可以查看与每个 i 对应的所有 j 值,并且能够为约 5000 个子列表运行该程序。 (wn 是 Wordnet 库) 这是我的代码的一部分:
for i in range(len(somelist)):
if i == len(somelist)-1: #if the last sublist, do not compare
break
title_former = somelist[i]
for word in title_former:
singular = wn.morphy(word) #convert to singular
if singular == None:
pass
elif singular != None:
newWordSyn = getNewWordSyn(word,singular)
if not newWordSyn:
uncounted_words.append(word)
else:
for j in range(i+1,len(somelist)):
title_latter = somelist[j]
for word1 in title_latter:
singular1 = wn.morphy(word1)
if singular1 == None:
uncounted_words.append(word1)
elif singular1 != None:
newWordSyn1 = getNewWordSyn(word1,singular1)
tempSimilarity = newWordSyn.wup_similarity(newWordSyn1)
例子:
Input = [['space', 'invaders'], ['draw']]
Output= {('space','draw'):0.5,('invaders','draw'):0.2}
输出是一个带有对应字符串对元组及其相似度值的字典。上面的代码sn -p 是不完整的。
【问题讨论】:
-
你能给我们一个小例子输入和预期输出
-
现在我明白你在做什么了......嗯......这可能很慢......
-
如果它很慢就可以了,但它几乎无法运行:(
标签: python for-loop nested large-data