李 艷,朱倩倩,董秀萍
(1.蘭考三農職業學院信息工程系,開封 475300;2.鄭州科技學院信息工程學院,鄭州 450000;3.開封大學電子電氣工程學院,開封 475000)
傳統的人工客服全天候為市民提供問題咨詢、登記、建議和轉發處理等熱線服務。隨著信息技術的飛速發展,市民咨詢、求助的數據也在急速增長[1],人工客服如何快速、準確分類用戶反饋的需求,并轉發相應的部門是一個等待解決的問題。為了提高客服人員的工作效率,要求對客服人員登記的信息進行分類,方便下一步轉發處理,勢必需要融入各種新技術。
目前隨著機器學習算法研究的逐漸深入,文本分類的方法也在不斷優化,并且應用于電力領域[2]、石油化工行業[3]等。
本文以某公司登記的用戶問題為研究數據,對比多種機器學習分類模型,以幫助客服自動分類用戶反映的問題,準確進行文本分類和識別。
短文本分類[4]是自然語言處理(NLP)中的基礎任務,原理是將文本內容根據一定的標準劃分為一個或多個類別的過程,本文是根據已有類別標簽的用戶問題文本集合,訓練學習得到該文本特征和類別標簽之間的關系模型,然后利用這種關系模型對用戶反映新問題進行分類。現針對本文實驗過程中使用的算法,如線性支持向量機、KNN、樸素貝葉斯和隨機森林做詳細介紹。
支持向量機(support vector machine)[5-6]是短文本分類中最常見的一種模型,同時也可以做回歸。支持向量機通過尋求結構化風險最小來提高學習機泛化能力,實現經驗風險和置信范圍的最小化,故在解決小樣本、非線性實際問題時具有一定優勢。該模型在特征空間上找出最優間隔分離超平面,最終轉化為一個凸二次規劃問題的求解。
樸素貝葉斯分類法是Lewis[7]提出的一種用于文本分類任務的算法,主要分訓練階段和測試階段,在訓練階段,根據訓練數據計算先驗概率(似然度);在測試階段,根據輸入的特征計算后驗概率;而學習的過程就是不斷提高似然度的過程。樸素貝葉斯的優點是具有較高的獨立性,分類所需要估計的參數少,對于缺失數據不敏感。
隨機森林的算法原理是以若干個決策樹[8]為基分類器創建了一個森林,并使它擁有某種方式隨機性,最終的結果由每個決策樹結果投票得到。所構建的“森林”大部分時候都是用“Bagging”方法訓練的[9]。Bagging算法對特征選擇與特征降維具有較好分類效果,它采用隨機、有放回的選擇訓練數據,并組合學習構造的分類器,進而增加整體的效果。
簡而言之:隨機森林建立了多個決策樹,并將它們合并在一起以獲得更準確和穩定的預測。隨機森林的一大優勢在于該模型既可用于分類,也可用于回歸問題。
K 近鄰法(K-Nearest Neighbor)是假設一個樣本在特征空間中的k個最鄰近的樣本中的大多數屬于某一個類別,則該樣本也屬于這個類別,進而以其實現預測分類[10]。
本實驗的數據集為某公司客服在2012—2018 年收集的用戶登記的問題信息,共有371120 條數據。每一個信息包含78 個屬性,總體擁有78 個大類信息和249 個小類信息。借助第三方工具統計所得的數據信息如圖1所示。

圖1 數據集
根據研究需求,本文只選用了每條信息中的大類屬性、小類屬性、投訴內容三條屬性信息。并且將數據劃分為訓練集和測試集,其中70%的數據作為訓練集,30%的數據作為測試集,類別屬性作為標簽。
2.2.1 數據預處理
為進一步提升分類效果,訓練模型前本文需要對原始數據進行預處理,主要包含:分詞、去停用詞等。
(1)分詞。文本類型為英文的句子容易分割單詞,而中文需要借助一些工具來完成分詞處理,本文借助jieba來進行分詞。
(2)去停用詞。根據研究需求制作特定的停用詞詞典,并將其導入進行數據清洗,剔除語氣詞、介詞和助詞。
2.2.2 特征提取
在本文研究中主要使用TF-IDF 和HashVectorizer兩種文本向量化方法。
(1)TF-IDF 算法[11]是評估一個特征字或者單詞對一個語料庫中一份文本的重要程度。某個特征字或詞的權重與它在文件中出現的頻率成正比,但與它出現在語料庫的次數成反比。
詞頻(term frequency,TF)表示語料庫中某個單詞在當前文本出現的頻率,詞頻的高低代表特征詞的重要程度,其計算公式如(1)所示:
其中:ni,j表示單詞ti在文本dj中出現的次數,表示所有詞在文檔dj中出現的總次數。
逆文檔頻率(inverse document frequency,IDF)主要指的是特征詞語的逆向文件頻率,一些特征詞對主題沒有太大作用,所以在設計權重時不能只考慮TF,而是將最能預測主題的特征詞賦予較大權重。IDF 權重越大,說明該特征詞的重要程度也就越高。其計算公式如(2)所示:
其中:D表示訓練集總文本數,|Di|表示含有特征詞的總文本數。
TF-IDF 算法是TF 算法與IDF 算法相乘,其權重計算公式如(3)所示:
(2)HashVectorizer 是一種快速且空間利用率高的特征向量化方法,即將任意特征轉換為向量或矩陣中的索引。它通過對特征應用散列函數并直接使用特征的散列值作為索引來工作。具體思路:對應任意一個特征名,利用Hash 函數找到與其對應在哈希表的位置,然后將特征名對應的詞頻統計值累加到該哈希表位置。HashVectorizer 與TF-IDF 相比節省內存,也更快,故適用于處理大規模的文本數據。
2.3.1 模型評估
本文用的模型評估方法為精確率(Pression)和召回率(Recall)。精確率(Pression)指正確模型預測為正的占全部預測為正的比例;召回率(Recall)又稱查全率,表示分類結果是正確的時候由算法預測正確的是多少。
2.3.2 實驗結果分析
(1)根據不同年份的大小類數據對比不同機器模型的分類效果
基于TF-IDF 的特征提取方法,本實驗分別在2012—2018 年的大類和2012—2018 年的小類數據集上驗證多種分類模型的分類效果,結果如圖2和圖3所示。

圖2 基于不同模型在小類數據上評估的結果

圖3 基于不同模型在大類數據的評估結果
由圖2和圖3可以看出,基于TF-IDF的特征提取方法,分別用每年的大類數據和小類數據去評估多種機器模型,在大類的效果要優于小類的評估結果。從分類結果可以看到,效果并不理想,那么除了分類算法的選擇外,對結果影響最大的可能是特征的選擇,即向量化方法的選擇。
(2)將向量化的方法換為哈希向量算法(HashingVectorizer), 選用梯度下降算法(SGDClassifier),所得結果如圖4所示。

圖4 基于SGDClassifier在大小類數據的分類評估
圖4 對比圖3 和圖2,利用哈希向量進行提取特征,效果優于利用TF-IDF 提取特征。以上都是基于每年的數據分開進行評估,為進一步評估當前模型,取全部數據在此模型測試,數據量小的類別,幾乎很難達到60%的Precision,經過分析得出是由于數據不平衡所致。
為驗證上面的分析,本文將數據量中的小類別按照一定規則進行切分處理,將符合數量條件的小類組成一個新數據集進行測試,分出的數據集之中,數據量小于100 條、小于200條、小于300 條的小類數據集,以及數量小于1000的小類數據集,未達到60%的Precision。
(3)基于HashVectorizer,在不同模型上對2014—2018 年的全部數據進行測試,得到的結果見表1。

表1 不同模型的評估
由表1 的評估結果可以看出,LinearSVC 模型的分類效果優于SGDClassifier,進一步提升了分類的精準率。
科學和準確的信息分類技術對于提高客服人員的工作效率有極大的幫助。有效滿足人工客服快速、準確分類用戶反饋的需求,并轉發相應的部門是一個等待解決的問題。本文在真實數據集上對比多種機器模型,從而找到最優模型。但是用戶反饋的問題中詞語少,提供的有效信息有限,為進一步解決這個問題,下一步將考慮基于某種規則改進分類過程,優化改進模型,從而提高分類效果。