蔡暢之
摘要: 近些年,人工智能和深度學(xué)習(xí)蓬勃發(fā)展,但在幫助學(xué)習(xí)者提高英語(yǔ)寫作方面應(yīng)用十分有限。本文首先介紹深度學(xué)習(xí),自然語(yǔ)言處理以及機(jī)器翻譯的相關(guān)背景和發(fā)展情況;接著介紹如何搭建遞歸神經(jīng)網(wǎng)絡(luò)的框架,獲取訓(xùn)練相關(guān)數(shù)據(jù),通過(guò)選擇序列到序列模型,得出可靠的結(jié)果,以增強(qiáng)英語(yǔ)寫作能力;最后討論本文中選擇數(shù)據(jù)以及搭建模型的優(yōu)點(diǎn)和缺點(diǎn)以及未來(lái)的研究改進(jìn)方向。
【關(guān)鍵詞】深度學(xué)習(xí) 自然語(yǔ)言
1 簡(jiǎn)介
隨著當(dāng)今國(guó)際間交流更加頻繁和深入,作為世界上應(yīng)用最廣泛的語(yǔ)言,英語(yǔ)已經(jīng)滲入到生活的方方面面,學(xué)習(xí)英語(yǔ)對(duì)于絕大部分非英語(yǔ)母語(yǔ)的學(xué)生們來(lái)說(shuō)都是必要的。而這其中,在英語(yǔ)學(xué)習(xí)以及國(guó)際性英語(yǔ)考試(如IELTS,TOEFL)中,寫作均占了很大的比例,達(dá)到考試總成績(jī)的25% - 35%。同時(shí),寫作和閱讀是息息相關(guān)的,在提高學(xué)生寫作水平的同時(shí),也會(huì)相應(yīng)地提高他們的閱讀水平。但當(dāng)今傳統(tǒng)的寫作批改和提高反饋大多是書面形式,一方面,由于繁重的教學(xué)任務(wù),很多英語(yǔ)教師對(duì)學(xué)生的反饋十分有限,另一方面,學(xué)生對(duì)老師給予的寫作反饋也馬虎對(duì)待,敷衍了事。所以開發(fā)幫助提高寫作水平的軟件就顯得十分必要。
對(duì)于非英語(yǔ)母語(yǔ)學(xué)生英語(yǔ)寫作的評(píng)改,在中國(guó)比較流行的為批改網(wǎng)( www.pigai.org),它是基于語(yǔ)料庫(kù)和云計(jì)算的英語(yǔ)作文自動(dòng)批改的在線服務(wù)。但該網(wǎng)站對(duì)于使用者輸入的英文語(yǔ)句目前僅限于指出作者的一些”語(yǔ)法錯(cuò)誤”或“詞匯,時(shí)態(tài)錯(cuò)誤”的問題,并不能判斷寫作水平的高低,以及給出修改句子的合理化建議,使表達(dá)更加地道,接近于母語(yǔ)表達(dá)者的習(xí)慣。
本設(shè)計(jì)基于深度學(xué)習(xí)(Deep Leaming),通過(guò)構(gòu)建遞歸神經(jīng)網(wǎng)絡(luò)( Recurrent NeuralNetwork)中的編碼器(Encoder)和譯碼器( Decoder),以及序列到序列(Sequence-to-Sequence)模型,使用Python語(yǔ)言和PyTorch工具,訓(xùn)練大量的英語(yǔ)母語(yǔ)者的寫作文本( txt),以及英語(yǔ)學(xué)習(xí)者的寫作文本,使機(jī)器可以判斷出英語(yǔ)學(xué)習(xí)者的寫作習(xí)慣以及英語(yǔ)母語(yǔ)表達(dá)者的習(xí)慣。這樣機(jī)器可以了解寫作者的常用錯(cuò)誤表達(dá)習(xí)慣,并且給出相應(yīng)的修改建議。使用者通過(guò)輸入自己寫作的的英文語(yǔ)句,同時(shí)收到更加地道的表達(dá)方式輸出反饋,通過(guò)這種方法,提高使用者的英文寫作水平。
2 背景
2.1 語(yǔ)言學(xué)背景
早在上世紀(jì)60年代末,Harris,D.P就曾提到過(guò):書面練習(xí)的要點(diǎn),靈活性,表達(dá)方式主要體現(xiàn)在詞匯量的積累,以及閱讀量的大小,以及實(shí)踐練習(xí)的情況,是從依賴到獨(dú)立的過(guò)程。Kroll,B也提到過(guò)寫作可以提高閱讀和應(yīng)用水平,增強(qiáng)語(yǔ)言的綜合能力。寫作對(duì)于語(yǔ)言的綜合應(yīng)用能力檢測(cè)起著至關(guān)重要的作用,既可以體現(xiàn)學(xué)生的詞匯積累量,也可以體現(xiàn)學(xué)生的表達(dá)能力。
2.2 自然語(yǔ)言處理
自然語(yǔ)言處理(NLP)是計(jì)算機(jī)科學(xué)的一個(gè)領(lǐng)域,它是人工智能的一個(gè)分支,幫助計(jì)算機(jī)理解人類語(yǔ)言的寫作和口語(yǔ),特別是如何對(duì)計(jì)算機(jī)進(jìn)行編程以成功處理大量自然語(yǔ)言數(shù)據(jù)。自然語(yǔ)言處理中的應(yīng)用方向通常涉及語(yǔ)音識(shí)別,自然語(yǔ)言理解和自然語(yǔ)言生成。
2.3 樸素貝葉斯( Nalve Bayes)
自然語(yǔ)言處理中,樸素貝葉斯被廣泛應(yīng)用在句子分類、詞匯頻率檢測(cè)等問題中。該方法基于貝葉斯原理(Bayes Theorem),特征條件相互獨(dú)立的模型。
根據(jù)貝葉斯原理,對(duì)一個(gè)分類問題,給定樣本特征x,樣本屬于類別y的概率是:
在這里,x是一個(gè)特征向量,將設(shè)x維度為M。因?yàn)榧僭O(shè)特征條件獨(dú)立,根據(jù)全概率公式展開,上述公式可以表達(dá)為:
如上式所示,只要分別估計(jì)出x^i在每一類的條件概率就可以。通過(guò)該式我們可以得出對(duì)應(yīng)的每一類上的,條件獨(dú)立的特征對(duì)應(yīng)的條件概率。樸素貝葉斯在自然語(yǔ)言處理中常被用于改正語(yǔ)法錯(cuò)誤之中。
以現(xiàn)代出版書籍作為語(yǔ)料庫(kù),使用“furthervs farther”方法,圍繞關(guān)鍵詞的詞標(biāo)記,對(duì)樸素貝葉斯公式進(jìn)行處理,使每個(gè)單詞在主關(guān)鍵字的左右1-2位[16]。借此發(fā)現(xiàn),單詞”furrher”和“farther”的使用均達(dá)到了較高的正確率,表1舉例說(shuō)明樸素貝葉斯概率結(jié)果。
如表1所示,樸素貝葉斯模型可以很好地糾正這些句子的語(yǔ)法。Tory等人以此統(tǒng)計(jì)學(xué)模型遍歷關(guān)鍵詞列表來(lái)完善功能更加齊全的語(yǔ)法檢查器,找出不易察覺的語(yǔ)法錯(cuò)誤,由此來(lái)改善語(yǔ)法。
2.4 RNN
與傳統(tǒng)的樸素貝葉斯模型及其它基于統(tǒng)計(jì)學(xué)的模型不同,遞歸神經(jīng)網(wǎng)絡(luò)(RNN)是一類人工神經(jīng)網(wǎng)絡(luò),單元之間的連接形成沿著序列的有向圖。這使得它可以表現(xiàn)時(shí)間序列的動(dòng)態(tài)時(shí)間行為。與前饋神經(jīng)網(wǎng)絡(luò)不同,RNN可以使用其內(nèi)部狀態(tài)(內(nèi)存)來(lái)處理輸入序列。這使它們適用于諸如未分割,連接手寫識(shí)別[4]或語(yǔ)音識(shí)別等任務(wù)。
遞歸神經(jīng)網(wǎng)絡(luò)有時(shí)不加區(qū)分地用于兩類具有類似結(jié)構(gòu)的網(wǎng)絡(luò),其中一個(gè)是有限沖動(dòng),另一個(gè)是無(wú)限沖動(dòng)。這兩類網(wǎng)絡(luò)都表現(xiàn)出時(shí)間動(dòng)態(tài)行為。有限脈沖遞歸網(wǎng)絡(luò)是一個(gè)有向無(wú)環(huán)圖,可以展開并用嚴(yán)格前饋神經(jīng)網(wǎng)絡(luò)代替,而無(wú)限脈沖遞歸網(wǎng)絡(luò)是一個(gè)不能展開的有向循環(huán)圖。
有限脈沖和無(wú)限脈沖周期性網(wǎng)絡(luò)都可以有額外的存儲(chǔ)狀態(tài),并且存儲(chǔ)可以由神經(jīng)網(wǎng)絡(luò)直接控制。如果存儲(chǔ)時(shí)間延遲或有反饋循環(huán),則存儲(chǔ)也可以由另一個(gè)網(wǎng)絡(luò)或圖形取代。這種受控狀態(tài)被稱為門控狀態(tài)或門控記憶,并且是長(zhǎng)期短期記憶(LSTM)和門控循環(huán)單元(GRU)的一部分。
2.5 序列到序列模型( Sequence to sequencemodel)
遞歸神經(jīng)網(wǎng)絡(luò)(RNN)有許多的變形,例如基本的序列到序列模型由兩個(gè)遞歸神經(jīng)網(wǎng)絡(luò)組成:處理輸入的編碼器和生成輸出的解碼器,圖1描述了這個(gè)基本架構(gòu):
圖1中的每個(gè)框表示RNN的小區(qū)(cell),最常見的是GRU小區(qū)或LSTM小區(qū)。編碼器和解碼器可以共享權(quán)重,或者更加常見的是,它們使用不同的參數(shù)集。
該模型的工作原理是通過(guò)多層LSTM將輸入序列映射為固定維度的向量,然后使用另一個(gè)深度LSTM從向量中解碼目標(biāo)序列。
序列到序列模型有很多應(yīng)用,比如說(shuō)谷歌公司將其應(yīng)用在改正外語(yǔ)語(yǔ)法方面。除此之外,序列到序列模型還有許多其他應(yīng)用,例如機(jī)器翻譯。
2.6 機(jī)器翻譯( Machine Translation)
機(jī)器翻譯是計(jì)算語(yǔ)言學(xué)的一個(gè)子領(lǐng)域,它主要研究使用軟件翻譯文本或從一種語(yǔ)言到另一種語(yǔ)言的轉(zhuǎn)化。
機(jī)器翻譯旨在將源語(yǔ)言句子找到最有可能的目標(biāo)語(yǔ)言句子,這些句子匹配到最相似的意思。實(shí)質(zhì)上,機(jī)器翻譯是序列到序列模型的預(yù)測(cè)任務(wù)。
神經(jīng)機(jī)器翻譯(NMT)如今常被作為一種先進(jìn)的方法,其潛力可以解決傳統(tǒng)機(jī)器翻譯系統(tǒng)的許多缺點(diǎn)。NMT的優(yōu)勢(shì)在于它能夠以端到端的方式直接學(xué)習(xí)從輸入文本到輸出文本的相關(guān)映射。其架構(gòu)通常由兩個(gè)遞歸神經(jīng)網(wǎng)絡(luò)( RNN)組成,一個(gè)用于消耗輸入文本序列,另一個(gè)用于生成翻譯的輸出文本。NMT通常伴隨著注意機(jī)制,這有助于它有效處理長(zhǎng)輸入序列。
Google公司對(duì)NMT技術(shù)進(jìn)行了相關(guān)改進(jìn),形成了GNMT系統(tǒng),它由一個(gè)深度的LSTM網(wǎng)絡(luò)組成,該系統(tǒng)有效改正了原來(lái)NMT對(duì)罕見詞語(yǔ)準(zhǔn)確性差,反應(yīng)慢的缺點(diǎn)。
3 方法
3.1 提升過(guò)程
如圖2所示,完成上部分流程,即得到數(shù)據(jù)并完成清理之后,我們將所整理好的的優(yōu)質(zhì)語(yǔ)料庫(kù)和較差語(yǔ)料庫(kù)放入寫好的序列到序列模型中,進(jìn)行訓(xùn)練,可以得到一定量的數(shù)據(jù)來(lái)進(jìn)行測(cè)試。在模型建立好同時(shí)訓(xùn)練集進(jìn)行相關(guān)訓(xùn)練得到數(shù)據(jù)之后,學(xué)生就可以進(jìn)行相應(yīng)的使用了:將自己的寫作語(yǔ)句進(jìn)行輸入,在此模型中即為測(cè)試集。
提升之后,我們獲得了提升后的結(jié)果,但受到模型和數(shù)據(jù)限制,其中可能包含一些語(yǔ)法錯(cuò)誤。所以相應(yīng)結(jié)果要對(duì)語(yǔ)法進(jìn)行改正,此處使用樸素貝葉斯公式進(jìn)行語(yǔ)法的相關(guān)改正。在進(jìn)行了一系列的修改和提高之后,我們就得到了最終的提升結(jié)果。
3.2 模型
本實(shí)驗(yàn)采用三層神經(jīng)網(wǎng)絡(luò)作為詞嵌入模型( Word Embedding)。因?yàn)檎Z(yǔ)料包中共有67055個(gè)詞類,詞嵌入模型的神經(jīng)網(wǎng)絡(luò)中輸入層有67055個(gè)神經(jīng)元,而神經(jīng)網(wǎng)絡(luò)中隱藏層每層均有1024個(gè)神經(jīng)元。
詞嵌入模型的輸出層即為序列到序列模型的輸入層。因?yàn)檎Z(yǔ)料庫(kù)中大部分語(yǔ)料在20單詞以下,訓(xùn)練過(guò)程只考慮小于20字的預(yù)料。在本文序列到序列模型中,編碼器和解碼器皆使用門控循環(huán)單元(GRU)。然而,編碼器使用了雙向循環(huán)結(jié)構(gòu),解碼器使用了注意力機(jī)制( Attention Mechanism),為防止深度模型過(guò)度擬合,在訓(xùn)練階段中解碼器使用dropout方法,其中dropout概率為0.5。測(cè)試階段時(shí),dropout方法被禁用。
本實(shí)驗(yàn)使用隨機(jī)梯度下降訓(xùn)練此深度模型。為防止梯度下降算法卡在局部最小值,隨機(jī)梯度下降的動(dòng)量設(shè)為0.9。訓(xùn)練起始時(shí),學(xué)習(xí)率設(shè)為0.001;算法每訓(xùn)練語(yǔ)料庫(kù)10次,自動(dòng)把學(xué)習(xí)率減半;共訓(xùn)練語(yǔ)料庫(kù)20次。
每次隨機(jī)梯度下降中,解碼器會(huì)隨機(jī)采用或不采用導(dǎo)師驅(qū)動(dòng)過(guò)程( teacher forcing)進(jìn)行訓(xùn)練。使用導(dǎo)師驅(qū)動(dòng)過(guò)程時(shí),模型將目標(biāo)序列轉(zhuǎn)變成相同的序列,但會(huì)偏移一個(gè)步長(zhǎng);不使用導(dǎo)師驅(qū)動(dòng)過(guò)程時(shí),解碼器只在生成
3.3 拼寫改正
拼寫改正的原理:使用編輯距離,測(cè)量?jī)蓚€(gè)字符串的差異長(zhǎng)度,看至少需要多少次的處理才能將一個(gè)字符串變成另一個(gè)字符串。在拼寫檢查中可以根據(jù)一個(gè)拼錯(cuò)的字和其他正確的字的編輯距離,判斷哪一個(gè)(或哪幾個(gè))是比較可能的字。
此處用來(lái)改正拼寫錯(cuò)誤的是萊溫斯坦距離,也是編輯距離的一種。例如,“kitten”和“sitting”之間的萊溫斯坦距離是3,因此以下三次編輯為將一次編輯后的結(jié)果再次編輯,并且此處編輯的次數(shù)不可能小于三次:
kitten—sirtenf用‘s取代'k')
sitten—sittin(用'i'取代‘e)
sittin—sitting(在最后加入‘g')
4 討論
4.1 優(yōu)勢(shì)
作為訓(xùn)練集的優(yōu)質(zhì)語(yǔ)料庫(kù),使用去年的《紐約時(shí)報(bào)》(New York Times)新聞。這些文章發(fā)表日期距現(xiàn)在最近,而且內(nèi)容均為當(dāng)今人們比較關(guān)注的話題,于此同時(shí),也是英文學(xué)習(xí)者寫作過(guò)程中可能遇到的話題,在當(dāng)下寫作中詞句出現(xiàn)的頻次相對(duì)而言更高,相關(guān)語(yǔ)料庫(kù)也更加有針對(duì)性。
同時(shí),在遣詞造句方面,新聞文章運(yùn)用了當(dāng)下比較常見的英文寫作習(xí)慣和單詞,段落較小,簡(jiǎn)單易懂,層次分明,避免了很多過(guò)時(shí)的拼寫和表達(dá)方式,同時(shí)減少了生僻詞出現(xiàn)的概率,訓(xùn)練也更加具有針對(duì)性。
在訓(xùn)練集的訓(xùn)練過(guò)程中,排除了標(biāo)點(diǎn)符號(hào)可能帶來(lái)的影響,以及其他錯(cuò)誤的單詞帶來(lái)的結(jié)果,使訓(xùn)練效果更好。
在提升的過(guò)程中,不僅考慮到了語(yǔ)言使用的提升,還對(duì)其他問題進(jìn)行了考慮,例如拼寫錯(cuò)誤的修改和語(yǔ)法錯(cuò)誤的修改,這些基礎(chǔ)性的改正可以使程序可以更好地運(yùn)行,避免因拼寫和語(yǔ)法錯(cuò)誤影響到最終的改進(jìn)結(jié)果。
與傳統(tǒng)寫作修改網(wǎng)站或軟件不同,該模型可以進(jìn)行全方位的提升,不僅限于修改語(yǔ)法錯(cuò)誤和拼寫錯(cuò)誤,更可以提升表達(dá)方式,使英語(yǔ)寫作更加接近母語(yǔ)表達(dá)者的習(xí)慣,而不僅僅停留在寫作沒有錯(cuò)誤的層面上。
4.2 缺點(diǎn)
受設(shè)備限制,本實(shí)驗(yàn)無(wú)法訓(xùn)練所有語(yǔ)料庫(kù)數(shù)據(jù),僅僅訓(xùn)練了其中的一小部分,對(duì)于學(xué)生來(lái)說(shuō)數(shù)據(jù)量可能無(wú)法滿足使用的需求。但我們已經(jīng)找到了正確的訓(xùn)練方向,若花費(fèi)更多時(shí)間,使用性能更佳的設(shè)備來(lái)訓(xùn)練,必能使該模型達(dá)到可以實(shí)際應(yīng)用的水準(zhǔn)。
在數(shù)據(jù)處理上,沒有區(qū)分大小寫,可能出現(xiàn)一些因?yàn)榇笮懺虍a(chǎn)生的歧義。但本模型僅僅是實(shí)驗(yàn)所用,提供了一種方法,若要投入學(xué)生正常使用,可作進(jìn)一步改進(jìn)。同時(shí),特殊標(biāo)點(diǎn)符號(hào)(比如破折號(hào),下劃線,星號(hào),等)并未被考慮進(jìn)模型,然而只需擁有足夠的訓(xùn)練集,本文提供的方法能夠輕易的把這些特殊符號(hào)收錄進(jìn)模型中。
5 總結(jié)
本文使用紐約時(shí)報(bào)數(shù)據(jù)以及谷歌翻譯軟件獲得訓(xùn)練數(shù)據(jù),并訓(xùn)練序列到序列模型幫助非英語(yǔ)為母語(yǔ)的學(xué)生修改寫作中出現(xiàn)的語(yǔ)法錯(cuò)誤。本實(shí)驗(yàn)為概念驗(yàn)證實(shí)驗(yàn),人工評(píng)判顯示序列到序列模型可以有效提升英文句子,然而模型結(jié)果仍然無(wú)法與人工修改結(jié)果媲美。本文給深度學(xué)習(xí)與自然語(yǔ)言處理指明了寫作提升算法的未來(lái)研究方向。當(dāng)訓(xùn)練樣本不足時(shí),研究人員可以考慮使用傳統(tǒng)自然語(yǔ)言處理方法;在二十一世紀(jì),人工智能與大數(shù)據(jù)時(shí)代,獲得訓(xùn)練樣本的難度顯著降低,在此基礎(chǔ)之上,序列到序列模型與遞歸神經(jīng)網(wǎng)絡(luò)能夠有效自動(dòng)提升英文寫作??梢灶A(yù)見在不久將來(lái),隨著深度學(xué)習(xí)的模型改進(jìn),自然語(yǔ)言處理算法的發(fā)展,與大量訓(xùn)練數(shù)據(jù)的獲得,全自動(dòng)的英文寫作提升算法能獲得快速的發(fā)展,而本文提供了未來(lái)研究的思路與方向。
參考文獻(xiàn)
[1]石曉玲,在線寫作自動(dòng)評(píng)改系統(tǒng)在大學(xué)英語(yǔ)寫作教學(xué)中的應(yīng)用研究以句酷批改網(wǎng)為例[J],現(xiàn)代教育技術(shù),2012: 22 (10): 67-71.
[2]張琪,基于句酷批改網(wǎng)的“英語(yǔ)基礎(chǔ)寫作”教學(xué)模式改革研究[J].當(dāng)代教育理論與實(shí)踐,2015 (12):122-124.
[3] Machiraju,S.,&Modi;,R.(2018). Na turalLanguage Proces sing. In DevelopingBots with Microsoft Bots Framework(pp. 203-232). Apress, Berkeley, CA.
[4] Graves,A.;Liwicki,M.;Fernandez,S. Bertolami,R.;Bunke,H.;Schmidhuber,J.(2009). "A NovelConnectionist System for ImprovedUnconstrained HandwritingRecognition" .IEEE Transactionson Pattern Analysis and MachineIntelligence. 31 (05).
[5]Sak, Ha s im; Senior, Andrew; Beaufays,F(xiàn)rancoise (2014). "Long Short-TermMemory recurrent neural networkarchitectures for large scaleacoustic modeling".
[6] Miljanovic, Milos
(Feb-Mar 2012)."Comparative analysis of' Recurrentand Finite Impulse Response NeuralNetworks in Time Series Prediction".Indian Journal of Computer andEngineering.3 (01).
[7] Sutskever,I.,Vinyals,0.,& Le,Q.V. (2014). Sequence to sequencelearning with neural networks.In Advances in neural informationprocessing sys tems (pp. 3104-3112).