A Language Modeling Approach to Predicting Reading Difficulty-paer
Volume:Proceedings of the Human Language Technology Conference of the North American Chapter of the Association for Computational Linguistics: HLT-NAACL 2004
Authors:Kevyn Collins-Thompson | James P Callan 、
Year:2004
Venues:NAACL | HLT
数据不公开:
550英文document,12个等级,448715个token,17928个type,来自不同主题
1 introduction
公式的方法~线性回归模型
我们的统计模型~
1)捕捉每个单词的更细节的特征~我们在更短的文章甚至小于10个单词时,准确率也很高
2)统计的方法可以获得概率分布,而不仅仅是一个预测
2 Description of Web Corpus
token定义为任何一个word的出现
type定义为一个word字符串,无论出现多少次也只算一次
数据:550英文document,12个等级,448715个token,17928个type,来自不同主题
我们的假设是:即使文本内容的主题不一样,单词的使用模式和文本的难度是有明显关系的
3 Related Work
之前的可读性评价依赖于两个主要因素:
1)the familiarity of semantic units(words or phrases)语义单元的熟悉度,如word或短语
2)the complexity of syntax. 句法的复杂
最为常用的是‘vocabulary-based measures’:
使用一个单词列表来估计语法难度,而不是number of syllables in a word,例如以下都是用单词列别的一些类型来估计语法难度
the Lexile measure (Stenner et al., 1988)
the Revised Dale-Chall formula (Chall and Dale,1995)
the Fry Short Passage measure (Fry, 1990).
--Lexile (version 1.0) uses the Carroll- Davies-Richman corpus of 86,741 types (Carroll et al., 1971);
--Dale-Chall uses the Dale 3000 word list;
Fry's Short Passage Measure uses Dale & O'Rourke's
--‘The Living Word Vocabulary’ of 43,000 types (Dale
and O'Rourke, 1981)
和Si and Callan(2001)这篇最早的也是唯一的使用语言模型的方法相比:
2001:只使用了science一个主题,分为3个难度,贝叶斯,没有实现特征选择方法的分析,所以并不知道它们的分类是是否将话题预测和难度预测混为一谈
我们:不限主题,12个难度等级,训练集更大,也使用贝叶斯,但是每个类别并不是独立的,我们使用了混合等级模型,大大提高了准确率。也没有把句子长度作业一个句法成分。测试了特征提取以及模型的泛化能力
4 The Smoothed Unigram Model
多项式和ngram的理解~~~~嘻嘻~~
4 The Smoothed Unigram Model
我们根据12个等级训练了12个语言模型,模型是基于unigrams,假设给定难度等级的情况下一个token的概率适合周围的token无关的。一个unigram语言模型是由types列表和它们各自的概率所定义的。即使这个一个weak model,它也能够比更复杂的模型用更少的数据训练,最后得到好的准确率。
4.1 Prediction with Multinomial Naïve Bayes
5 Implementation
5.1 smoothing
在测试集中会不包含训练集里的一些类型或者是很少出现,这就需要在训练的模型中采用smoothing。因此,我们调整了概率分布,将观察到的类型的概率转移一部分到没出现或出现很少的类型中。
首先对每个等级的模型分别做smoothing,使用了Simple Good-Turing smoothing;接下来,唉等级语言模型之间使用的smoothing。这不是标准的文本分类方法,标准的文本分类方法是要把每个类别独立对待的。然而对于文本难度而言,我们假设nearbygrade models是高度相关的,因此即使在一个grade的训练数据当中不包含某个类型,我们也可以通过interpolating
estimates from nearby grade models来估计出它的概率。例如,如果type w旨在至少一个grade语言模型中出现过,我们可以在所有grade models中用带有高斯核的回归来做,得到一个平滑值P(w|G)。如果w没有在任何模型中出现过,就是用传统的semantic变量,用一个type length的函数来估计。
5.2 Feature Selection
第一步是去除停用词,也就是频率最高的types。但是因为在难度较低的文本里,停用词占了大多数,所以我们不去除停用词。
第二步是移除低频词,也就是每个模型中出现次数少于2-5次的词。但是因为我们做平滑的时候是在模型之间做的,所以我们选择了在整个语料中出现次数少于3次的词。
不想普通的文本分类场景,我们也希望避免highly grade-specific的类型。例如,在grade3 model中出现频率非常高的一个type却从来没有在其他model中出现过,就更可能是site-specific noise而不是genuine vocabulary item。因此我们去除了grade低于3的model里的任何出现过的types,无论出现的频率有多么高。我们基于剩下的types的预测特定grade的能力来对剩下的types进行打分。我们使用了lag-odds ratio的形式,它对多项式贝叶斯分类器有很好的性能。
5.3 Implementation Specifics
为了降低prediction variance,对模型做了两个改变
1)没有选择可能性最大的grde语言模型,而是计算了top N结果的加权平均,N=2,权重是似然概率的相对差异
2)考虑到更长的文本中的vocabulary variation,我们把document分成了100token组成的passages。然后对每个passage做了一个grade预测。之前有人的工作表明,一个文本75%的理解率是一个理想的目标,所以我们选择占到75%分布的对应的geade level来获得最后的预测,必要的时候要用到插值。
6 evaluation
评估包括model的四个方面
1)衡量在web语料上训练的模型在别的以前没有出现过的语料上的泛化能力
2)passage长度对accuracy的影响
3)评估额外的训练数据对模型accuracy的影响
4)model在别的语言中的适用能力,实验中用的法语
6.1 Overall Accuracy and Generalization Ability
对比的accuracy:
我们的mdoel
UNK:text中unknown的比例
types:per 100-token passage里的type即unique单词的个数
MLF:passage和大语料的相对log平均概率
FK:FK公式
我们的分类器性能超过了上述semantic difficulty,但是没有捕捉到syntactic information
6.2 Effect of Passage Length on Accuracy
结果:我们的model用的ngram,对passage长度不那么敏感,更能够捕捉word级别的难度,例如即使两个词有一样多的音节且都在~语料中出现同样的次数,模型也能够根据每个单词的grade usage来区分难度
6.3 Effect of Training Set Size on Accuracy
6.4 Application to French Web Pages
通过figure4可以看出,在level低时预测的难度偏高,可能是由于取top2的平均导致bias。
7 discussion
1)smoothing大大降低了对每个grade model的训练数据的要求
2)我们对grade level的相对概率而不是绝对概率感兴趣,这样更为合理,因为绝对概率对不同主题的训练数据model拟合的太近了
3)have normalized incoming types to accommodate the morphology of a language, the same core classifier approach may still be applicable, at least for some family of languages.
A Language Modeling Approach to Predicting Reading Difficulty-paer的更多相关文章
- 斯坦福大学自然语言处理第四课“语言模型(Language Modeling)”
http://52opencourse.com/111/斯坦福大学自然语言处理第四课-语言模型(language-modeling) 一.课程介绍 斯坦福大学于2012年3月在Coursera启动了在 ...
- Recurrent Neural Network Language Modeling Toolkit代码学习
Recurrent Neural Network Language Modeling Toolkit 工具使用点击打开链接 本博客地址:http://blog.csdn.net/wangxingin ...
- RNN and Language modeling in TensorFlow
RNNs and Language modeling in TensorFlow From feed-forward to Recurrent Neural Networks (RNNs) In th ...
- 课程五(Sequence Models),第一 周(Recurrent Neural Networks) —— 2.Programming assignments:Dinosaur Island - Character-Level Language Modeling
Character level language model - Dinosaurus land Welcome to Dinosaurus Island! 65 million years ago, ...
- Language Modeling with Gated Convolutional Networks
语言模型 所谓的语言模型,即是指在得知前面的若干个单词的时候,下一个位置上出现的某个单词的概率. 最朴素的方法是N-gram语言模型,即当前位置只和前面N个位置的单词相关.如此,问题便是,N小了,语言 ...
- 【NLP】Conditional Language Modeling with Attention
Review: Conditional LMs Note that, in the Encoder part, we reverse the input to the ‘RNN’ and it per ...
- NLP | 自然语言处理 - 语言模型(Language Modeling)
转:http://blog.csdn.net/lanxu_yy/article/details/29918015 为什么需要语言模型? 想象“语音识别”这样的场景,机器通过一定的算法将语音转换为文字, ...
- 语言模型(Language Modeling)与统计语言模型
1. n-grams 统计语言模型研究的是一个单词序列出现的概率分布(probability distribution).例如对于英语,全体英文单词构成整个状态空间(state space). 边缘概 ...
- Language Modeling with Gated Convolutional Networks(句子建模之门控CNN)--模型简介篇
版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/liuchonge/article/deta ...
随机推荐
- zabbix链接规则
通过磁盘 Disk for discovery custom.vfs.dev.discovery 配置自动发现参考
- C#关于多线程及线程同步 lock锁的应用
Form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.D ...
- .Net中json序列化与反序列化
NuGet中下载Newtonsoft.Json插件. public class JsonHelper<T>{ public static string ModelToJsonString( ...
- 微信小程序开发学习记录
两天撸了一遍小程序的文档,跟网页相似,个人感觉是简化版.但是因为开放了很多微信自带的接口又使得部分功能开发起来相对方便 思维导图如下: 目前我的理解大概是这么个逻辑,以后深入学习后可能会有更改 跟着大 ...
- 《Visual C# 从入门到精通》第一章使用变量、操作符和表达式——读书笔记
前言: 这个笔记是我个人总结,主要是熟练自己查看<Visual C# 从入门到精通>(第8版)这本书时,懵然起总结的想法,只是总结一些知识点,在工作项目会用得上,但是对毫无C#语言基础的, ...
- maven 如何使用
以前没有用过maven管理过项目的依赖,最后使用上了maven,发现通过不能方式建立出来的web应用程序目录结构基本都不一样,既然每次都要到网上搜索如何建立maven管理的Web应用程序,不如自己找百 ...
- (19)ThreadPoolExecutor线程池
# 线程池 # 实例化线程池 ThreadPoolExcutor (推荐cpu_count*(n+1)) # 异步提交任务 submit / map # 阻塞直到任务完成 shutdown # 获取子 ...
- JAVA文件操作类和文件夹的操作代码示例
JAVA文件操作类和文件夹的操作代码实例,包括读取文本文件内容, 新建目录,多级目录创建,新建文件,有编码方式的文件创建, 删除文件,删除文件夹,删除指定文件夹下所有文件, 复制单个文件,复制整个文件 ...
- @RequestBody注解的参数仅仅读取一次的问题解决。
最近在写日志管理,想着使用拦截器加注解的方式,但是遇到了一个问题,就是如果使用@RequestBody注解接收的参数只能读取一次,造成了我在拦截器中如果接收了参数,在Controller层就接收不到了 ...
- Codeforces Round #349 (Div. 1)E. Forensic Examination
题意:给一个初始串s,和m个模式串,q次查询每次问你第l到第r个模式串中包含\(s_l-s_r\)子串的最大数量是多少 题解:把初始串和模式串用分隔符间隔然后建sam,我们需要找到在sam中表示\(s ...