一、如何评价语言模型的好坏
标准:比起语法不通的、不太可能出现的句子,是否为“真实”或"比较可能出现的”句子分配更高的概率
过程:先在训练数据集上训练模型的参数,然后在测试数据集上测试模型的效果。
要求:测试数据集与训练数据集完全不同
评价指标:用以评价模型的测试数据集上的效果
二、N-gram 模型的外部评测
1. 比较两个模型最好的评价方法:
- 将两个模型A和B应用于同一个任务:拼写检查、语音识别、机器翻译等
- 运行这个任务,分别得到A和B的准确性:有多少个拼写错误的单词被恰当的纠正了?或者有多少单词被准确翻译了?
- 比较A和B的准确率,哪个更高,哪个模型就更好
2. 难点
- 非常耗时,可能需要好几天甚至几个星期
三、N-gram 模型的内部评测
由于外部评测会非常耗时,所以我们有时候采用内部评测,也就是perplexity,其不需要任何其他的应用,只依赖于模型本身。
但是perlexity对于外部评测来说非常不好,除非测试数据跟训练数据非常相似,所以其一般只适用于预实验(中间实验)。
例1:预测下一个单词时,模型的表现如何?
当要求预测以上内容时,一个好的模型应该给实际上出现的答案分配更高的概率。
发现:unigrams在这个任务上非常不好。
一个最好的模型应该是能在非可见的测试数据集上预测最准的那个模型,即在给出的所有句子的概率中正确的句子的概率最高。
定义:Perplexity是测试数据集上的概率矩阵,并用来单词数做了归一化
要求:最小化perplexity,即PP(W)。实质上,跟要求最大化概率是一样的。
例2:识别数字‘0,1,2,3,4,5,6,7,8,9’有多难?
比如以上这个任务的perplexity就是10
定义:Perplexity是带权重的分支因子。
验证:
假定有一个句子是由N个随机数字组成,每个数字的概率是1/10,那么