一、如何评价语言模型的好坏

  标准:比起语法不通的、不太可能出现的句子,是否为“真实”或"比较可能出现的”句子分配更高的概率

  过程:先在训练数据集上训练模型的参数,然后在测试数据集上测试模型的效果。

  要求:测试数据集与训练数据集完全不同

  评价指标:用以评价模型的测试数据集上的效果

二、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,那么

最新文章

  1. 基于WebDriverAgent代理服务,实现iOS手机app自动化测试的框架搭建
  2. Daily Scrum 10.27
  3. linux的命令
  4. Tomcat8.0.21登录时忘记用户名和密码
  5. 数据库SQL CRUD
  6. uva 1421
  7. viewpager+fragment学习笔记
  8. python模块介绍- HTMLParser 简单的HTML和XHTML解析器
  9. CMD(SA400 Command)
  10. js限制日期选择范围是两个月
  11. xcode编译报错unknown error -1=ffffffffffffffff Command /bin/sh failed with exit code 1
  12. 「洛谷3338」「ZJOI2014」力【FFT】
  13. ElasticSearch日常使用脚本
  14. 数据库部分(MySql)_1
  15. 【代码笔记】Web-JavaScript-JavaScript语法
  16. unity3d 给游戏添加音源 Unity3d adds a sound source to the game
  17. Windows 环境变量立即生效
  18. Linux:使用读写锁使线程同步
  19. JAVA学习笔记及知识积累
  20. Android图片加载框架最全解析(二),从源码的角度理解Glide的执行流程

热门文章

  1. Netflix Hystrix笔记
  2. MySQL使用全文索引(fulltext index)
  3. input输入时软键盘回车显示搜索
  4. <数据挖掘导论>读书笔记8FP树
  5. Android OpenGL教程-第二课【转】
  6. codeforces 638B—— Making Genome in Berland——————【类似拓扑排序】
  7. 深入理解JavaScript系列(38):设计模式之职责链模式
  8. CentOS下输入输出重定向
  9. Python基础学习总结(一)
  10. Linux+Git命令