文章自動打分算法

文章自動打分簡稱 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 可讀性分數作為一個特徵,計算公式如下

文章自動打分算法

Kincaid 可讀性分數

本體特徵 Ontological Features:為每個句子打上標籤,例如研究、假設、主張、引用、支持和反對等。

2.2 向量空間特徵

可以將一篇文章投影到一個向量空間模型中 (VSM),此時文章可以用向量空間中的一個特徵向量表示,例如可以用 one-hot 編碼表示一篇文章,長度等於詞彙表長度,如果一個單詞出現在文章中,則對應的位置置為 1,如下:

文章自動打分算法

另外也可以使用 TF-IDF 向量表示文本,但是採用這種表示方式單詞之間不存在任何關聯,為了解決這個問題,文章中使用了一個單詞相關性矩陣 W 加上線性變換從而引入單詞之間的相關性。

文章自動打分算法

單詞的相關性矩陣 W 通過 word2vec 生成的詞向量計算,即 W(i,j) = 單詞 i 和單詞 j 詞向量的餘弦相似度。

最後,為了考慮文章中單詞的順序問題,將文章拆分成 k 個段落,然後分別計算向量空間特徵,融合在一起。

2.3 迴歸模型

得到上述特徵之後,採用 SVR 算法進行迴歸學習。數據集是 kaggle ASAP 比賽數據集,數據集包含 8 個集合的文章,評價指標採用 KAPPA 和相關係數,以下是一些實驗效果。

文章自動打分算法

這是在 8 個集合上分別使用 linear kernel 和 rbf kernel 的效果。

文章自動打分算法

這是和人類打分者的對比。

3.神經網絡的打分算法

以下內容出自論文《Neural Networks for Automated Essay Grading》,可以採用迴歸或者分類的方法進行訓練,模型如下圖所示。

文章自動打分算法

3.1 文章的特徵向量

論文中主要使用了三種方法構造出文章的特徵向量:

  • 預訓練的 Glove 詞向量,對文章中所有單詞的詞向量求平均值,作為文章的特徵向量。
  • TF-IDF,使用 TF-IDF 作為文章的特徵向量,向量的維度等於詞彙表單詞數量。
  • 訓練詞向量,使用 Glove 詞向量初始化,然後在訓練網絡的時候訓練詞向量。

3.2 損失函數

論文中主要用了三種神經網絡結構,NN (前向神經網絡),LSTM 和 BiLSTM。所有的網絡都會輸出一個向量 h(out),根據 h(out) 構造出損失函數,下面分別是迴歸和分類的損失函數。

迴歸損失

文章自動打分算法

迴歸損失函數

分類損失

文章自動打分算法

分類損失函數

3.3 神經網絡模型

第一種模型:NN (前向神經網絡)

使用了兩層前向神經網絡,網絡輸入的文章特徵向量是 Glove 詞向量的平均值或者訓練的詞向量平均值。h(out) 的計算公式如下。

文章自動打分算法

第二種模型:LSTM

LSTM 模型接受的輸入是文章所有單詞的詞向量序列,然後將 LSTM 最後輸出的向量作為文章的特徵向量 h(out)。

第三種模型:BiLSTM

因為文章通常比較長,單向的 LSTM 容易丟失前面的信息,因此作者也使用了 BiLSTM 模型,將前向 LSTM 和後向 LSTM 模型的輸出加在一起作為 h(out)。

添加 TF-IDF 向量

以上模型的輸出 h(out) 都可以再加上 TF-IDF 向量提升性能,首先需要對 TF-IDF 向量降維,然後和模型的輸出拼接在一起,如下圖所示 (BiLSTM 為例子)。

文章自動打分算法

4.參考文獻

《Regression based Automated Essay Scoring》

《Neural Networks for Automated Essay Grading》


分享到:


相關文章: