摘要:古龍說,無論什么東西,最好的都只有一種。經歷半年的文本分類實踐,我們基本已斷定,最好的文本分類算法就是支持向量機。有沒有可能把最好的文本分類算法,包裝成一個超級簡單的工具提供給大家這是我開發的初衷。
古龍說,無論什么東西,最好的都只有一種。經歷半年的文本分類實踐,我們基本已斷定,最好的文本分類算法就是SVM -- 支持向量機。
但是縱然知道了天機,新手做文本分類仍然需要學習不少東西,例如算法原理、分詞、向量化等等。如果用上scikit-learn這樣的龐然大物,更有種高射炮打蚊子的異樣感。
有沒有可能把最好的文本分類算法,包裝成一個超級簡單的工具提供給大家?
這是我開發TextGrocery的初衷。
幸好,我不是沒有參照系。LibShortText打下了一個很好的基礎,不僅提供了足夠簡單的API,而且背后的原理也有扎實的實驗數據支撐(不過濾停用詞,不過濾詞性,使用線性核)。當然,LibShortText也有顯著的缺陷:
不支持中文分詞,這導致其在中文語料上的表現一塌糊涂
Analyzer模塊不僅多余,而且輸出全部為無格式文本,不可愛
如果不是專業的算法人員,默認參數永遠是最好的選擇,所以參數的自定義并不是很必要
中間數據的保存全部以文件格式,每次的訓練和測試留下一些陌生文件,而且小規模的訓練和測試用列表對象會更合適
代碼很不Pythonic,也不支持Pypi的簡便安裝方式
總而言之,LibShorText雖然有引以為傲的技術,但對技術的使用者來說是不友好的。而TextGrocery希望把LibShortText變得更友好一些。
TextGrocery,是一個怎樣的雜貨鋪?
引入結巴分詞作為內置的默認分詞器
精簡LibShortText的代碼,去掉Analyzer和參數自定義模塊,修復bug,改善PEP8
訓練和測試的文本都支持列表傳入
提供Pypi的安裝方式
示例代碼python>>> from tgrocery import Grocery # 新開張一個雜貨鋪,別忘了取名! >>> grocery = Grocery("sample") # 訓練文本可以用列表傳入 >>> train_src = [ ("education", "名師指導托福語法技巧:名詞的復數形式"), ("education", "中國高考成績海外認可 是“狼來了”嗎?"), ("sports", "圖文:法網孟菲爾斯苦戰進16強 孟菲爾斯怒吼"), ("sports", "四川丹棱舉行全國長距登山挑戰賽 近萬人參與") ] >>> grocery.train(train_src) # 也可以用文件傳入 >>> 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)安裝
pip install tgrocery
讓文本分類更爽一些吧!
GitHub傳送門 --> TextGrocery
未完成訓練時仍然要耗費寫入.svm的文件再讀取的額外I/O時間,下一步希望改成直接通過內存傳遞
LibLinear的輸出實際上可以看成一個dict,包含一個樣本對所有類別的決策變量,目前僅把值最高的類別取了出來,也許有朋友會想用這個決策變量做一些更有趣的事情。
0.2版本會提供過程數據和結果數據的統計工具
盜火者普羅米修斯是希臘神話中的一個人物,他從太陽神阿波羅那里盜走火種送給人類,給人類帶來的光明,他因此而受到宙斯的處罰,被綁在高加索山,每日忍受風吹日曬和鷲鷹啄食。
希望會有志同道合的同學加入到「盜火者」的行列,一起來讓機器學習更簡單!
來自:建造者說
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/45338.html
摘要:在不懂和等協議的情況下,我直接打個比方來解釋一下什么是請求,以瀏覽器為例,人在瀏覽器輸入,然后敲擊鍵,直到頁面出現,整個過程,我們可以抽象為我們向百度服務器發起的一次請求。更專業,更詳細的解釋,自己去百度學習吧。 前言 ??剛學完python基礎,想學習爬蟲的新手,這里有你想要的東西。??本文著重點在于教新手如何學習爬蟲,并且會以外行人的思維進行形象地講解。最近我一兄弟想學,我就想寫個...
閱讀 3870·2021-09-10 11:22
閱讀 2325·2021-09-03 10:30
閱讀 3660·2019-08-30 15:55
閱讀 1873·2019-08-30 15:44
閱讀 840·2019-08-30 15:44
閱讀 582·2019-08-30 14:04
閱讀 3042·2019-08-29 17:18
閱讀 1262·2019-08-29 15:04