摘要:古龍說,無論什么東西,最好的都只有一種。經(jīng)歷半年的文本分類實踐,我們基本已斷定,最好的文本分類算法就是支持向量機。有沒有可能把最好的文本分類算法,包裝成一個超級簡單的工具提供給大家這是我開發(fā)的初衷。
古龍說,無論什么東西,最好的都只有一種。經(jīng)歷半年的文本分類實踐,我們基本已斷定,最好的文本分類算法就是SVM -- 支持向量機。
但是縱然知道了天機,新手做文本分類仍然需要學(xué)習(xí)不少東西,例如算法原理、分詞、向量化等等。如果用上scikit-learn這樣的龐然大物,更有種高射炮打蚊子的異樣感。
有沒有可能把最好的文本分類算法,包裝成一個超級簡單的工具提供給大家?
這是我開發(fā)TextGrocery的初衷。
幸好,我不是沒有參照系。LibShortText打下了一個很好的基礎(chǔ),不僅提供了足夠簡單的API,而且背后的原理也有扎實的實驗數(shù)據(jù)支撐(不過濾停用詞,不過濾詞性,使用線性核)。當(dāng)然,LibShortText也有顯著的缺陷:
不支持中文分詞,這導(dǎo)致其在中文語料上的表現(xiàn)一塌糊涂
Analyzer模塊不僅多余,而且輸出全部為無格式文本,不可愛
如果不是專業(yè)的算法人員,默認(rèn)參數(shù)永遠(yuǎn)是最好的選擇,所以參數(shù)的自定義并不是很必要
中間數(shù)據(jù)的保存全部以文件格式,每次的訓(xùn)練和測試留下一些陌生文件,而且小規(guī)模的訓(xùn)練和測試用列表對象會更合適
代碼很不Pythonic,也不支持Pypi的簡便安裝方式
總而言之,LibShorText雖然有引以為傲的技術(shù),但對技術(shù)的使用者來說是不友好的。而TextGrocery希望把LibShortText變得更友好一些。
TextGrocery,是一個怎樣的雜貨鋪?
引入結(jié)巴分詞作為內(nèi)置的默認(rèn)分詞器
精簡LibShortText的代碼,去掉Analyzer和參數(shù)自定義模塊,修復(fù)bug,改善PEP8
訓(xùn)練和測試的文本都支持列表傳入
提供Pypi的安裝方式
示例代碼python>>> from tgrocery import Grocery # 新開張一個雜貨鋪,別忘了取名! >>> grocery = Grocery("sample") # 訓(xùn)練文本可以用列表傳入 >>> train_src = [ ("education", "名師指導(dǎo)托福語法技巧:名詞的復(fù)數(shù)形式"), ("education", "中國高考成績海外認(rèn)可 是“狼來了”嗎?"), ("sports", "圖文:法網(wǎng)孟菲爾斯苦戰(zhàn)進(jìn)16強 孟菲爾斯怒吼"), ("sports", "四川丹棱舉行全國長距登山挑戰(zhàn)賽 近萬人參與") ] >>> grocery.train(train_src) # 也可以用文件傳入 >>> grocery.train("train_ch.txt") # 保存模型 >>> grocery.save() # 加載模型(名字和保存的一樣) >>> new_grocery = Grocery("sample") >>> new_grocery.load() # 預(yù)測 >>> new_grocery.predict("考生必讀:新托福寫作考試評分標(biāo)準(zhǔn)") education # 測試 >>> test_src = [ ("education", "福建春季公務(wù)員考試報名18日截止 2月6日考試"), ("sports", "意甲首輪補賽交戰(zhàn)記錄:米蘭客場8戰(zhàn)不敗國米10年連勝"), ] >>> new_grocery.test(test_src) # 準(zhǔn)確率 0.5 # 同樣可以用文本傳入 >>> new_grocery.test("test_ch.txt") # 自定義分詞器 >>> custom_grocery = Grocery("custom", custom_tokenize=list)安裝
pip install tgrocery
讓文本分類更爽一些吧!
GitHub傳送門 --> TextGrocery
未完成訓(xùn)練時仍然要耗費寫入.svm的文件再讀取的額外I/O時間,下一步希望改成直接通過內(nèi)存?zhèn)鬟f
LibLinear的輸出實際上可以看成一個dict,包含一個樣本對所有類別的決策變量,目前僅把值最高的類別取了出來,也許有朋友會想用這個決策變量做一些更有趣的事情。
0.2版本會提供過程數(shù)據(jù)和結(jié)果數(shù)據(jù)的統(tǒng)計工具
盜火者普羅米修斯是希臘神話中的一個人物,他從太陽神阿波羅那里盜走火種送給人類,給人類帶來的光明,他因此而受到宙斯的處罰,被綁在高加索山,每日忍受風(fēng)吹日曬和鷲鷹啄食。
希望會有志同道合的同學(xué)加入到「盜火者」的行列,一起來讓機器學(xué)習(xí)更簡單!
來自:建造者說
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/45338.html
摘要:我們這次用的數(shù)據(jù)集不再是中內(nèi)置的數(shù)據(jù)集,而是自定義的數(shù)據(jù)集,我們先看一下我們的數(shù)據(jù)所有的數(shù)據(jù)都存儲在這個文件夾中文件夾中有與這兩個子文件夾分別存放的是飛機與湖泊的衛(wèi)星圖像目錄導(dǎo)入庫導(dǎo)入庫導(dǎo)入庫數(shù)據(jù)處理數(shù)據(jù)處理數(shù)據(jù)處理獲取 我們這次用的數(shù)據(jù)集不再是tensorflow中內(nèi)置的數(shù)據(jù)集,而是自定義...
摘要:在不懂和等協(xié)議的情況下,我直接打個比方來解釋一下什么是請求,以瀏覽器為例,人在瀏覽器輸入,然后敲擊鍵,直到頁面出現(xiàn),整個過程,我們可以抽象為我們向百度服務(wù)器發(fā)起的一次請求。更專業(yè),更詳細(xì)的解釋,自己去百度學(xué)習(xí)吧。 前言 ??剛學(xué)完python基礎(chǔ),想學(xué)習(xí)爬蟲的新手,這里有你想要的東西。??本文著重點在于教新手如何學(xué)習(xí)爬蟲,并且會以外行人的思維進(jìn)行形象地講解。最近我一兄弟想學(xué),我就想寫個...
摘要:而檢驗?zāi)P陀玫降脑牧希ㄑυ评蠋熖峁┑拿膳ED痰脑u論,以及從網(wǎng)絡(luò)購買的某款手機的評論數(shù)據(jù)見附件。不同行業(yè)某些詞語的詞頻會有比較大的差別,而這些詞有可能是情感分類的關(guān)鍵詞之一。這是由于文本情感分類的本質(zhì)復(fù)雜性所致的。 文本情感分類--傳統(tǒng)模型(轉(zhuǎn)) showImg(https://segmentfault.com/img/bVKjWF?w=2192&h=534); 傳統(tǒng)的基于情感詞典...
閱讀 3881·2021-09-10 11:22
閱讀 2347·2021-09-03 10:30
閱讀 3668·2019-08-30 15:55
閱讀 1900·2019-08-30 15:44
閱讀 848·2019-08-30 15:44
閱讀 593·2019-08-30 14:04
閱讀 3048·2019-08-29 17:18
閱讀 1271·2019-08-29 15:04