《機器學習:演算法原理和程式設計實踐》2:中文文字分類
1、文字挖掘與文字分類的概念
簡言之,文字挖掘就是從非結構化的文字中尋找知識的過程。其7個主要領域如下:
- 搜尋和資訊檢索(IR):儲存和文字文件的檢索,包括搜尋引擎和關鍵字搜尋。
- 文字聚類:使用聚類方法,對詞彙、片段、段落或檔案進行分組和歸類。
- 文字分類:對片段、段落或檔案進行分組和歸類,在使用資料探勘分類方法的基礎上,經過訓練地標記示例模型。
- Web挖掘:在網際網路上進行資料和文字挖掘,並特別關注網路的規模和相互聯絡。
- 資訊抽取(IE):從非結構化文字中識別與提取有關的事實和關係;從非結構話或半結構化文字中抽取出結構化資料的過程。
- 自然語言處理(NLP):將語言作為一種有意義、有規則的符號系統,在底層解析和理解語言的任務;目前的技術主要從語法、語義的角度發現語言最本質的結構和所表達的意義。
- 概念提取:把單詞和短語按語義分成意義相似的組。
2、文字分類專案
中文語言的文字分類技術與流程:
- 預處理:去除文字的噪聲資訊,例如HTML標籤、檢測句子邊界等。
- 文字分詞:使用中文分詞器為文字分詞,並去除停用詞。最終完全解決中文分詞的演算法是基於概率圖模型的條件隨機場(CRF)。目前,文字的結構化表示簡單分為四大類:詞向量空間模型、主題模型、依存句法的樹表示、RDF的圖表示,它們都是以分詞為基礎的。使用結巴分詞
- 構建詞向量空間:統計文字詞頻,生成文字的詞向量空間。人工輸入的停用詞(常用詞、語氣助詞等)
- 權重策略---TF-IDF方法:使用TF-IDF發現特徵詞,並抽取為反映文件主題的特徵。
- 分類器:使用演算法訓練分類器。
- 評價分類結果:分類器的測試結果分析。
向量空間模型把文字表示一個向量,該向量的每個特徵表示為文字中出現的詞。它將文字中的詞和模式串轉換位數字,而整個文字集也都轉換為維度相等的詞向量矩陣。
TF-IDF(詞頻逆文件頻率):其含義是如果某個詞或短語在一篇文章中出現的頻率高,並且在其他文章中很少出現,則認為此詞或者短語具有很好的類別區分能力,適合用來分類。對詞計數進行歸一化,將詞頻資訊變為概率分佈,這就是文件的TF資訊。如何體現生成的詞袋中的詞頻資訊呢?由於詞袋收集了所有文件中的詞,這些詞的詞頻是針對所有文件的詞頻,因此,詞袋的統計基數是文件數。所以IDF權重為log(D/j) ,包含詞語的檔案數目
分類器:常用的文字分類方法有kNN最近鄰演算法、樸素貝葉斯演算法和SVM。一般而言,kNN最近鄰演算法的原理最簡單,分類精度尚可,但是速度最慢;樸素貝葉斯演算法對於短文字分類的效果最好,精度很高;支援向量機演算法的優勢是支援線性不可分的情況,精度上取中。
kNN:如果一個樣本在特徵空間中的k個最鄰近(最相似)的樣本中的大多數都屬於某個類別,則該樣本也屬於這個類別。
分類結果評估:召回率(查全率),準確率(查準率),F-Score(常用的評價標準)
相關文章
- 《機器學習:演算法原理和程式設計實踐》4:推薦系統原理機器學習演算法程式設計
- 《機器學習:演算法原理和程式設計實踐》3:決策樹的發展機器學習演算法程式設計
- 【機器學習PAI實踐七】文字分析演算法實現新聞自動分類機器學習AI演算法
- 機器學習演算法原理與程式設計學習(2)機器學習演算法程式設計
- 如何用Python和機器學習訓練中文文字情感分類模型?Python機器學習模型
- 機器學習4-分類演算法2機器學習演算法
- 如何用機器學習對文字分類機器學習文字分類
- Spark機器學習實戰 (十一) - 文字情感分類專案實戰Spark機器學習
- 《機器學習實踐》程式清單2-2機器學習
- Bert文字分類實踐(一):實現一個簡單的分類模型文字分類模型
- 《機器學習實戰》基於樸素貝葉斯分類演算法構建文字分類器的Python實現機器學習演算法文字分類Python
- 【機器學習PAI實踐十二】機器學習實現男女聲音識別分類(含語音特徵提取資料和程式碼)機器學習AI特徵
- 實驗2 類和物件 基礎程式設計1物件程式設計
- 實驗2 類和物件_基礎程式設計1物件程式設計
- 實驗三 類和物件 基礎程式設計2物件程式設計
- 實驗三 類和物件_基礎程式設計2物件程式設計
- 實驗3 類和物件——基礎程式設計2物件程式設計
- 實驗3 類和物件 基礎程式設計2物件程式設計
- 實驗3 類和物件_基礎程式設計2物件程式設計
- 機器學習(三):理解邏輯迴歸及二分類、多分類程式碼實踐機器學習邏輯迴歸
- 幽默:駭客式程式設計其實類似機器學習!程式設計機器學習
- 機器學習之支援向量機原理和sklearn實踐機器學習
- 機器學習之決策樹原理和sklearn實踐機器學習
- 機器學習3-分類演算法機器學習演算法
- 【Python機器學習實戰】聚類演算法(2)——層次聚類(HAC)和DBSCANPython機器學習聚類演算法
- C#非同步程式設計:原理與實踐C#非同步程式設計
- 【NLP】TensorFlow實現CNN用於中文文字分類CNN文字分類
- 圖解機器學習:神經網路和 TensorFlow 的文字分類圖解機器學習神經網路文字分類
- 實驗 2 Scala 程式設計初級實踐程式設計
- 演算法實踐:KNN分類(day08)演算法KNN
- 文字分類:Keras+RNN vs傳統機器學習文字分類KerasRNN機器學習
- 資料探勘(8):樸素貝葉斯分類演算法原理與實踐演算法
- 【機器學習】:Kmeans均值聚類演算法原理(附帶Python程式碼實現)機器學習聚類演算法Python
- R成精-機器學習分類演算法機器學習演算法
- 孟巖談《C++程式設計原理與實踐》C++程式設計
- 【機器學習】--xgboost初始之程式碼實現分類機器學習
- 機器學習--有監督學習--分類演算法(預測分類)機器學習演算法
- 《機器學習觀止——核心原理與實踐》之 K-NN 演算法機器學習演算法