私のプログラムにはclass Words
、defaultdict(int)
namedt_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オブジェクトが作成されたときに設定された初期値が失われることです。何が起こっているのか、そしてこの問題をどのように解決するのか疑問に思いました。ありがとうございました。