我的程序有一个class Words
其中一个defaultdict(int)
命名t_e_f
的对象被创建为一个对象和一个函数,该函数main()
包含一个指向一个函数的指针,该函数使用字典't_e_f'的值来计算其他计算。't_e_f' 是一个字典,键为单词元组,值为浮点数。我的程序如下所示:
class Words:
def __init__(init):
self.t_e_f=Words.set_t_e_f(self)
def set_t_e_f(self):
raw_text_e=open_file('toyen')
raw_text_f=open_file('toyde')
tokens_e=raw_text_e.split()
tokens_f=raw_text_f.split()+['NULL']
tef_dict=collections.defaultdict(int)
for word_e in tokens_e_set:
for word_f in tokens_f_set:
tef_dict[(word_e,word_f)]=1/len(tokens_e_set)
return tef_dict
def get_t_e_f(self):
return self.t_e_f
def main():
words=Words()
t_e_f=words.get_t_e_f()
s_total_e=normalization(t_e_f)
然后我有一个normalization
函数,它接受t_e_f
并使用它来计算在规范化函数中创建的另一个字典的值的计算,s_total_e
.
def normalization(t_e_f):
s_total_e=collections.defaultdict(int)
words_sent_e=['the','big','book']
words_sent_de=['das','grosse','buch']
for item in words_sent_e:
s_total_e[item]
for item in words_sent_e:
for item_2 in words_sent_de:
s_total_e[item]+=t_e_f[(item,item_2)]
问题是,当t_e_f
传递给规范化时,所有值都设置为 0,因此会丢失创建 words 对象时设置的初始值。我想知道发生了什么以及如何解决这个问题。谢谢你。