翻译句子挖掘

Bitext 挖掘描述了在单语语料库中查找并行(翻译)句子对的过程。例如,您有一组英语句子

This is an example sentences.
Hello World!
My final third sentence in this list.

和一组德语句子

Hallo Welt!
Dies ist ein Beispielsatz.
Dieser Satz taucht im Englischen nicht auf.

在这里,您想要查找英语集和德语集之间的所有翻译对。

正确的(两个)翻译是

Hello World!    Hallo Welt!
This is an example sentences.   Dies ist ein Beispielsatz.

通常,您将此方法应用于大型语料库,例如,您想要查找英语维基百科和中文维基百科中的所有翻译句子。

基于边距的挖掘

我们遵循 Artetxe 和 Schwenk,第 4.3 节 中的设置,在两个数据集中查找翻译后的句子

  1. 首先,我们将所有句子编码为各自的嵌入。正如 我们的论文 中所示,LaBSE 是目前用于 bitext 挖掘的最佳方法。该模型已集成到 Sentence-Transformers 中

  2. 一旦我们拥有所有嵌入,我们就会找到两个方向上所有句子的 k 个最近邻句子。k 的典型选择在 4 到 16 之间。

  3. 然后,我们使用第 4.3 节中提到的公式对所有可能的句子组合进行评分。

  4. 得分最高的对最有可能是翻译后的句子。请注意,得分可能大于 1。通常,您必须找到一些截止值,您将忽略低于该阈值的对。对于高质量,约 1.2 - 1.3 的阈值效果很好。

示例

  • bucc2018.py - 此脚本包含 BUCC 2018 共享任务 的示例,该任务旨在查找并行句子。此数据集可用于评估不同的策略,因为我们知道哪些句子在两个语料库中是并行的。该脚本挖掘并行句子,然后打印导致最高 F1 分数的最佳阈值。

  • bitext_mining.py - 此文件读取两个文本文件(每行一个句子),并将并行句子输出到 *parallel-sentences-out.tsv.gz。

  • 用于 MT 的领域内数据选择 - 本文还使用 Sentence Transformers 为机器翻译系统生成/选择领域内并行数据——使用单语文本。