1. 程式人生 > >nlp(一)用tgrocery實現文字分類

nlp(一)用tgrocery實現文字分類

       隨著深度學習的興起,很多文字分類都轉向用cnn這樣的網路來處理。但是使用神經網路模型進行文字分類是有一定前提條件的,那就是要有足夠的樣本來訓練模型中的引數。但是很多情況下,我能能夠蒐集到的樣本不會太多,而且分類的個數是不一定的。比如,原先我有一個新聞集,要求分為“政治”,“經濟”,“文化”三種。但是那一天有要求我們再分出一個“體育”分類來。由於神經網路的輸出維度一般都是固定的。那麼遇到這種情況,就不得不重新迴圈或者或者在原先的基礎上fine tuning。是有比較大的代價的
       當遇到小樣本集時,我們可以用svm進行分類。但是原生的svm只支援二分類。無法解決多分類的問題。tgrocery是一個在小樣本集上表現良好的分類器,它的底層也是svm,但經過包裝,已經支援的多分類,而且訓練和預測速度非常快。

tgrocery地址。下面簡單介紹一下tgorcery的使用
1.安裝(建議使用python2.7,python3.6可能會報錯)

pip install tgrocery

2.使用(原文地址https://textgrocery.readthedocs.io/zh/latest/quick-start.html)

>>> from tgrocery import Grocery
# 新開張一個雜貨鋪(別忘了取名)
>>> grocery = Grocery('sample')
# 訓練文字可以用列表傳入
>>> train_src =
[ ('education', '名師指導託福語法技巧:名詞的複數形式'), ('education', '中國高考成績海外認可 是“狼來了”嗎?'), ('sports', '圖文:法網孟菲爾斯苦戰進16強 孟菲爾斯怒吼'), ('sports', '四川丹稜舉行全國長距登山挑戰賽 近萬人參與') ] >>> grocery.train(train_src) # 也可以用檔案傳入(預設以tab為分隔符,也支援自定義) >>> grocery.train('train_ch.txt') # 儲存模型 >>>
grocery.save() # 載入模型(名字和儲存的一樣) >>> new_grocery = Grocery('sample') >>> new_grocery.load() # 預測 >>> new_grocery.predict('考生必讀:新託福寫作考試評分標準') education # 測試 >>> test_src = [ ('education', '福建春季公務員考試報名18日截止 2月6日考試'), ('sports', '意甲首輪補賽交戰記錄:米蘭客場8戰不敗國米10年連勝'), ] >>> new_grocery.test(test_src) # 輸出測試的準確率 0.5 # 同樣可支援檔案傳入 >>> new_grocery.test('test_ch.txt') # 自定義分詞模組(必須是一個函式) >>> custom_grocery = Grocery('custom', custom_tokenize=list)