1

最近,我被分配为一个新项目构建翻译记忆库。这个想法是 TM 是 RPC 层之上的一个缓存层,如果 TM 中没有匹配项,它将调用 Google Translate API 进行翻译。我考虑使用源文本作为 TM 中的键,我需要一个模糊匹配算法来匹配查询文本和 TM 中的键。如果结果高于某个阈值,例如 0.85(范围为 0 到 1),则将使用缓存的翻译文本,而不是调用 google 服务。

我已经阅读了很多文章/博客/论文,但仍然不知道从哪里开始。TD-IDF+余弦相似度似乎不够好?莱文斯坦距离?语义相似度如何?但是怎么做?

我在评论中读到了这一点 ,@mbatchkarov 似乎提供了一个正确的方向。

有没有人在这个问题上有类似的经验?欢迎任何建议。

4

1 回答 1

1

很多时候,您链接到的问题的公认答案可以让您走得很远。您可以比较查询和缓存中所有查询之间的单词(引理)重叠。为了提高性能,您可以合并单词相似度来帮助您链接语义相似的单词。我在我的链接中链接的词库构建软件是 BSD 许可的,因此您可以随意使用它。如果您在使用它时需要任何帮助,开发人员(免责声明:我是团队的一员)将很乐意提供帮助。事实上,我有一些预先构建的叙词表。这些可能应该是软件的一部分,但是它们太大而无法上传到 github。

无论您采用哪种方法,请注意,在很多情况下这种方法效果不佳。这是因为该问题中讨论的方法是关于语义相似性的,您的应用程序可能需要语义等价。例如,“我喜欢大姜猫”和“我们喜欢大姜猫”或“我们喜欢小姜猫”在含义上非常相似,但将其中一个的翻译用作另一个的翻译是错误的。

于 2014-02-21T11:40:04.917 回答