Python 在同一台机器上使用相同输入时,NLTK输出会发生变化
下一段代码使用相同的inputself.synset返回不同的输出 为什么会这样?我做错什么了吗?还是由python引起的Python 在同一台机器上使用相同输入时,NLTK输出会发生变化,python,python-3.x,nltk,Python,Python 3.x,Nltk,下一段代码使用相同的inputself.synset返回不同的输出 为什么会这样?我做错什么了吗?还是由python引起的 def FilterSynSets(self): self.filteredSysNets = {} for synset in self.SysNets: for subsynset in self.SysNets: length = wn.path_similarity(synset,subsynset)
def FilterSynSets(self):
self.filteredSysNets = {}
for synset in self.SysNets:
for subsynset in self.SysNets:
length = wn.path_similarity(synset,subsynset)
if not length is None\
and length !=1\
and length >0:
target = synset.__str__().replace("'","")
source =subsynset.__str__().replace("'","")
connection="\"{}\"->\"{}\" [label={}]".format(
target,
source,
str(round(length,3)))
self.filteredSysNets[connection] = length
oldLength = len(self.filteredSysNets)
avarageVal = sum(self.filteredSysNets.values())/len(self.filteredSysNets)
self.filteredSysNets = {k: v for k,v in self.filteredSysNets.items() if v>=avarageVal}
newLength = len(self.filteredSysNets)
prt = newLength/oldLength*100
print ("avr -{}\n old -{}\n new - {}\n prec={}".format(avarageVal,oldLength,newLength,prt))
return self
产出:
代码似乎是确定性的,因此我假设self.SysNets在运行之间会发生某种变化。Nope。self.Sysnets在input.BTW上总是相同的,它是synset而不是Sysnets=