改组两个文本文件中的行对

时间:2019-05-12 23:09:35

标签: nlp shuffle training-data

我正在一个机器翻译项目中,其中有EnglishGerman两种语言的450万行文字。在将数据划分为训练模型的分片之前,我想先对这些行进行混洗。我知道here中描述的shuf命令允许一个人对一个文件中的行进行混排,但是如何确保第二个文件中的相应行也被按相同顺序混排?是否有命令在两个文件中随机排列行?

1 个答案:

答案 0 :(得分:1)

TL; DR

  • paste可以将两个文件中的单独列创建为一个文件
  • shuf在单个文件上
  • cut拆分列

粘贴

$ cat test.en 
a b c
d e f
g h i

$ cat test.de 
1 2 3
4 5 6
7 8 9

$ paste test.en test.de > test.en-de

$ cat test.en-de
a b c   1 2 3
d e f   4 5 6
g h i   7 8 9

随机播放

$ shuf test.en-de > test.en-de.shuf

$ cat test.en-de.shuf
d e f   4 5 6
a b c   1 2 3
g h i   7 8 9

剪切

$ cut -f1 test.en-de.shuf> test.en-de.shuf.en
$ cut -f2 test.en-de.shuf> test.en-de.shuf.de

$ cat test.en-de.shuf.en 
d e f
a b c
g h i

$ cat test.en-de.shuf.de
4 5 6
1 2 3
7 8 9