【搜索引擎(四)】文本分類
Q1. 為什麽搜索引擎要用到文本分類?
搜索引擎要處理海量文本,人工分類不現實,機器的自動分類對提高文本的分類效率至少起到了一個基準的效果。另外,文本分類跟搜索引擎系統可以進行信息互通,文本分類的輸入是文本,輸出可以是標簽或者是否從屬於某個分類。
Q2.文本分類基礎算法
文本分類基礎算法與機器學習、人工智能、數據挖掘中用到的算法都是聯系緊密的,它從屬的自然語言處理也正是人工智能的分支。你可能會想到文本分類肯定要用到基礎的分類器,而且在更復雜的情況下可能還要用到人工智能的一些學習方法,比如雙向LSTM和CNN。
目前來看,文本分類通常用的是有監督的學習方法,這不是說無監督就沒有用了,只是為了精度的要求,有監督是比較靠譜的。另外,文本分類幾乎都是按照數據挖掘的套路來做的,
分類器輸入文本,輸出標簽(single-label or multi-label)。
Q3.文本分類的規模有多大?
文本分類的規模有大有小,但是這只是針對訓練集來說,而實際分類的輸入除了數目以外,單個的大小是沒有太大差異的。
正文
無監督算法和有監督算法
一、有監督分類器
決策樹
Bayes 分類器 Rocchio分類器
樸素貝葉斯分類器:計算
, 即給出文檔dj,求它屬於類別 cp的概率,概率最大的cp就是文檔本分到的類別了。在概率論與數理統計中求這個概率的最大一般都是求對數然後偏導為0。
二、支持向量機
支持向量機是什麽?從一般的教材說法來看,它是一個多維空間的平面方程,由法向量和點唯一確定。支持向量是指在這個空間內能夠使該方程滿足偏移常數為1的向量。
這個平面是由訓練集確定參數,以實現分類間隔最大化的一個結果。
【在機器學習包sklearn中提供了它的實現,訓練的特點是花的空間少但是時間特別長】
核函數:針對不同的輸入向量,將它們映射到變換空間中所用到的函數,一般采用輸入向量的乘積(或稱點積)
有了支持向量機,就要用SVM的相應決策函數。
三、集成分類器
它是將不同的分類器(如前面說的SVM, DT, Bayes)的結果合成,構成更高精度的方法。
當然,怎麽合成不是亂來的。怎麽合理地合成引出了集成學習這一概念。
增強學習分類器叫做boost
Adaboost 是最早在論文中提到的將boost應用在文本分類的算法。此後又出現了一些算法。
歷史發展: boost->Adaboost->AdaBoost。
四、無監督學習
特征選擇和降維(一般用SVD, PCA)。
其他
文檔分類的評價標準
Precision, Recall,F-標準,。
標準文檔集
1. Reuters [21578] http://www.daviddlewis.com/resources/testcollections/reuters21578/, 2004年收集, (8.2 MB; 28.0 MB uncompressed, though I downloaede a file of 27 MB).
2. RCV Reuters Corpus Volumes 路透社新聞報道
3. OHSUMED 醫學主題詞, MEDICINE 數據庫的子集
ftp://medir.ohsu.edu/pub/ohsumed (已失效)
http://davis.wpi.edu/xmdv/datasets/ohsumed.html
TREC9 的文檔過濾子競賽
WebKB ACMDL, ODP
競賽舉例
CIKM競賽, 2014年 Query Intent Detection,
N-gram Model
軟件包
ID3 C4.5 [1311], [1313]
SVMLight[839], LibSVM[355], SVMPerf[840]
Bow[1104], Weka[1707]
參考會議
ICML, SIGKDD,SIGIR,
【搜索引擎(四)】文本分類