nlp(一)用tgrocery實現文字分類
阿新 • • 發佈:2018-11-13
隨著深度學習的興起,很多文字分類都轉向用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)