1. 程式人生 > >短文字分類概述

短文字分類概述

Table of Contents

定義

特點及難點

評價指標

定義

短文字通常是指長度比較短,一般不超過160個字元的文字形式,如微博、聊天資訊、新聞主題、觀點評論、問題文字、手機簡訊、文獻摘要等。短文字分類任務的目的是自動對使用者輸入的短文字進行處理,得到有價值的輸出。在chatbot的構建過程中,對使用者的意圖進行識別是其中比較重要的一個部分,而意圖識別的核心問題是如何對短文字進行分類。

特點及難點

  1. 稀疏性:短文字的內容較短,通常只包含幾個到十幾個有實際意義的詞語,難以抽取有效的特徵詞。
  2. 實時性:短文字更新速度快、易於擴散。
  3. 海量性:短文字大量存在於人們的生活中,由於短文字的及時更新和快速傳播,使網際網路中積累了海量的短文字資料,這要求對於短文字的處理計算必須具有很高的速度。
  4. 不規範性:短文字表述簡潔,簡稱、不規範用語以及網路流行用語被廣泛使用,使文字噪音較大。如“天朝”-網路用語,“杯具”-諧音用法,“666”-新詞彙。

短文字的特點使文字分類面臨以下難點:

  1. 短文字特徵詞少,用傳統的基於詞條的向量空間模型表示,會造成向量空間的稀疏。另外,詞頻、詞共現頻率等資訊不能得到充分利用,會丟失掉了詞語間潛在的語義關聯關係。
  2. 短文字的不規範性,使文字中出現不規則特徵詞和分詞詞典無法識別的未登入詞,導致傳統的文字預處理和文字表示方法不夠準確。
  3. 短文字資料的規模巨大,在分類演算法的選擇上往往更傾向於非惰性的學習方法,避免造成過高的時間複雜度。

因此,短文字分類一般在預處理、文字表示、分類器的構建等環節中進行優化和改進,以提高分類效果和精度。

分類方法( 有修改)

-傳統文字分類方法

伴隨著統計學習方法的發展,特別是90年代後網際網路線上文字數量增長和機器學習學科的興起,逐漸形成了一套解決大規模文字分類問題的經典方法,整個文字分類問題就拆分成了特徵工程和分類器兩部分。

1.1 特徵工程

特徵工程在機器學習中往往是最耗時耗力的,但卻極其的重要。抽象來講,機器學習問題是把資料轉換成資訊再提煉到知識的過程,特徵是“資料-->資訊”的過程,決定了結果的上限,而分類器是“資訊-->知識”的過程,則是去逼近這個上限。然而特徵工程不同於分類器模型,不具備很強的通用性,往往需要結合對特徵任務的理解。

文字分類問題所在的自然語言領域自然也有其特有的特徵處理邏輯,傳統分本分類任務大部分工作也在此處。文字特徵工程分為文字預處理、特徵提取、文字表示三個部分,目的是把文字轉換成計算機可理解的格式,並封裝足夠用於分類的資訊,即很強的特徵表達能力。

(1)文字預處理

文字預處理過程是在文字中提取關鍵詞表示文字的過程,中文文字處理中主要包括文字分詞和去停用詞兩個階段。之所以進行分詞,是因為很多研究表明特徵粒度為詞粒度遠好於字粒度,其實很好理解,因為大部分分類演算法不考慮詞序資訊,基於字粒度顯然損失了過多“n-gram”資訊。

具體到中文分詞,不同於英文有天然的空格間隔,需要設計複雜的分詞演算法。傳統演算法主要有基於字串匹配的正向/逆向/雙向最大匹配;基於理解的句法和語義分析消歧;基於統計的互資訊/CRF方法。近年來隨著深度學習的應用,WordEmbedding + Bi-LSTM+CRF方法逐漸成為主流,本文重點在文字分類,就不展開了。而停止詞是文字中一些高頻的冠詞助詞代詞連詞介詞等對文字分類無意義的詞,通常維護一個停用詞表,特徵提取過程中刪除停用表中出現的詞,本質上屬於特徵選擇的一部分。

(2)文字表示和特徵提取

文字表示:

文字表示的目的是把文字預處理後的轉換成計算機可理解的方式,是決定文字分類質量最重要的部分。傳統做法常用詞袋模型(BOW, Bag Of Words)或向量空間模型(Vector Space Model),最大的不足是忽略文字上下文關係,每個詞之間彼此獨立,並且無法表徵語義資訊。一般來說詞庫量至少都是百萬級別,因此詞袋模型有個兩個最大的問題:高緯度、高稀疏性。詞袋模型是向量空間模型的基礎,因此向量空間模型通過特徵項選擇降低維度,通過特徵權重計算增加稠密性。

特徵提取:

向量空間模型的文字表示方法的特徵提取對應特徵項的選擇特徵權重計算兩部分。

特徵選擇的基本思路是根據某個評價指標獨立的對原始特徵項(詞項)進行評分排序,從中選擇得分最高的一些特徵項,過濾掉其餘的特徵項。常用的評價有文件頻率、互資訊、資訊增益、χ²統計量等。

資訊增益特徵提取方法:該方法基於資訊熵的原理,通過計算各個特徵在不同類別樣本中的分佈情況,通過統計比較發現具有較高類別區分度的特徵。資訊增益能較好的描述不同特徵對不同類別的區別能力,資訊增益值越高則區別能力越強,在特徵選擇時保留較大IG 值,在分類時就更容易得到正確的分類結果,而且能降低特徵的維度。

卡方檢驗特徵選擇方法:該方法主要基於相關性檢驗原理,通過計算某屬性與某一類的相關性,來衡量特徵候選項項的重要性,該方法考慮到了反相關的屬性。在這裡反相關的特徵候選項同樣存在有用資訊,反相關的資訊量對分類和聚類演算法都有積極作用。

特徵權重主要是經典的TF-IDF及其擴充套件方法,主要思路是一個詞的重要度與在類別內的詞頻成正比,與所有類別出現的次數成反比。

(3)特徵擴充套件

由於短文字的特徵少,固需要對文字向量進行特徵擴充套件。當前對於短文字資訊分類的研究主要聚焦於短文特徵的擴充套件問題之上。特徵擴充套件方法有基於WordNet、Wik ipedia或其他知識庫等的特徵擴充套件方法,然而這些方法來說一些的不足之處,對於短文字資料,尤其是即時資料來說,這些方法並不十分合適,因為這些知識庫依靠的更多是人工參與編輯,資訊相對滯後,擴充套件特徵不夠全面,缺乏全域性性與一致性。另外一個更重要的原因是網路資訊檢索本身就會出現噪聲問題。這些都會將錯誤因素累積,所以必須對檢索結果進一步篩選。

為了解決這些問題,一些研究人員通過從新計算短文字與檢索結果的相似度,驗證並實現了多種方法,包括語義分析等。短文字計算相似度時有一定得困難,短文字包含的特徵太少,若直接使用相同特徵作為度量標準的話,很多短文字之間的相似度為零。為了解決這個問題,需要採用一種適合短文字相似度計算的方法,常見的相似度計算方法有:1.基於本體詞典的規則化方法;2.基於知識庫的規則化方法;3.基於搜尋引擎的方法;4.基於統計的方法;5.句子層面語義相似度計算方法。

(4)基於語義的文字表示

傳統做法在文字表示方面除了向量空間模型,還有基於語義的文字表示方法,比如LDA主題模型、LSI/PLSI概率潛在語義索引等方法,一般認為這些方法得到的文字表示可以認為文件的深層表示,而word embedding文字分散式表示方法則是深度學習方法的重要基礎。

1.2 分類器

分類器基本都是統計分類方法了,基本上大部分機器學習方法都在文字分類領域有所應用,比如樸素貝葉斯分類演算法(Naïve Bayes)、KNN、SVM、最大熵和神經網路等。

-深度學習文字分類方法

傳統做法主要問題的文字表示是高緯度高稀疏的,特徵表達能力很弱,而且神經網路很不擅長對此類資料的處理;此外需要人工進行特徵工程,成本很高。而深度學習最初在之所以影象和語音取得巨大成功,一個很重要的原因是影象和語音原始資料是連續和稠密的,有區域性相關性。應用深度學習解決大規模文字分類問題最重要的是解決文字表示,再利用CNN/RNN等網路結構自動獲取特徵表達能力,去掉繁雜的人工特徵工程,端到端的解決問題。

評價指標

文字分類其本質上是一個對映過程,所以評估文字分類系統的標誌是對映的準確程度。文字分類中常用的效能評估指標有:查準率P(Precision)、查全率R(Recall)和F測試值(F-measure),設a-實際和預測都為A;b-實際非A預測為A;c-實際是A預測非A

  • 精確率(Precision,p) p=a/(a+b)

精確率是所有判斷的文字中與人工分類結果吻合的文字所佔的比率,p描述了分類結果中的準確程度,即分類結果中有多少是正確的。

  • 召回率(Recall,R) r=a/(a+c)

召回率又稱查全率,是人工分類結果應有的文字中與分類系統吻合的文字所佔的比率,r描述了正確分類的能力,即已知的文字中,有多少被正確分類。

  • F測試值(F-measure)

對於一次測試,準確率和召回率一般是成反比的。一般而言,查準率會隨著查全率的升高而降低,多數情況下需要將兩者綜合考慮,得到一種新的平均指標:

F測試值。計算公式如下:

F1Score = 2*(Precision * Recall)/(Precision + Recall)

F1值越大,表示分類器的效能越好,文字分類的效果越理想。

附短文字分類模型、程式碼和效果比較: