古龙说,无论什么东西,最好的都只有一种。经历半年的文本分类实践,我们基本已断定,最好的文本分类算法就是SVM — 支持向量机。
但是纵然知道了天机,新手做文本分类仍然需要学习不少东西,例如算法原理、分词、向量化等等。如果用上scikit-learn这样的庞然大物,更有种高射炮打蚊子的异样感。
有没有可能把最好的文本分类算法,包装成一个超级简单的工具提供给大家?
这是我开发TextGrocery的初衷。
幸好,我不是没有参照系。LibShortText打下了一个很好的基础,不仅提供了足够简单的API,而且背后的原理也有扎实的实验数据支撑(不过滤停用词,不过滤词性,使用线性核)。当然,LibShortText也有显著的缺陷:
总而言之,LibShorText虽然有引以为傲的技术,但对技术的使用者来说是不友好的。而TextGrocery希望把LibShortText变得更友好一些。
TextGrocery,是一个怎样的杂货铺?
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
普罗米修斯是希腊神话中的一个人物,他从太阳神阿波罗那里盗走火种送给人类,给人类带来的光明,他因此而受到宙斯的处罚,被绑在高加索山,每日忍受风吹日晒和鹫鹰啄食。
希望会有志同道合的同学加入到「盗火者」的行列,一起来让机器学习更简单!
来自:建造者说
上一篇:SAE的Tornado开发经验