我有一個包含翻譯概率P(c | e)的雙語詞典(「概率」)。這是給定一個特定的英文單詞e的概率,翻譯將是一個特定的中文單詞c。字典鍵看起來像這樣:probabilities[chinese_word + " | " + english_word]
將最大值寫入字典而不覆蓋
我也有一個語料庫(「bitext」)的中文句子與他們的英文翻譯對齊。現在,對於每一對句子,對於每個中文單詞i,我想遍歷所有英文單詞j並選擇P(c_i | e_j)最高的單詞。我通過將變量argmax定義爲0來完成此操作,並在概率相同或更高時更新此變量。
這就是問題:一些c | e組合具有完全相同的轉換概率。但是,由於字典鍵必須是唯一的,因此我的代碼只存儲它所看到的最後一個c | e組合。如果它們共享最高的翻譯概率,我希望它能夠存儲幾個c | e組合。我該怎麼做呢?
alignments = {}
for k in range(1, number_of_sent+1):
sentences = bitext[k-1]
chinese_sent = sentences[0]
english_sent = sentences[1]
for i in range(len(chinese_sent)):
argmax = 0
for j in range(len(english_sent)):
if probabilities[chinese_sent[i] + " | " + english_sent[j]] >= argmax:
argmax = probabilities[chinese_sent[i] + " | " + english_sent[j]]
alignments[k, chinese_sent[i]] = english_sent[j]
謝謝你的幫助! – Johanna 2013-02-22 15:06:38