所以,我正在创建两个随机词生成器,一个基于二元组,另一个基于三元组。在每种情况下,我都设置了一个字典(称为二元组,它有两个嵌套字典或三元组,它有三个嵌套字典)......还有很多其他代码,但这是导致问题的行三元组生成器:
#generates random phonemes
def generate_trigramphoneme(phoneme1, phoneme2):
rand = random.uniform(0,1)
**for phoneme3 in trigrams[phoneme1][phoneme2]:**
rand -= trigrams[phoneme1][phoneme2][phoneme3]
if rand < 0.0: return phoneme3
return phoneme3
其中变量“phoneme3”会产生本地未绑定错误。
但是,在这里,在我的二元组生成器(有效)中,变量“Following”很好,并且不会产生错误:
def generate_bigramphoneme(phoneme):
rand = random.uniform(0,1)
for following in bigrams[phoneme]:
rand -= bigrams[phoneme][following]
if rand < 0.0: return following
return following
我在eli bendersky的网站上查找了python中未绑定的本地错误,这有助于我理解错误,但我仍然不知道如何摆脱它,或者为什么bigram代码不会产生错误......