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 ...
随机推荐
- Bootstrap3基础 table-bordered/hover 表格加外边框和鼠标悬停对应行的背景色加深
内容 参数 OS Windows 10 x64 browser Firefox 65.0.2 framework Bootstrap 3.3.7 editor ...
- mvc 之 RouteConfig配置
//这里没有使用对用的指定参数 /Day_1:表示解决方案的名称,意思是默认找到该项目解决方案目录下的controllers进行匹配 routes.MapRoute( "Default&qu ...
- UVA1329 Corporative Network
思路 用带权并查集维护到根的距离即可 代码 #include <cstdio> #include <algorithm> #include <cstring> #i ...
- Learning-Python【30】:基于UDP协议通信的套接字
UDP协议没有粘包问题,但是缓冲区大小要足够装数据包大小,建议不要超过 512 服务端: # 服务端 import socket server = socket.socket(socket.AF_IN ...
- VS工作目录,输出目录
C++项目,解决方案总文件夹下就只包含解决方案配置文件sln和一个项目总文件夹和一个Debug文件夹以及一个Release文件夹(共四个东东,其中Debug和Release文件夹中存放最终生成的结果e ...
- Series.str——字符串批量处理方法
针对dataframe中的某一行(或列)想做批量字符串处理时,可采用此方法 series.str.python内置的str方法 例如: series.str.replace('A','B') # ...
- 雷林鹏分享:jQuery EasyUI 数据网格 - 启用行内编辑
jQuery EasyUI 数据网格 - 启用行内编辑 可编辑的功能是最近添加到数据网格(datagrid)的.它可以使用户添加一个新行到数据网格(datagrid).用户也可以更新一个或多个行. 本 ...
- 『TensorFlow』one_hot化标签
tf.one_hot(indices, depth):将目标序列转换成one_hot编码 tf.one_hot(indices, depth, on_value=None, off_value=Non ...
- 完美解决xhost +报错: unable to open display "" 装oracle的时候总是在弹出安装界面的时候出错
详细很多朋友在装oracle的时候总是在弹出安装界面的时候出错,界面就是蹦不出来. oracle安装 先切换到root用户,执行xhost + 然后再切换到oracle用户,执行export DISP ...
- oracle 导出某用户下的表
exp test/test@orcl owner=test file=E:/all.dmp