Tgrocery学习及使用
能够学习到短文本分类模型——Tgrocery,十分感谢@GavinBuildSomething把源码及测试数据分享,在此我也作为一名学习者将自己的学习过程记录下来,希望对其他人有所帮助。
1.学习Tgrocery
这是作者在github上的项目链接包括源码及测试——https://github.com/2shou/TextGrocery
2.Tgrocery使用及细节问题
运行环境:Linux 、mac os (这个必须注意,不然无法运行)
(1)安装Linux
首先需要安装Linux系统,作者安装的是ubuntu14,下载及安装具体见http://www.cnblogs.com/Climbing-Snail/p /6410128.html(安装ubuntu14是有原因的,在后面遇到会说明)
(2)查看python版本,以及安装交互环境idle
Ubuntu会默认安装python,在命令行输入python可以查看python版本。
这里可以看出使用的python版本为2.7.6 接下来安装python的交互环境idle,在命令行输入下面命令:
sudo apt-get install idle
运行idle可以通过在命令行输入 /usr/bin/idle-python2.7 ,也可以通过图形桌面查找idle,并将其托至左侧创建快捷图标。
(3)安装tgrocery库
Tgrocery是一个python的第三方库,按照作者的话说,在python第三方库中“只此一家,别无分店”。
pip install tgrocery
通过命令 dpkg -s tgrocery 查看包是否安装成功,奇怪的是竟然显示没有安装(当然可能也是刚使用Linux系统,命令不熟,请各位指教)
那么在idle中导入tgrocery来验证是否安装成功,居然是成功的,那么这样就可以顺利进行下面的测试啦。
(4)在idle中测试
已经训练成功,但是出现了python2到python3的兼容问题,后面也不会出现预测值等。这个问题楼主百度了很久都没有解决,后来想到在命令行执行。(这也是博主选择ubuntu14以及python2的原因)
(5)命令行执行测试代码
成功啦!!!
下面将测试代码附上
classify1.py
# coding: utf-8 from tgrocery import Grocery grocery = Grocery('test')
train_src = [
('education', '名师指导托福语法技巧:名词的复数形式'),
('education', '中国高考成绩海外认可 是“狼来了”吗?'),
('sports', '图文:法网孟菲尔斯苦战进16强 孟菲尔斯怒吼'),
('sports', '四川丹棱举行全国长距登山挑战赛 近万人参与')
]
grocery.train(train_src)
print grocery.get_load_status()
predict_result = grocery.predict('考生必读:新托福写作考试评分标准')
print predict_result
print predict_result.dec_values
classify2.py
# coding: utf-8 from tgrocery import Grocery grocery = Grocery('read_text')
train_src = '/home/wx/sample_data/train_file.txt'
grocery.train(train_src)
print grocery.get_load_status() predict_result = grocery.predict('考生必读:新托福写作考试评分标准')
print predict_result
print predict_result.dec_values
test1.py
# coding: utf-8 from tgrocery import Grocery grocery = Grocery('test')
train_src = [
('education', '名师指导托福语法技巧:名词的复数形式'),
('education', '中国高考成绩海外认可 是“狼来了”吗?'),
('sports', '图文:法网孟菲尔斯苦战进16强 孟菲尔斯怒吼'),
('sports', '四川丹棱举行全国长距登山挑战赛 近万人参与')
]
grocery.train(train_src)
print grocery.get_load_status() test_src = [
('education', '福建春季公务员考试报名18日截止 2月6日考试'),
('sports', '意甲首轮补赛交战记录:米兰客场8战不败国米10年连胜'),
]
test_result = grocery.test(test_src)
print test_result.accuracy_labels
print test_result.recall_labels
test4.py
# coding: utf-8 from tgrocery import Grocery grocery = Grocery('read_text')
train_src = '/home/wx/sample_data/train_file.txt'
grocery.train(train_src)
print grocery.get_load_status() f=open('/home/wx/sample_data/question.txt','r')
question=f.readlines()
for line in question:
line=line.strip()
predict_result = grocery.predict(line)
print line
print predict_result
print predict_result.dec_values
f.close()
前三段代码2shou已经码好,作者主要写了段对批量文本做预测的代码,希望能有用。
下面博主将会将短文本分类部署到一个简单的服务器上,具体见下节
Tgrocery学习及使用的更多相关文章
- 从直播编程到直播教育:LiveEdu.tv开启多元化的在线学习直播时代
2015年9月,一个叫Livecoding.tv的网站在互联网上引起了编程界的注意.缘于Pingwest品玩的一位编辑在上网时无意中发现了这个网站,并写了一篇文章<一个比直播睡觉更奇怪的网站:直 ...
- Angular2学习笔记(1)
Angular2学习笔记(1) 1. 写在前面 之前基于Electron写过一个Markdown编辑器.就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成:但就代码而言,之 ...
- ABP入门系列(1)——学习Abp框架之实操演练
作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...
- 消息队列——RabbitMQ学习笔记
消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- Unity3d学习 制作地形
这周学习了如何在unity中制作地形,就是在一个Terrain的对象上盖几座小山,在山底种几棵树,那就讲一下如何完成上述内容. 1.在新键得项目的游戏的Hierarchy目录中新键一个Terrain对 ...
- 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...
- 菜鸟Python学习笔记第一天:关于一些函数库的使用
2017年1月3日 星期二 大一学习一门新的计算机语言真的很难,有时候连函数拼写出错查错都能查半天,没办法,谁让我英语太渣. 关于计算机语言的学习我想还是从C语言学习开始为好,Python有很多语言的 ...
- 多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类)
前言:刚学习了一段机器学习,最近需要重构一个java项目,又赶过来看java.大多是线程代码,没办法,那时候总觉得多线程是个很难的部分很少用到,所以一直没下决定去啃,那些年留下的坑,总是得自己跳进去填 ...
随机推荐
- xnconvert 图片转换工具
xnconvert是一款简单高效的图片转换工具.xnconvert能够批量地进行图片格式转换,并具有一定的图片处理功能,可以增加水印.特效,支持放大缩小.旋转等. xnconvert功能介绍: 你可以 ...
- UltraEdit窗口布局重新设置
解决办法:工具栏中的视图-->环境-->左边小框里选择“编程员”,再点选择环境 转载:https://blog.csdn.net/u011650048/article/details/18 ...
- 如何将div中的内容设置为空同时还要保留div本身
将div的innerHTML置为空即可,下面有2类方法可以实现: 假设有如下的html片段: <div id="test">这是要删除的内容,还要保留test本身< ...
- jquery mobile两个页面以及源码(登录与注册) 转
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 ...
- centos 6 下KVM 安装学习之旅
一.虚拟化介绍 虚拟化是云计算的基础.简单的说,虚拟化使得在一台物理的服务器上可以跑多台虚拟机,虚拟机共享物理机的 CPU.内存.IO 硬件资源,但逻辑上虚拟机之间是相互隔离的. 物理机我们一般 ...
- TCL脚本语言基础介绍
Tcl简介(一):Tcl 语法 Tcl 语法 Tcl是一种很通用的脚本语言,它几乎在所有的平台上都可以释运行,其强大的功能和简单精妙的语法会使你感到由衷的喜悦,这片文章对 Tcl有很好的描述和说明.如 ...
- RecyclerView的点击事件添加-------接口回调的形式添加
package com.example.recyclerviewdemo; import android.support.v7.widget.RecyclerView; import android. ...
- [ERR] Node 192.168.25.135:7001 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.
原文链接:https://www.cnblogs.com/huxinga/p/6644226.html 解决办法:将redis全部shutdown 将每个节点下aof.rdb.nodes.conf本地 ...
- BCH/BSV coin split troubleshooting
BCH/BSV coin split troubleshootingMark Lundeberg 2018 November 27ResourcesGuides:Locktime based spli ...
- js 正则表达式:密码必须由6-12位数字加字母组成
^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,12}$