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