AG-MG Parallel Corpus
收藏数据集概述:Vecalign
核心功能
Vecalign 是一个句子对齐算法,具有以下特点:
- 高精度:能准确对齐平行语料中的句子。
- 高效性:即使对于超长文档也能快速处理。
- 多语言支持:结合 LASER 工具,可覆盖约 100 种语言(即约 100² 个语言对),无需依赖机器翻译系统或词典。
技术原理
- 多语言句子嵌入相似度:利用多语言句子嵌入向量的相似度判断句子是否对应。
- 近似动态规划:基于 快速动态时间规整(Fast Dynamic Time Warping),时间和空间复杂度与句子数量呈线性关系。
运行环境与构建
- 依赖:Python 3.6+、NumPy、Cython。
- 构建方式:通过 conda 创建环境并安装依赖包(如
cython、numpy、mcerp)。 - 注意事项:Vecalign 包含 Cython 代码,但通过
pyximport自动编译,无需手动构建。
使用方法
-
基本运行: bash ./vecalign.py --alignment_max_size 8 --src bleualign_data/dev.de --tgt bleualign_data/dev.fr --src_embed bleualign_data/overlaps.de bleualign_data/overlaps.de.emb
--tgt_embed bleualign_data/overlaps.fr bleualign_data/overlaps.fr.emb- 输出格式:
[source_index]:[target_index]:alignment_cost。 - 对齐成本包含归一化,但不含多句子惩罚项;插入/删除时成本设为 0。
- 结果因归一化的随机性可能略有差异。
- 输出格式:
-
带评分测试:
-
使用
-g参数指定参考对齐(gold alignment),-s、-t、-g可接受多个文件。 -
示例(Bleualign 测试集): bash ./vecalign.py --alignment_max_size 8 --src bleualign_data/test*.de --tgt bleualign_data/test*.fr --gold bleualign_data/test*.defr
--src_embed bleualign_data/overlaps.de bleualign_data/overlaps.de.emb
--tgt_embed bleualign_data/overlaps.fr bleualign_data/overlaps.fr.emb > /dev/null -
预期结果(接近论文):
| | Strict | Lax | | Precision | 0.899 | 0.985 | | Recall | 0.904 | 0.987 | | F1 | 0.902 | 0.986 |
-
-
嵌入自定义文档:
-
使用
overlap.py生成句子组合文件(支持多句连续拼接)。 -
示例: bash ./overlap.py -i bleualign_data/dev.fr bleualign_data/test*.fr -o bleualign_data/overlaps.fr -n 10 ./overlap.py -i bleualign_data/dev.de bleualign_data/test*.de -o bleualign_data/overlaps.de -n 10
-
推荐使用 LASER 工具进行句子嵌入,生成二进制浮点文件(float32 格式)。
-
注意:LASER 不会覆盖已有嵌入文件,必要时需手动删除旧文件。
-
扩展功能:文档对齐
- 方法:使用 Vecalign 对文档对齐候选进行重新评分,结合保留句子顺序信息的文档嵌入方法。
- 提供文档嵌入示例代码:
standalone_document_embedding_demo.py。
数据与许可
- 内置测试数据:Bleualign 的开发和测试数据集(德语-法语),已包含在仓库中。
- 许可协议:
- Vecalign 本身使用 Apache License 2.0。
- 提供的 Bleualign 数据使用 GNU General Public License Version 2。
引用论文
若使用 Vecalign,请引用以下论文:
- 句子对齐论文(EMNLP-IJCNLP 2019):Thompson & Koehn, 2019。
- 文档对齐论文(EMNLP 2020):Thompson & Koehn, 2020。




