基於前麵講述的分詞及詞向量技術,可以進行非常有用也更複雜的文本處理工作。這一節將講述如何利用這些技術來實現文本情緒的識別。很多語句、新聞、台詞、評論都帶有某種情緒,如果能夠理解文本中的這種情緒,不但是有趣的事情,而且也有重要的應用價值。例如,在電商購物網站上,有很多的評論數據,如果能夠自動識別這些評論數據的情緒,對於顧客選擇商品、商家推薦商品都是很有幫助的。
這是一個相對複雜的工作,作為本教材最後一個實際案例,將采用模塊化的方式實現,包括用於訓練情緒識別網絡的訓練模塊和使用訓練好的網絡識別文本情緒的識別模塊。這種模塊化的編程方式把複雜的任務分解成幾個相對簡單的任務,流程和可讀性更好,在實際工作中十分常見。
本節所使用的訓練數據是從電商網站的評論區抓取的商品評論,可從教材資源平台下載。這些文本的情緒已經做了人工標注,被分成了正麵評論和負麵評論兩類。首先通過深度學習,去學習這些評論中正麵評論、負麵評論的特征。學習完畢後就可以使用訓練好的網絡判斷新的文本表達的情緒是正麵還是負麵。標注了情緒的數據包括10 679條正麵評論和10 428條負麵評論,以Excel表格文件分別存儲,文件名分別是pos.xls和neg.xls。表9-2是從中截取的一部分樣本。
表9-2
在訓練模塊中,首先需要使用訓練好的詞向量把訓練數據(具有正負麵情緒的文本)向量化,然後使用深度神經網絡提取文本中的情緒特征,所用的網絡結構中包括在自然語言理解中常用的長短時記憶結構(Long-Short-Term Memory,LSTM)。經過訓練後的網絡連接權值可以抽取出文本的情緒特征,使用它就可以識別新文本中的情緒了。
需要說明的是,由於訓練適用於本任務的向量化詞表需要使用內容相符並且規模較大的語料庫,所以在教材資源平台提供了訓練好的詞向量模型,下載後可以直接使用。感興趣的讀者可以自己抓取文本,建立合適的語料庫訓練自己的詞向量。雖然上一節已經介紹過具體的訓練方法,為方便起見,本節最後也提供了適用於這個案例的詞向量訓練模塊。