我们最终决定保持英语模板搜索不变,并将所有非英语查询翻译成英语,而不是为每种语言构建单独的模板搜索。除了英语之外,我们没有其他语言的网站描述,如果我们将模板搜索实现与翻译分开,则更容易保持跨语言的模板搜索体验一致。作为额外的好处,由于 99% 的搜索查询只有一到两个单词,翻译问题大大简化了。这意味着逐个翻译单词可能就足够了,而不必翻译更长更复杂的短语。
翻译选项
我们尝试了多种方案,将搜索查询翻译成英文,以满足我们的用例。由 埃及 whatsapp 号码数据 5 万 于我们在现有搜索中使用了大量词汇,因此人工翻译服务并不理想。我们选择不使用付费的机器翻译服务,因为我们认为我们可以使用服务性能更好的开源解决方案在内部解决问题。
我们首先尝试使用Open Multilingual Wordnet 的双语词典,但词汇量有限,不适合我们的用例。然后,我们尝试使用神经机器翻译 (NMT) 模型,类似于付费机器翻译服务使用的模型,我们很快使用TensorFlow 的神经机器翻译在2016 年机器翻译大会的任务上实现了最先进的翻译。2 3 4 NMT 模型使用大型循环神经网络将单词序列从一种语言解码为另一种语言。尽管基于句子的翻译令人印象深刻,但在单个 GPU 上,每个语言对的训练时间需要两到三天,而我们真正需要的只是单词翻译。
为了找到更快的解决方案,我们研究了开源统计机器翻译模型,例如fast-align,该模型通过结合句子之间的单词对齐和单词对之间的转换概率来对翻译进行建模。1我们发现,在单词查询的基准测试中,fast-align 的翻译概率表与付费机器翻译服务和 NMT 模型的表现相当。Fast-align 的训练速度也比每个语言对的 NMT 模型快大约 24 倍。

我们最终决定采用 fast-align 作为我们的翻译 MVP,因为它易于使用且翻译基准性能良好。
使用 Fast-Align 学习翻译词典
为了使用快速对齐来学习翻译词典,我们从开放平行语料库下载了每种语言的 3000 万到 7000 万行平行数据。在清理和标记数据后,我们对所有语言对运行了快速对齐。1我们保存了单词对之间的转换概率,然后使用这些词典在现有模板搜索中将查询翻译成英语。