您现在的位置是:首页 > 正文

aes key长度_AES 自动打分 Automated Essay Scoring

2024-02-01 04:21:42阅读 3

文章自动打分简称 AES (Automated Essay Scoring),AES 系统利用 NLP 技术自动对文章进行打分,可以减轻阅卷人员的负担。目前有不少大型的考试都采用了 AES 算法进行作文打分,例如 GRE 考试,GRE 考试会有一位阅卷老师和 AES 系统一起打分,如果 AES 的分数和阅卷老师的分数相差过大,才有再增加一位阅卷老师进行打分。本文主要介绍两种比较经典的自动打分算法。

1.前言

自动打分算法从优化目标或者损失函数来说大致可以分为三种:

  • 回归 Regression:可以把打分看成是回归问题,损失函数采用均方误差。
  • 分类 Classification:把打分看成是分类问题,例如文章打分是 0~10,则可以分成十一个类 0, 1, 2, ..., 10 进行分类学习,用交叉熵作为损失函数。
  • 偏好排名 Rank Preference:不直接预测文章的得分,而是预测文章之间的排名顺序。

传统的自动打分算法通常会人工设置很多特征,例如语法错误,N 元组,单词数量,句子长度等,然后训练机器学习模型进行打分。目前也有很多使用了神经网络的方法,通过神经网络学习出文章的特征。

下面介绍两种打分算法:

  • 回归+人工特征的打分算法
  • 神经网络的打分算法

2.回归+人工特征的打分算法

出自论文《Regression based Automated Essay Scoring》。给定很多需要打分的文章后,首先需要构造出文章的特征,用到了人工设置特征和向量空间特征。

2.1 人工设置的特征

拼写错误 Spelling Errors:使用 pyenchant 包统计出拼写错误单词数量占总单词数量的比例。

统计特征 Statistical Features:统计字符数量,单词数量,句子数量,段落数量,停止词数量,命名实体数量,标点符号数量 (反映文章的组织情况),文本长度 (反映写作流畅程度),不同词汇的数量与总单词数的占比 (反映词汇量水平)。

词性统计 POS count:统计各种词性出现的频率,例如名词,动词,形容词,副词等,词性通过 nltk 包获取。

语法流畅特征 Grammatical Fluency:使用 link grammar (链语法) 解析句子,然后统计 links 的个数;统计 n 元组出现的概率;统计词性 n 元组出现的概率。

可读性 Readability:可读性分数是衡量文本组织以及文本句法和语义复杂程度的一个指标。采用了 Kincaid 可读性分数作为一个特征,计算公式如下

5b46fa933161838c43165c01222a99ec.png

Kincaid 可读性分数

本体特征 Ontological Features:为每个句子打上标签,例如研究、假设、主张、引用、支持和反对等。

2.2 向量空间特征

可以将一篇文章投影到一个向量空间模型中 (VSM),此时文章可以用向量空间中的一个特征向量表示,例如可以用 one-hot 编码表示一篇文章,长度等于词汇表长度,如果一个单词出现在文章中,则对应的位置置为 1,如下:

2be5f0a82352615596b878b320ceb698.png

另外也可以使用 TF-IDF 向量表示文本,但是采用这种表示方式单词之间不存在任何关联,为了解决这个问题,文章中使用了一个单词相关性矩阵 W 加上线性变换从而引入单词之间的相关性。

0bf4ae5b343b9eda99ee1b4934cfac24.png

单词的相关性矩阵 W 通过 word2vec 生成的词向量计算,即 W(i,j) = 单词 i 和单词 j 词向量的余弦相似度。

最后,为了考虑文章中单词的顺序问题,将文章拆分成 k 个段落,然后分别计算向量空间特征,融合在一起。

2.3 回归模型

得到上述特征之后,采用 SVR 算法进行回归学习。数据集是 kaggle ASAP 比赛数据集,数据集包含 8 个集合的文章,评价指标采用 KAPPA 和相关系数,以下是一些实验效果。

65136550fe607c6257cc6fdb5e5a09ae.png

这是在 8 个集合上分别使用 linear kernel 和 rbf kernel 的效果。

55fba05db4d938fafe984ecfe8ec730e.png

这是和人类打分者的对比。

3.神经网络的打分算法

以下内容出自论文《Neural Networks for Automated Essay Grading》,可以采用回归或者分类的方法进行训练,模型如下图所示。

fb34c06139c7bd056b6781ba0415a886.png

3.1 文章的特征向量

论文中主要使用了三种方法构造出文章的特征向量:

  • 预训练的 Glove 词向量,对文章中所有单词的词向量求平均值,作为文章的特征向量。
  • TF-IDF,使用 TF-IDF 作为文章的特征向量,向量的维度等于词汇表单词数量。
  • 训练词向量,使用 Glove 词向量初始化,然后在训练网络的时候训练词向量。

3.2 损失函数

论文中主要用了三种神经网络结构,NN (前向神经网络),LSTM 和 BiLSTM。所有的网络都会输出一个向量 h(out),根据 h(out) 构造出损失函数,下面分别是回归和分类的损失函数。

回归损失

aa04bc810f579ffa05afb320a3233116.png

回归损失函数

分类损失

e18cfa8feb06de63727338ed3738f699.png

分类损失函数

3.3 神经网络模型

第一种模型:NN (前向神经网络)

使用了两层前向神经网络,网络输入的文章特征向量是 Glove 词向量的平均值或者训练的词向量平均值。h(out) 的计算公式如下。

6c685b09d9902f0d86aeb9c68015fdb1.png

第二种模型:LSTM

LSTM 模型接受的输入是文章所有单词的词向量序列,然后将 LSTM 最后输出的向量作为文章的特征向量 h(out)。

第三种模型:BiLSTM

因为文章通常比较长,单向的 LSTM 容易丢失前面的信息,因此作者也使用了 BiLSTM 模型,将前向 LSTM 和后向 LSTM 模型的输出加在一起作为 h(out)。

添加 TF-IDF 向量

以上模型的输出 h(out) 都可以再加上 TF-IDF 向量提升性能,首先需要对 TF-IDF 向量降维,然后和模型的输出拼接在一起,如下图所示 (BiLSTM 为例子)。

30f84b4014b70587e0032316fc5cd524.png

4.参考文献

《Regression based Automated Essay Scoring》

《Neural Networks for Automated Essay Grading》

网站文章

  • 图解TCP/udp及socket

    图解TCP/udp及socket

    TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的。 UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是属于TCP/IP协议族中的一种。 协议的关系图

    2024-02-01 04:21:36
  • 英文地址怎么写?!!

    北京市东花市北里20号楼6单元501室Room 501 ,Unit 6,Building 20 North Donghuashi Residential Chongwen District BeiJi...

    2024-02-01 04:21:29
  • Redis基本概念及发展历史

    redis NOSQL(not only SQL)数据库 Jedis是Redis在Java中的常用客户端(依赖包),提供多种方法操作redis 数据类型 类型 结构 string key(string...

    2024-02-01 04:21:00
  • java将网络资源url转换成File文件

    【代码】java将网络资源url转换成File文件。

    2024-02-01 04:20:54
  • 小白学习spring第二天

    小白学习spring第二天

    spring

    2024-02-01 04:20:46
  • 查看so文件的细节。

    一、readelf命令:https://man.linuxde.net/readelf二、strings命令:https://blog.csdn.net/xinqi53/article/details/9126475

    2024-02-01 04:20:12
  • HashMap 对于key是null值的存储

    https://www.jianshu.com/p/dfffb4b06d6e https://blog.csdn.net/fenglongmiao/article/details/79656198 HashMap 允许插入键为 null 的键值对。但是因为无法调用 null 的 hashCode() 方法,也就无法确定该键值对的桶下标,只能通过强制指定一个桶下标来存放。HashMap 使...

    2024-02-01 04:20:04
  • mysql时间类型长度是19位_mysql 时间字段用什么类弄,长度是多少

    mysql时间类型长度是19位_mysql 时间字段用什么类弄,长度是多少

    展开全部mysql时间字段用:Date、Datetime和Timestamp。(1)“Date”数据类型:用于存储没有时间的日期。e69da5e6ba9032313133353236313431303...

    2024-02-01 04:19:58
  • Bugly的使用 热门推荐

    Bugly的使用 热门推荐

    Bugly为解决开发者紧急修复线上bug,而无需重新发版让用户无感知就能把问题修复的一项能力。Bugly目前采用微信Tinker的开源方案,开发者只需要集成我们提供的SDK就可以实现自动下载补丁包、合成、并应用补丁的功能,我们也提供了热更新管理后台让开发者对每个版本补丁进行管理。第一步:添加插件依赖 工程根目录下“build.gradle”文件中添加:buildscript { repos

    2024-02-01 04:19:29
  • CORDIC算法的matlab和FPGA实现

    CORDIC算法的matlab和FPGA实现

    cordic算法:只用简单的移位、加减运算根据正余弦求角度,也可根据角度求正余弦,即求tan和arctan

    2024-02-01 04:19:21