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已经码好,作者主要写了段对批量文本做预测的代码,希望能有用。


         下面博主将会将短文本分类部署到一个简单的服务器上,具体见下节

原文地址:https://www.cnblogs.com/Climbing-Snail/p/6410983.html