本文是《从自然语言处理到机器学习入门》系列课程的第二次作业,由于我的作业环境没有配好(配了n次了还是不行T_T),但是为了保证这一系列作业的完整性,于是经罗曜强律师同意,人工智能A7论坛授权,转载他的作业笔记。
1 基本要求
通过自己训练的语言模型编程,判断每句话中是否存在a an用错的问题(所谓用错 指a an用反了 比如 i have a apple是错误的; i have an apple 是正确的)
2 准备工作
(1)实验的环境Ubuntu16.04,Python 版本 2.7
(2)使用kenlm训练一个语言模型,首先要准备kenlm所需要的语料,按照http://kheafield.com/code/kenlm/官方文档上使用说明,训练的文件会被训练成.arpa的格式。
(3)训练模型:例如:我有名为test.txt的文件需要训练成kenlm指定的.arpa格式文件,训练后的文件为text.arpa,我需要在Ubuntu的Teminal终端使用如下命令进行训练:
-o Required. Order of the language model to estimate -o 5 代表使用5ngram
将arpa文件转换为binary文件,这样可以对arpa文件进行压缩,提高后续在python中加载的速度。
3 具体实验
做好上述前置准备工作后,接着就是在Python下运行text.arpa 主要分为以下几个步骤: