You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IBM Model I算法不同迭代次数输出概率无变化问题求助

IBM Model I算法不同迭代次数输出概率无变化问题求助

各位大佬好!我最近在照着伪代码实现IBM Model I,本来觉得逻辑没问题,但运行时碰到了一个奇怪的问题——不管我设置多少迭代次数(比如传10次和100次进去),输出的翻译概率矩阵t都是完全一样的,而且我感觉这个结果本身也不太合理,实在摸不着头脑,想请大家帮我看看哪里出问题了😭

先给大家贴一下我的代码:

sentence_pairs = [
    (["Bugün", "dersimiz", "var"], ["Today","we","have","lecture"]),
    (["Yarın", "dersimiz", "yok"], ["Tomarrow","we","dont","have","lecture"])
]

e_vocab = []
f_vocab = []

for e_sentence, f_sentence in sentence_pairs:
    for e_token in e_sentence:
        if e_token not in e_vocab:
            e_vocab.append(e_token)
    for f_token in f_sentence:
        if f_token not in f_vocab:
            f_vocab.append(f_token)

def IBM_Model(num_iterations):
    t = {}
    for e in e_vocab:
        t[e] = {}
        for f in f_vocab:
            t[e][f] = 1.0 / len(f_vocab)
    
    while(num_iterations > 0):
        num_iterations -= 1
        count = {}
        total = {}
        
        for e in e_vocab:
            count[e] = {}
            for f in f_vocab:
                count[e][f] = 0.0  #for all e,f
            total[f] = 0.0 #for all f
        
        for (e_sentence, f_sentence) in sentence_pairs:
            s_total = {}
            for e in e_sentence:
                s_total[e] = 0
                for f in f_sentence:
                    s_total[e] += t[e][f]
            
            for e in e_sentence:
                for f in f_sentence:
                    count[e][f] += ( t[e][f] / s_total[e] )
                    total[f] += ( t[e][f] / s_total[e] )
        
        for f in f_vocab:
            for e in e_vocab:
                t[e][f] = count[e][f] / total[f]
    
    print(t)

IBM_Model(10)

我明明在循环里做了EM步骤:先初始化count和total,然后计算每个词对的期望计数,最后更新t矩阵,但为什么迭代10次和100次的输出完全一样呢?而且这个概率结果看起来也不符合预期,比如同一个目标语词汇对应的源语词汇概率分布好像不太对。

麻烦各位帮我排查下问题,谢谢啦!

备注:内容来源于stack exchange,提问作者Emin-35

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 15:34:37