快捷搜索: 王者荣耀 脱发

nlp(一)用tgrocery实现文本分类

随着深度学习的兴起,很多文本分类都转向用cnn这样的网络来处理。但是使用神经网络模型进行文本分类是有一定前提条件的,那就是要有足够的样本来训练模型中的参数。但是很多情况下,我能能够搜集到的样本不会太多,而且分类的个数是不一定的。比如,原先我有一个新闻集,要求分为“政治”,“经济”,“文化”三种。但是那一天有要求我们再分出一个“体育”分类来。由于神经网络的输出维度一般都是固定的。那么遇到这种情况,就不得不重新循环或者或者在原先的基础上fine tuning。是有比较大的代价的 当遇到小样本集时,我们可以用svm进行分类。但是原生的svm只支持二分类。无法解决多分类的问题。tgrocery是一个在小样本集上表现良好的分类器,它的底层也是svm,但经过包装,已经支持的多分类,而且训练和预测速度非常快。。下面简单介绍一下tgorcery的使用 1.安装(建议使用python2.7,python3.6可能会报错)

pip install tgrocery
>>> 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)
经验分享 程序员 微信小程序 职场和发展