3 日前、私は 3 つの言語を持つ並列辞書の構築について質問しました:いくつかのテキスト ペアの相違点を削除します
質問は次のとおりです。次の特性を持つ 2 つのファイル ペアがあります。
これらのペアの各ファイル間には、行ごとの対応があります。File1.txt と File3.txt は英単語であり、File2.txt と File4.txt はそれぞれアラビア語とフランス語の翻訳であるとします。さらに、File1.txt と File3.txt は非常に似ています (場合によっては同じです)。
File1.txt File2.txt
EnWord1 ArTrans1
EnWord2 ArTrans2
EnWord3 ArTrans3
Enword4 ArTrans4
File3.txt File4.txt
EnWord1 FrTrans1
EnWord3 FrTrans3
Enword4 FrTrans4
Enword5 FrTrans5
私がやりたかったことは、ペアの英語側を比較し、両方のファイル (EnWord1、EnWord3、および EnWord4) に現れる共通の単語を見つけ、対応する翻訳を除外することでした。要するに、英語-アラビア語と英語フランス語の 2 つのバイリンガル辞書を使用して、3 か国語の英語-アラビア語-フランス語辞書を構築しようとしていると言えます。
スティーブは私に答えて、重複した英単語を見つけて他の単語とその翻訳を削除するための素敵なコードを書きました:答えはここにあります
しかし、もう少し複雑な質問があります。別の言語を追加したい場合はどうすればよいですか? つまり、別の英露辞書 (File5.txt には英語のエンティティが含まれ、File6.txt にはロシア語のエンティティが含まれているとします) があり、3 言語の辞書ではなく 4 言語の辞書を作成したいと考えています。
1 つの方法は、現在のコードを使用して 3 言語の辞書を作成し、それを新しい言語ペアで再実行して 4 言語の辞書を作成することです。しかし、それは十分に効率的ではないと思います。この問題のより良い解決策になるでしょう。また、他の言語でいくつかの矛盾が生じる可能性があります。私の主な課題は、重複をチェックすることです。言語ペアが 2 つしかない場合、重複をチェックするのは非常に簡単です。しかし、3 組の重複を確認したい場合はどうすればよいでしょうか。1 回のパスで 4language 辞書を抽出できるようにコードを変更するにはどうすればよいですか?