如何在SRILM中实现基于监督类的语言模型?

时间:2018-05-08 12:25:49

标签: nlp speech-recognition srilm

我找到了一些教程,其中基于类的LM是使用布朗聚类实现的,只传递了你想要的类数,但我想实现一个基于类的模型,我最初给出了类赋值。 我试过这个http://projects.csail.mit.edu/cgi-bin/wiki/view/SLS/SriLM。但这给了LM中所有ngram的-99。 关于此问题的文档非常少,任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

我之前已经这样做了,但是几年前。让我看看我是否可以回顾你的步骤。

第一步是创建指定类的文件。它应该有三列。首先是类id,然后是给出类的那个单词的概率,最后是单词。

下一步是用他们的班级ID替换训练数据中的所有单词。您可以使用SRILM replace-words-with-classes脚本,也可以编写自己的脚本来执行此操作。

现在,您使用ngram-count训练语言模型,就像使用常规非类n-gram模型一样。

对于评估,您只需指定语言模型以及类文件。

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