王夢雪 李 俊 賈清源 費 騰
(武漢大學資源與環(huán)境科學學院 湖北 武漢 430079)
創(chuàng)意寫作是在英美高校非常普遍的一門課程,它以一種具有想象力的、獨特的又賦有詩意的方式表達作者的思想情感。近年來,國內已有幾所大學開設創(chuàng)意寫作課程。在創(chuàng)意寫作學習過程中,學生需要閱讀大量優(yōu)秀的英文作品,因此,合適的參考書目尤為重要。如何滿足不同用戶的需求,在海量參考文獻中為每個用戶提供精準的、個性化的參考書目,并通過在線推薦系統(tǒng)進行實時推薦,是本文研究的目的所在。
推薦系統(tǒng)是能夠為用戶提供所需產(chǎn)品信息建議的軟件工具和技術手段[1]。目前各平臺采用的推薦系統(tǒng)算法主要是基于內容的推薦算法和基于協(xié)同過濾的推薦算法[2]?;趦热莸耐扑]算法的主要思想是為用戶推薦與他們所喜歡的產(chǎn)品內容相似度最高的產(chǎn)品[3],對于文本相似性,可以通過提取文本特征來度量,主流的方法是利用TF-IDF詞頻統(tǒng)計算法提取詞頻特征[4]。除此之外,本文提出用易讀性作為文本特征的另一個指標,其大小用Flesch易讀性公式[5]衡量,Microsoft Word就是應用Flesch公式來計算文本易讀性的[6]?;趨f(xié)同過濾的推薦算法是使用最廣泛的推薦技術,其中基于物品的協(xié)同過濾被認為是相對穩(wěn)定的算法[7-8]。通過計算待推薦產(chǎn)品與用戶已評分過的產(chǎn)品間的相關性對產(chǎn)品進行評分預測,從而將預測評分高的產(chǎn)品加入推薦列表。然而,無論是基于內容的推薦算法還是協(xié)同過濾,都有自身的優(yōu)點和缺陷,針對這一點,許多學者提出同時使用這兩種方法以解決冷啟動問題,提高精度[9-10]。
本文結合基于內容和基于產(chǎn)品的協(xié)同過濾推薦算法設計并實現(xiàn)了一個基于動態(tài)參考書目推薦的英語創(chuàng)意寫作輔助教學系統(tǒng)。首先利用基于內容的推薦實時向用戶推送相似文體和文風的參考文章,并通過多用戶協(xié)同過濾的推薦,不斷提高系統(tǒng)推薦的準確率。該系統(tǒng)不僅能應用于在線創(chuàng)意寫作平臺,還能應用于新聞、微博、商品信息、旅游文記、論文期刊等其他個性化文檔推薦的項目中。
圖1展示了構建英語創(chuàng)意寫作動態(tài)參考書目推薦在線系統(tǒng)的研究框架。該系統(tǒng)分三個模塊進行構建:底層數(shù)據(jù)庫模塊、中層推薦算法模塊和頂層的用戶模塊。數(shù)據(jù)庫模塊存儲有文本特征數(shù)據(jù)和用戶信息數(shù)據(jù);推薦算法模塊進行基于內容和基于協(xié)同過濾的混合推薦;用戶模塊用于前端交互,主要涉及賬號密碼、用戶文章、推薦文章等的輸入或輸出和其他交互操作。
圖1 創(chuàng)意寫作動態(tài)參考書目推薦系統(tǒng)的研究框架
該推薦系統(tǒng)的運行流程如圖2所示。在系統(tǒng)投入使用之前要對文庫文章進行預處理,分析所有文章的詞頻特征和易讀性特征,將特征值存儲在底層數(shù)據(jù)庫中。推薦過程分為兩部分:一是基于文本的內容推薦,用戶輸入文章片段后,在線分析該文本的詞頻和易讀性特征并與文庫中文章的特征值比較,計算二者的相似度并將結果排序,輸出相似度高的文章列表;二是基于物品的協(xié)同過濾推薦,用戶查看推薦的文章后,構成瀏覽記錄,對用戶的瀏覽記錄進行分析處理,計算文章之間的支持度和置信度,基于此,判斷某些文章的關聯(lián)度并對關聯(lián)度進行排序,輸出與用戶瀏覽記錄關聯(lián)度高的文章列表,作為對基于文本內容推薦的補充。
圖2 創(chuàng)意寫作動態(tài)參考書目推薦系統(tǒng)的運行流程
基于內容的推薦需要計算用戶內容和產(chǎn)品內容之間的相似度,在大多數(shù)情況下需要對描述內容的信息進行分析,其中對用戶興趣的描述來自用戶自己提供的信息[11]。本文在基于內容的推薦中,從特征詞頻相似性方面判斷用戶提供的片段與文庫文章是否相似,并輔佐以易讀性差異計算進一步衡量相似度。本文先用TF-IDF算法計算輸入片段的詞頻特征,然后計算輸入片段和文庫文章排名較高的前100個詞的TF-IDF值的余弦相似度,再計算輸入片段的易讀性,將它與文庫文章的易讀性進行差值計算,最后對二者的計算結果加權,得到最終的結果。
根據(jù)空間向量模型,一個文件空間中的文件可以看作一組特征值的集合,統(tǒng)計每個特征詞的出現(xiàn)頻率。將詞頻信息表示成向量模式,該向量就是文本的特征向量,進而可以利用向量間的余弦相似度計算或者Jaccard公式得到文本相似度。
選取特征詞最常用的方法是TF-IDF算法。TF-IDF通過統(tǒng)計文件中每個單詞在該文件的出現(xiàn)頻率和在所有文件中的出現(xiàn)頻率,給該文件中每個單詞賦權值,TF指詞頻,IDF指逆向文件頻率[12]。TF-IDF衡量的是給定單詞與一篇特定文件的相關性,若一個單詞的TF-IDF值高,那么該單詞在一個特定文件中出現(xiàn)頻率高而在該文件集中出現(xiàn)頻率相對低,說明該單詞具有很好的類別區(qū)分能力[13],將它們作為標識該文件的特征詞。這樣做的目的是找到衡量文章內容相似性的可靠依據(jù),一篇英語文章中無意義的介詞出現(xiàn)頻率一般會比具有實際含義的動詞或名詞高。如果單純按一篇文章的最高詞頻計算,那么所有文章的特征詞都會充斥著大量的介詞、冠詞、連詞,甚至是無意義的名詞和動詞。而TF-IDF算法的作用則能降低停止詞的權值,提高實義詞的權值,篩選出一篇文章中獨有且出現(xiàn)次數(shù)多的單詞,提高相似性計算的準確率。
TF-IDF算法計算過程如下:設一個文件集中有N個文本文件,fij為標識為i的單詞在文件j中的出現(xiàn)頻次,那么詞頻TFij定義如下:
(1)
TFij是fij標準化得到的結果,標準化過程是fij除以一個文本文件中所有單詞的最大頻率值。所以,文件j中出現(xiàn)次數(shù)最多的單詞的TF值為1,其他單詞的TF值都小于1。
設單詞i在ni個文件中出現(xiàn)過,那么IDFi定義如下:
(2)
若一個文件j有m個不同的項,那么該文件的內容可以表示為m維向量:
dj=(w1j,w2j,…,wmj)
(3)
式中:
(4)
dj即為文件的特征向量,用這個值來計算文件之間的相似度。在基于內容的推薦系統(tǒng)中,用ContentBasedProfile(c)表示用戶特征,用Content(s)表示產(chǎn)品特征[14],有如下所示計算該相似性的函數(shù):
u(c,s)=score(ContentBasedProfile(c),Content(s))
(5)
其中score的計算方式有很多,本文使用夾角余弦相似法,因為該方法計算簡便,且能夠得到較為精確的結果。該方法是用向量空間中兩個向量夾角的余弦值衡量兩個對象之間的相似度,計算方法如下:
(6)
兩個特征向量的夾角余弦值越大,向量之間的夾角就越小,說明兩個文本文件越相似。
本文先統(tǒng)計文章的單詞詞頻,取頻次最高的若干個單詞,然后用TF-IDF算法從中篩選出100個能標識該文章的特征單詞。將這些單詞的TF-IDF值作為文章的特征向量,計算出文庫文章和輸入語句特征向量的夾角余弦值,得到的結果即為二者的詞頻相似度,作為評價文檔相似性的一個指標。
易讀性用來衡量文章難度,本文將它作為另一個文本特征,使用Flesch公式計算文本的易讀性。該公式用單詞音節(jié)數(shù)衡量單詞難度,用文本的平均句長衡量句子的難度。
Flesch易讀性公式形式如下:
ReadingEase(RE)=206.835-0.846wl-1.015sl
(7)
式中:wl為每100個單詞的平均音節(jié)數(shù);sl為句子的平均單詞數(shù);RE代表易讀性指數(shù),范圍為0~100。RE值越大,文本越容易,RE值在0~30被認為很難,是美國大學生水平,60~70被定義為標準難度,相當于初中生水平。
本文對文庫文章和輸入語句的單詞平均音節(jié)數(shù)和句子平均單詞數(shù)進行統(tǒng)計,用Flesch公式計算出用戶輸入和文庫文章的易讀性差值,作為評價文檔相似性的另一個指標。
通過對文本信息的分析計算,得到詞頻相似度和文章易讀性兩個指標。本文在決定最終的計算公式時,采用熵權法[15]確定這兩個指標的權重系數(shù)。
設詞頻特征相似度結果的權重系數(shù)為a,易讀性差異計算結果的權重系數(shù)為b,可得到用戶輸入片段和文庫文章的相似度的計算公式:
sim(c,s)=a×u(c,s)+b×|REc-REs|=
(8)
式中:sim(c,s)表示用戶輸入片段與文庫文章的相似度,將相似度結果從大到小排序,優(yōu)先推薦相似度高的文章。
在基于物品的協(xié)同過濾推薦中,分析每次推薦后產(chǎn)生的用戶喜好數(shù)據(jù),如果多個用戶同時看了某些文章,可以判斷這些文章存在著隱含的聯(lián)系。據(jù)此將與用戶閱讀過的文章關聯(lián)性強的文章推薦給該用戶,幫助其當前的寫作,作為對基于內容推薦結果的補充?;谖锲返膮f(xié)同過濾的理論之一是數(shù)據(jù)挖掘中的關聯(lián)規(guī)則,用支持度(support)和置信度(confidence)來反映兩個物品之間的關聯(lián)度,支持度表示兩個物品同時出現(xiàn)的概率。
本文采用隱式評分[16],即不需要用戶顯式輸入評分數(shù)值,僅通過用戶在瀏覽推薦結果片段后是否點擊“閱讀全文”來判斷用戶是否對該文章感興趣。若判斷為是,則將該文章加入到該用戶的閱讀列表,文庫列表中的每一篇文章和其他文章的關聯(lián)性都要在閱讀列表中進行統(tǒng)計計算。對于任意兩篇屬于文庫列表的文章A和B,它們之間的支持度為:
(9)
A對B的置信度表示如果用戶閱讀過A,他也會喜歡B的概率,公式為:
(10)
給支持度和置信度設置閾值,若A對B的支持度和A對B的置信度分別大于這兩個閾值,則判斷B是A的強相關性文章,將B添加到A的相關文章列表中。遍歷文庫中的所有文章,為每篇文章都建立對應的相關文章列表。若用戶閱讀文章A,則從列表中篩選出用戶沒有讀過的文章B,按照關聯(lián)度從大到小排序,將排序結果推送給用戶。
本文設計了一種個性化在線推薦系統(tǒng)平臺,系統(tǒng)界面如圖3所示。用戶在左側文本框輸入寫作片段,系統(tǒng)根據(jù)目前的內容在左下角實時呈現(xiàn)5篇推薦書目的標題,當輸入文字較多后推薦列表會趨于穩(wěn)定。用戶點擊后以片段方式呈現(xiàn)在右側文本框供用戶試閱,當用戶對此文章感興趣可以點擊“full text”閱讀全文。此時,系統(tǒng)會在右下角會列出與該文章相關度最高的5篇文章,并將瀏覽行為記錄下來,用于計算更新各文章的相關文章列表。
圖3 創(chuàng)意寫作動態(tài)參考書目推薦系統(tǒng)界面
本文從各網(wǎng)站采集了580短篇英文小說作為實驗測試數(shù)據(jù),測試平臺中設計了評分系統(tǒng),選擇100名學生作為用戶分別從內容和主題、表達和情感、用詞和句長三個方面進行評價,每個方面評分為1~5分。用戶綜合推薦的5篇文章對結果進行評分,對評分結果求平均值并進行歸一化,得到用戶對推薦結果的滿意程度,結果如表1所示。
表1 用戶滿意程度及評分標準
由用戶的反饋可以看出,本系統(tǒng)能夠較好地滿足用戶的需求。雖然在情感表達和主題內容上稍有欠缺,但是在詞匯和句子難度方面系統(tǒng)能提供較為精準的推薦。
本系統(tǒng)與已有的教學資源推薦系統(tǒng)相比[17-18],優(yōu)勢在于使用基于內容和基于物品的混合式推薦系統(tǒng),發(fā)揮了兩種推薦方法各自的優(yōu)點。在基于內容的推薦中,分別從文章相似度和易讀性兩個角度出發(fā)進行相似計算,從而提高了推薦的準確性。
本文提出了一個基于動態(tài)參考書目推薦的英語創(chuàng)意寫作輔助教學系統(tǒng)。該系統(tǒng)能根據(jù)用戶在線輸入的英文寫作內容,提取多維寫作風格特征,進行實時動態(tài)相關參考讀物推薦。此外,作為一個多用戶系統(tǒng),還基于協(xié)同過濾算法,將其他用戶的接受推薦行為也納入推薦考慮范圍,利用用戶貢獻內容(UGC)對系統(tǒng)的貢獻,對其基于寫作風格的推薦進行補充和修正。該系統(tǒng)在使用中,反應迅速、推薦準確,深受測試用戶的好評??梢宰鳛閯?chuàng)意寫作課程教學與課后輔導信息化的有利工具。
在之后的改進中可以考慮更多方面,如利用自然語言處理進行情感分析,通過文章主題分類提高推薦效果,使推薦系統(tǒng)更符合用戶的預期。