使用kenlm工具常见错误以及解决方案

在学习NLP过程当中,语言模型使我们都要学习的一部分知识。常用的N-gram训练工具有SRILM、IRSTLM、BerkeleyLM和KenLM等。

在使用kenlm的过程中也是遇到了许多问题。

环境的搭建:

参照博客:https://www.cnblogs.com/jasmine-Jobs/p/7214758.html

以上亲测有效,但是要熟悉的知道linux环境下的各种安装命令,因为作者当时给出的某些下载位置已经不存在

举例详解kenlm的原理:

参照博客:https://blog.csdn.net/asrgreek/article/details/81979194

说的非常详细,建议自己手写整个运算过程。

务必注意的是,按照作者给的命令运行(lmplz -o 2 --text [inputfile] --arpa [outputfile]),会出现如下错误:

要解决这个问题很简单(实际上kenlm已经说明了解决方法),

rerun with --discount_fallback

所以,改写运行命令为:lmplz -o 2 --discount_fallback --text [inputfile] --arpa [outputfile]

在运行,就能成功(bin/lmplz -o 2 --discount_fallback --text test.txt --arpa test.apra)

运行结果如下图:

打开生成的apra文件:

正确生成与上述作者博客相对应的效果(可能大家会注意到 作者的前两行是:ngram 1=6 ngram 2=7  和我的结果不一样,这是因为我在test.txt中的文本中的第二行 你我 之间没有空格,如果加上空格,就会和博客作者的效果一样,大家也可以自己是试一下)

posted @ 2019-08-26 13:31  叮当睡宝  阅读(1278)  评论(3编辑  收藏  举报