Как реализовать управляемую классовую языковую модель в SRILM? - PullRequest
0 голосов
/ 08 мая 2018

Я нашел учебники, в которых LM на основе классов реализован с использованием кластеризации Брауна, пропуская только то количество классов, которое вам нужно, но я хочу реализовать модель на основе классов, в которой я изначально даю назначения классов. Я попробовал это http://projects.csail.mit.edu/cgi-bin/wiki/view/SLS/SriLM. Но это дает -99 всем нграммам в LM. По этому поводу очень мало документации. Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 09 мая 2018

Я делал это раньше, но это было несколько лет назад. Дай мне посмотреть, смогу ли я повторить шаги для тебя.

Первый шаг - создать файл с указанием классов. Он должен иметь три столбца. Во-первых, это идентификатор класса, затем вероятность этого слова для данного класса и, наконец, слово.

Следующим шагом является замена всех слов в данных обучения их идентификаторами классов. Вы можете использовать скрипт SRILM replace-words-with-classes или написать собственный скрипт для этого.

Теперь вы тренируете языковую модель, используя ngram-count, точно так же, как вы делали бы это для обычной неклассной модели с n-граммами.

Для оценки вы просто указываете модель языка, а также файл класса.

ngram -ppl test_data.txt -lm class.lm -classes class_definition_file.txt
...