首先介紹一下流程:
1.先使用中科院的分詞器ictlas對訓練集進行分詞
2.將所有的詞構建成乙個字典,以label item的形式,後面svm要用到。如:1 中國
3.提取特徵詞,由於並不是每個詞都是有用的,因此要提取出特徵詞,主要提取名詞,動詞,動名詞,和使用者自定義的詞。由於採用了中科院的分詞演算法,分詞結果有詞性標註,乙個正規表示式就可以提取出來。
4.計算文件的tf-idf,這個很簡單,我採用的是最簡單的一種計算方法,有興趣可以去計算難一點的。
5.將每個訓練集的分詞結果轉換成libsvm 的語料格式,紅色框框的是 類標號(對每個分類設定乙個標號)後面的是詞項(label):詞頻(tf-idf),如下圖。
6.對資料進行縮放,縮放至0-1之間,採用libsvm裡面自帶的縮放工具,不過我改了一些入口引數,可以將縮放後的結果儲存到檔案中,原來**裡沒有,我的**裡面有注釋,
7.採用libsvm生成模型,可以直接呼叫libsvm裡面的包
8.允許使用者輸入測試集,然後呼叫生成的模型進行**
9.將分類結果匯出到資料夾中,每個分類建立乙個資料夾,資料夾下面就是測試的檔案,如圖:
生成模型的執行步驟如下(我**裡已經有生成過的模型,不過你想要重新生成的話機這樣子做):
以上便是整個分類的結果,**我放到了csdn上,訓練集也放在了csdn上,先說明整個是乙個完整的專案,我要得積分會比較高,專案原始碼10分,訓練集語料8分,
源**:
我的部落格:
基於svm的中文文字自動分類系統
首先介紹一下流程 1.先使用中科院的分詞器ictlas對訓練集進行分詞 2.將所有的詞構建成乙個字典,以label item的形式,後面svm要用到。如 1 中國 3.提取特徵詞,由於並不是每個詞都是有用的,因此要提取出特徵詞,主要提取名詞,動詞,動名詞,和使用者自定義的詞。由於採用了中科院的分詞演...
NLP 中文文字分類 詳細
實現如下customprocessor class customprocessor dataprocessor def get train examples self,data dir return self.create examples self.read tsv os.path.join da...
深度學習 中文文字的分類(建模篇)
上回我們處理好了中文文字,具體的步驟如下 那這篇文章我們就使用mlp和lstm模型來訓練我們的資料。模型結構 建立模型 from keras.models import sequential from keras.layers import dense,dropout,embedding,flatt...