OPUSにある MultiUN データセットの英語からドイツ語への翻訳を含む TMX ファイルを読み込もうとしています。私のデータは次のようになります。
<?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
</tu>
426 行目を見ると、TMX ファイルのドイツ語翻訳の 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
非整合を無視する属性がこの問題を処理することを期待していましたが、そうではありませんでした。さらに、異なるしきい値を使用しても問題は解消されませんでした。この問題を処理する方法はありますか? タグの不一致をチェックし、それらを削除するかスキップして、クリーンなデータセットを使用できるようにするソリューションを探しています。