一、文本分詞
將需要進行分析的文本進行分詞(英文直接按照空格分隔詞匯,中文則需通過分詞工具分隔之后,把詞之間加上空格)
二、去停用詞
在文本中可以發現類似”the”、”a”等詞的詞頻很高,但是這些詞並不能表達文本的主題,我們稱之為停用詞。
對文本預處理的過程中,我們希望能夠盡可能提取到更多關鍵詞去表達這句話或文本的中心思想,因此我們可以將這些停用詞去掉后再編碼。
三、將詞編號
按照詞頻(次出現的頻率)進行倒序編號,如英文中一篇文章出現最多的應該是“a”,“the”等詞匯(假設‘a’出現次數大於‘the’),則把“a”編號為“1”,‘the’編號為“2”,以此類推。
這樣在文本中出現過的詞都會有自己特有的編號。對每個詞編碼之后,每句話中的每個詞就可以用對應的編碼表示,即每條文本已經轉變成一個向量了。
四、文本長度統一
對每個詞編碼之后,每條文本中的每個詞就可以用對應的編碼表示,即每條文本已經轉變成一個向量。但是,由於文本的長度不唯一,需要將每條文本的長度設置一個固定值。
假設每個句子的長度都固定為100,如果長度大於100,則將超過的部分截掉;如果小於100,則在最前面用0填充。
五、將詞編碼轉化為詞向量
在神經網絡中一般要將文本轉化成矩陣進行計算,單單將文本轉化為向量還是不夠,所以需要將每個詞編碼轉化成詞向量。
此步驟一般先使用“one-hot”編碼方式編碼,這樣就會將一條文本轉化為一個n*n的矩陣(n表示文本中出現的不同的詞個數)。然后通過神經網絡的訓練迭代更新得到一個合適的權重矩陣(具體實現過程可以參考skip-gram模型),行大小為n,列大小為詞向量的維度(小於n)。
至此已經將文本數據預處理完畢,將每個影評樣本轉換為一個數字矩陣,矩陣的每一行表示一個詞向量。