Почему ngram-merge srilm принимает неправильный ввод?
Это мой первый пост здесь, и прошу прощения за мой плохой английский.
Я немедленно работаю над инструментами Kaldi и srilm для своих исследований, но я столкнулся со странной проблемой при использовании ngram-merge для слияния файлов 3-gram.count, созданных ngram-count. (ngram-count и ngram-merge - это два модуля в srilm)
Код, который я использовал в моем сценарии оболочки, показан следующим образом:
ngram-merge \
-write $dir_ngram/corpus_${ng}-gram.count \
$dir_ngram/glsp_poj_tlu.txt_${ng}-gram.count /
$dir_ngram/icorpus_tlu.txt_${ng}-gram.count /
$dir_ngram/khkp_tlu.txt_${ng}-gram.count /
$dir_ngram/nmtl_tlu.txt_${ng}-gram.count /
$dir_ngram/total_tlu.txt_${ng}-gram.count /
$dir_ngram/twbb_tlu.txt_${ng}-gram.count
в то время как $dir_ngram просто обозначает каталог файлов.count, а ${ng} здесь 3, поскольку я использую триграмму для моей языковой модели.
Но когда я запускаю эту часть кода, возникают ошибки, и они выглядят так:
/kaldi/egs/simple_20190520/source/ngram/icorpus_tlu.txt_3-gram.count: line 1: unk: No such file or directory
/kaldi/egs/simple_20190520/source/ngram/icorpus_tlu.txt_3-gram.count: line 2: syntax error near unexpected token `<'
/kaldi/egs/simple_20190520/source/ngram/icorpus_tlu.txt_3-gram.count: line 2: `<unk> <unk> 11844000'
/kaldi/egs/simple_20190520/source/ngram/khkp_tlu.txt_3-gram.count: line 1: unk: No such file or directory
/kaldi/egs/simple_20190520/source/ngram/khkp_tlu.txt_3-gram.count: line 2: syntax error near unexpected token `<'
/kaldi/egs/simple_20190520/source/ngram/khkp_tlu.txt_3-gram.count: line 2: `<unk> <unk> 449400'
/kaldi/egs/simple_20190520/source/ngram/nmtl_tlu.txt_3-gram.count: line 1: unk: No such file or directory
/kaldi/egs/simple_20190520/source/ngram/nmtl_tlu.txt_3-gram.count: line 2: syntax error near unexpected token `<'
/kaldi/egs/simple_20190520/source/ngram/nmtl_tlu.txt_3-gram.count: line 2: `<unk> <unk> 13706200'
/kaldi/egs/simple_20190520/source/ngram/total_tlu.txt_3-gram.count: line 1: unk: No such file or directory
/kaldi/egs/simple_20190520/source/ngram/total_tlu.txt_3-gram.count: line 2: syntax error near unexpected token `<'
/kaldi/egs/simple_20190520/source/ngram/total_tlu.txt_3-gram.count: line 2: `<unk> <unk> 11155390'
/kaldi/egs/simple_20190520/source/ngram/twbb_tlu.txt_3-gram.count: line 1: unk: No such file or directory
/kaldi/egs/simple_20190520/source/ngram/twbb_tlu.txt_3-gram.count: line 2: syntax error near unexpected token `<'
/kaldi/egs/simple_20190520/source/ngram/twbb_tlu.txt_3-gram.count: line 2: `<unk> <unk> 7575840'
Похоже, что ngram-merge взял первую строку файлов в качестве имени файла или каталога, поскольку символ unk является первой строкой каждого файла.count (например, icorpus_tlu.txt_3-gram.count):
<unk> 21952800
<unk> <unk> 11844000
<unk> <unk> <unk> 6161460
<unk> <unk> pó-tshî 660
<unk> <unk> pe̍h-liáu-kang 60
<unk> <unk> m̄-sī 3840
<unk> <unk> lîu-hîng 540
<unk> <unk> ē-sái 12900
<unk> <unk> uî-huat 1740
<unk> <unk> kín-tiunn 780
<unk> <unk> tâi-tiong-tshī 840
<unk> <unk> kuī 120
<unk> <unk> tsú-lâng 660
<unk> <unk> tsi̍t 38520
.
.
.
Символ unk и вторая строка файла.count появляются в первой и третьей строках сообщения об ошибке. Я не знаю, почему это происходит, потому что я думаю, что ngram-merge должен только открывать файл и начинать читать ngrams, а не обрабатывать контент как каталог для открытия. Еще одна странность заключается в том, что проблема "принять содержимое как каталог" возникает только для последних пяти файлов. Кажется, что первый файл вообще не имеет проблем с чтением или каталогом.
Я знаю, что могу просто объединить корпус вместе, так как весь корпус не слишком большой, но мне просто немного любопытно эта проблема. Кто-нибудь знает, как это решить?