Translated Sentence Mining

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

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.

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

基于 Margin 的挖掘

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

  1. 首先,我们将所有句子编码为各自的嵌入向量。正如 我们的论文 中所示,LaBSE 是目前用于双语文本挖掘的最佳方法。该模型已集成到 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 来生成/选择用于机器翻译系统的领域内平行数据——使用单语文本。