李 浩,孫 媛①
(1.中央民族大學 信息工程學院,北京 100081;2.國家語言資源監(jiān)測與研究少數(shù)民族語言中心 北京 100081)
教學資源不再僅僅局限于紙質(zhì)文本和黑板板書的方式來呈現(xiàn),而是利用到了計算機技術(shù),以Word、PDF、PowerPoint等方式呈現(xiàn),使得“教”與“學”兩個過程更加方便。但教學資源如何優(yōu)質(zhì)共享是一個亟待解決的困難[1]。教育文本種類繁多,很多學習者不能快速準確地判斷是否為自己所需,這就需要一個能精準推薦的技術(shù)。
隨著英文信息處理技術(shù)的發(fā)展,無論是在字詞信息處理研究,還是在信息處理應用開發(fā)方面,眾多科研人員進行了不懈的努力和有益的探索。在基本完成以“詞”為單位的研究內(nèi)容后,以“句”、“段”、“篇”為主的研究也發(fā)展十分迅速。
要想進行自然語言相關方面的研究,首先需要將人類語言數(shù)字化[2]。首先提出的是詞袋表示方法,但此模型向量的維度與詞典的大小成線性關系,會造成維度災難。所以提出了詞向量模型,它是一種分布式詞向量[3]的表達方式,同時在分布式表達時常用的有NNLM模型、C&W模型。NNLM模型求解由于其softmax層,復雜度很高,C&W模型排序目標函數(shù)不用計算復雜的softmax了,但仍然保留了全連接的隱藏層,這部分也要消耗不少計算資源。Google的Mikolov提出一種簡單的語言模型word2vector模型,就是簡單地把上面復雜模型中的非線性隱層去掉了。
文本推薦技術(shù)的重點在于文本相似度的計算,在一些郵件、網(wǎng)頁文本等推薦技術(shù)中,大多數(shù)都是用經(jīng)典分類算法,它們是用傳統(tǒng)向量空間模型來表示文本。
向量空間模型以空間上的相似度表達語義的相似度。但是因為這種模型向量的維度與詞典的大小成線性關系,所以當詞典數(shù)量大時,會造成維度災難。同時,對于一些少量詞語的文本會造成高度稀疏問題。當兩個文本沒有共同詞語時,通過模型計算,會得出兩篇文檔相似度為0,這對于一些相同語義、不同表達的文章進行比較,顯然是不合理的。
鑒于one-hot形式模型的缺點,出現(xiàn)了另外一種詞向量表示方式——分布式詞向量。它的基本思想是:通過大規(guī)模的語料的訓練,將一篇文檔中的每個詞語映射成一個維度預先設定的向量,一般可以為50維或100維,每個向量看成向量空間中的一個點,然后計算這些點在向量空間上的“距離”,通過距離的大小來判斷對應詞語之間的句法和語義的相似性。
word2vec可以根據(jù)給定的語料庫,通過模型快速地將一個詞語表達成向量形式。其算法有兩種重要模型:Skip-gram(Continuous Skip-gram Model)與CBOW(Continuous Bag-of-Words Model)[4]。
此研究采用基于word2vec項目給出的googleNews語料得到詞匯向量,采用word2vec預訓練的單詞向量模型。此訓練語料庫大小為30億個單詞,訓練出來的向量為300萬個300維的英文單詞向量。
本研究中文本向量的表示基于兩種方法:
(1)所有詞均值方法:求出該文檔所有詞對應的詞向量的均值
此方法求出每篇文檔所有詞對應的詞向量的均值,利用np.mean()函數(shù)計算出文檔向量的表示。mean()函數(shù)的功能為求取算術(shù)平均值。
numpy.mean (a,axis=None,dtype=None,out=None,keepdims=False)
其中a為一個數(shù)組,經(jīng)常操作的參數(shù)為axis,此研究中函數(shù)的具體用法為np.mean(word_vecs,axis=0),我們需要得到的文本向量為一行多列的向量,word_vecs為一個行數(shù)為一篇文檔的單詞數(shù),列為300的矩陣。所以將word_vecs壓縮行,對各列求平均值,返回了一個1*300的矩陣,以此來代表一篇文章的向量表示。
(2)關鍵詞表示法:求出文章關鍵詞的詞向量的均值
利用TF-IDF方法[5]求出每篇文檔的前10個關鍵詞。TF-IDF的主要思想是:如果某個詞或短語在一篇文章中出現(xiàn)的頻率高,并且在其它文章中很少出現(xiàn),則認為此詞或者短語具有很好的類別區(qū)分能力,適合用來分類。詞頻(Term Frequency)指的是某一個給定的詞語在該文件中出現(xiàn)的頻率,即詞w在文檔d中出現(xiàn)的次數(shù)count(w,d)和文檔d中總詞數(shù)size(d)的比值,計算公式為:
逆向文件頻率(Inverse Document Frequency)是一個詞語普遍重要性的度量。某一特定詞語的IDF,可以由總文件數(shù)目除以包含該詞語之文件的數(shù)目,再將得到的商取對數(shù)得到。即文檔總數(shù)n與詞w所出現(xiàn)文件數(shù)docs(w,D)比值的對數(shù),計算公式如為:
將公式1、2代入公式3中,計算出每篇文檔tfidf前10的詞作為此文本的關鍵詞。以這10個關鍵詞的詞向量的平均值來表示文本向量。
將文本數(shù)據(jù)化表示后,便可通過其在向量空間上的表示來計算向量之間的距離來代表文本之間的相似度。本文采用余弦相似度的方法[6],利用向量的余弦夾角來計算相似度,余弦值越大,相關性越大。源文檔的文本向量表示為ti,目標文檔的文本向量表示為tj。計算公式為:
本文用谷歌發(fā)布的word2vec的訓練模型(googlenews_model)預先訓練的詞向量。其中訓練語料為基于GoogleNews的300萬個英文單詞。利用網(wǎng)絡爬蟲,從新聞網(wǎng)站爬取語料作為測試語料。具體如表1所示。
表1 測試語料表
分別將每種文本類型的第1篇作為源文件與其它14篇測試語料文本進行比較,計算其文本相似度,在模型一用全部詞向量的平均值作為文本向量的方法中,分析結(jié)果,將與源文本相似度前4的文本及模型的估計評分值輸出來得出結(jié)果如表2所示。
表2 模型-輸出的估計評分值表
對于一些有明確二分喜好的用戶系統(tǒng),評價指標可以用到分類準確度指標[7]。此實驗中,以源文本的類別為參照,將推薦的4篇文檔進行類別對比,作為用戶對推薦的二分喜好。在推薦的這4個文檔中,對于一個未曾被用戶選擇或評分的文本,最終結(jié)果有4種,即系統(tǒng)推薦且屬于源文檔同一類別,系統(tǒng)推薦不屬于同一類別,系統(tǒng)未推薦且屬于同一類別,系統(tǒng)未推薦且不屬于同一類別,分別對應的數(shù)目為Ntp、Nfp、Nfn、Ntn。其推薦準確率為推薦的L個文本中用戶認為正確的所占的比例,公式為:
召回率計算公式為:
將公式6代入公式5得出P(L),將公式8代入公式7得出R(L),F(xiàn)1指標值計算公式為公式9。
其中M為總測試數(shù),u為個體。系統(tǒng)推薦的相對應的4篇文章,讓10名真實用戶給其推薦打分(設定為0-1),平均分如表3所示。
表3 用戶真實打分表
在模型二中,將與源文本相似度最高的前4篇文本輸出來得出結(jié)果如表4所示。系統(tǒng)推薦的相對應的4篇文章,讓10名真實用戶給其推薦打分(設定為0-1),平均分如表5所示。得出模型的評價指標數(shù)據(jù)如表6所示。計算其平均絕對誤差MAE,公式為:
將公式 5和公式7代入公式10,可求出MAE。
本實驗基于word2vec項目,得到項目給出的通過大規(guī)模的GoogleNews語料訓練出的詞匯向量,進而求出文本向量,通過余弦相似度方法計算向量之間的距離。在文本向量的表示中用到了兩種方法并進行比較,得出提取文檔關鍵詞的詞向量求平均的方法效果更好,相比傳統(tǒng)的關鍵詞推薦技術(shù)和VSM模型推薦技術(shù),此方法在詞向量表示時加入了語義信息,能更準確地進行文本推薦。將此法應用到英文教育文本推薦技術(shù)中,能很好地對文本進行分類處理,大大提高了學習者學習效率,使其能快速準確地學習到相關文章,同時教學者能快速準確地找到教學所需資源,更好地進行備課,使得“教”與“學”的過程更加便利。
表4 模型二輸出的估計評分值表
表5 用戶真實打分表
表6 評價指標數(shù)據(jù)表