Почему 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, а не обрабатывать контент как каталог для открытия. Еще одна странность заключается в том, что проблема "принять содержимое как каталог" возникает только для последних пяти файлов. Кажется, что первый файл вообще не имеет проблем с чтением или каталогом.

Я знаю, что могу просто объединить корпус вместе, так как весь корпус не слишком большой, но мне просто немного любопытно эта проблема. Кто-нибудь знает, как это решить?

0 ответов

Другие вопросы по тегам