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的更多相关文章

  1. 斯坦福大学自然语言处理第四课“语言模型(Language Modeling)”

    http://52opencourse.com/111/斯坦福大学自然语言处理第四课-语言模型(language-modeling) 一.课程介绍 斯坦福大学于2012年3月在Coursera启动了在 ...

  2. Recurrent Neural Network Language Modeling Toolkit代码学习

    Recurrent Neural Network Language Modeling Toolkit  工具使用点击打开链接 本博客地址:http://blog.csdn.net/wangxingin ...

  3. RNN and Language modeling in TensorFlow

    RNNs and Language modeling in TensorFlow From feed-forward to Recurrent Neural Networks (RNNs) In th ...

  4. 课程五(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, ...

  5. Language Modeling with Gated Convolutional Networks

    语言模型 所谓的语言模型,即是指在得知前面的若干个单词的时候,下一个位置上出现的某个单词的概率. 最朴素的方法是N-gram语言模型,即当前位置只和前面N个位置的单词相关.如此,问题便是,N小了,语言 ...

  6. 【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 ...

  7. NLP | 自然语言处理 - 语言模型(Language Modeling)

    转:http://blog.csdn.net/lanxu_yy/article/details/29918015 为什么需要语言模型? 想象“语音识别”这样的场景,机器通过一定的算法将语音转换为文字, ...

  8. 语言模型(Language Modeling)与统计语言模型

    1. n-grams 统计语言模型研究的是一个单词序列出现的概率分布(probability distribution).例如对于英语,全体英文单词构成整个状态空间(state space). 边缘概 ...

  9. Language Modeling with Gated Convolutional Networks(句子建模之门控CNN)--模型简介篇

    版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/liuchonge/article/deta ...

随机推荐

  1. 用python完成带有进度条的圆周率计算

    代码如下:import math import time scale= s,m,=, print("执行开始".center(scale//2, "-")) s ...

  2. shadows

    http://blog.51cto.com/11975865/2308030 https://www.jianshu.com/p/247cdbabf389 https://baijiahao.baid ...

  3. twitter ads_campaign management(图示)

    下载链接

  4. Python标准模块--concurrent.futures(进程池,线程池)

    python为我们提供的标准模块concurrent.futures里面有ThreadPoolExecutor(线程池)和ProcessPoolExecutor(进程池)两个模块. 在这个模块里他们俩 ...

  5. Promise 异步函数的加上外壳终止Promise

    //promise异步函数的请求终止 export default function markCancleble(promise){ let hasCanceled_ = false ; const ...

  6. Java内存分配机制

    内存分配,主要指的是在堆上的分配, 一般的,对象的内存分配都是在堆上进行,但现代技术也支持将对象拆成标量类型(标量类型即原子类型,表示单个值,可以是基本类型或String等),然后在栈上分配,在栈上分 ...

  7. springboot启动配置原理之二(运行run方法)

    public ConfigurableApplicationContext run(String... args) { StopWatch stopWatch = new StopWatch(); s ...

  8. Java ceil() 方法

    语法: double ceil(double d) double ceil(float f) 参数 double 或 float 的原生数据类型. 返回值 返回 double 类型,返回值大于或等于给 ...

  9. MVC实战之排球计分(六)—— 使用EF框架,创建Controller,生成数据库。

    在上篇博客我们写到,此软件的数据库连接我们使用的是EF框架,code first模式下, 通过模型类,在创建controller的时候直接生成数据库,完成数据库的连接,与操作. 在使用EF框架之前,我 ...

  10. 基于c#的windows基础设计(学习日记1)【关于异或运算】

    第一次接触异或运算,总体来说比哈希算法简单的多,无论是理解还是代码的难易度,唯一不好的是在固定了密钥之后,随机性就小了很多,所以安全性比起哈希算法还是有所差距. 原理在网站上很多都有所以就不再赘述了. ...