0

我正在尝试加载一个 TMX 文件,其中包含在OPUS找到的 MultiUN 数据集的英语到德语翻译。我的数据如下所示:

    <?xml version="1.0" encoding="utf-8"?>
<tmx version="1.4.">
<header srclang="en"
    adminlang="en"
    segtype="sentence"
    datatype="PlainText" />
    <body>
        <tu>
            <tuv xml:lang="en"><seg>[ on the report of the Second Committee ( A / 60 / 496 and Corr.1 and 2 ) ]</seg></tuv>
            <tuv xml:lang="de"><seg>[ auf Grund des Berichts des Zweiten Ausschusses ( A/ 60/ 496 und Corr.1 und 2 ) ]</seg></tuv>
        </tu>
        <tu>
            <tuv xml:lang="en"><seg>Recalling its resolutions 52 / 169 M of 16 December 1997 , 53 / 1 H of 16 November 1998 , 55 / 44 of 27 November 2000 and 57 / 101 of 25 November 2002 ,</seg></tuv>
            <tuv xml:lang="de"><seg>unter Hinweis auf ihre Resolutionen 52/ 169 M vom 16. Dezember 1997 , 53/ 1 H vom 16. November 1998 , 55/ 44 vom 27. November 2000 und 57/ 101 vom 25. November 2002 ,</seg></tuv>
        </tu>

我正在尝试使用 translate-toolkit 包通过 python 加载它。我在另一个可以在这里找到的问题上找到了解决方案。

但是,在运行该代码以打印源和目标时,出现以下错误:

File "<string>", line 426
XMLSyntaxError: Opening and ending tag mismatch: body line 7 and tu, line 426, column 8

查看第 426 行,我发现 TMX 文件中的德语翻译不存在 tu 的英文段,并且有一个不匹配的</tu>元素,如下所示(我使用箭头-->指向不匹配的示例):

<tu>
    <tuv xml:lang="en"><seg>A.1 and corrigendum ) , chap I , resolution 2 , annex ) .</seg></tuv>
    <tuv xml:lang="de"><seg>E.03.II . A.1 und Korrigendum ) , Kap.</seg></tuv>
</tu>

--> <tuv xml:lang="de"><seg>I , Resolution 2 , Anlage ) .</seg></tuv>
</tu>

在手动检查 TMX 文件时,我注意到这个问题在整个文件中多次出现。opustools我使用Python 包通过以下命令创建了 TMX 文件:

opus_read -d MultiUnv1 -s en -t de -a certainty -tr 1.1 -ln -w simple.tmx -wm tmx -af de-en.xml -sz en.zip -tz de.zip -v

我曾希望-ln忽略非对齐的属性能够处理这个问题,但它没有。此外,使用不同的阈值并不能消除问题。有没有办法处理这个问题?我正在寻找一种可以检查标签不匹配并删除它们或跳过它们的解决方案,以便我可以使用干净的数据集。

4

0 回答 0