当前位置: 首页 > 工具软件 > TextGrocery > 使用案例 >

TextGrocery短文本分类使用

毛景曜
2023-12-01

TextGrocery是一个基于LibLinear和结巴分词的短文本分类工具,特点是高效易用,同时支持中文和英文语料。
GitHub项目链接

具体的使用可以参考:文档

1、安装

通过GitHub(最新版本)
git clone https://github.com/2shou/TextGrocery.git --depth=1
cd TextGrocery
make

2、通过pip(更稳定)

pip install tgrocery -i http://pypi.douban.com/simple  (这是国内的镜像源)

3、样本数据: train_ch.txt

music:你想干什么
music:星火燎原
music:日出(live版)
music:给我感觉(live版)
music:High High High(live版)
music:姊妹(live版)
music:站在高岗上(live版)
music:感应(live版)
music:了不起(live版)
poem:中秋夜
poem:上堂开示颂
poem:从军行
poem:丹阳送韦参军
poem:乌衣巷
poem:出塞
poem:别董大
poem:剑客
poem:兰溪棹歌
why:大飞机为什么怕小鸟
why:臭鼬怎么保护自己
why:冬天_嘴里为什么冒白气
why:春季天空中飘的小白花是什么
why:冬天为什么会冻伤呢
why:飞机驾驶员怎样知道飞机的飞行高度
why:冬暖夏凉的井水
qa:你老家在哪?
qa:你从哪里来?
qa:你爸爸呢?
qa:你妈妈呢?
qa:你爸爸对你好吗?
qa:你妈妈对你好吗?

4、 部署一个server.py脚本

#-*- coding:utf-8 -*-
import BaseHTTPServer
import urllib

from tgrocery import Grocery
grocery = Grocery('hello')
grocery.train('train_ch.txt',':')
grocery.save()
new_grocery = Grocery('hello')
new_grocery.load()


class RequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
    '''处理请求并返回页面'''

    # 页面模板
    Page = '''cccccc
    '''

    # 处理一个GET请求
    def do_GET(self):

        #print self.path.split('/')[-1]
        retText = classify(self.path.split('/')[-1])
        print retText

        self.send_response(200)
        #self.send_header("Content-Type", "text/html")
        self.send_header('Content-Type', 'application/json')
        self.send_header("Content-Length", str(len(retText)))
        self.end_headers()
        self.wfile.write(retText)

#----------------------------------------------------------------------

def classify(text):
    input_txt = urllib.unquote(text)
    predict_result = new_grocery.predict(input_txt)

    output_txt = predict_result.predicted_y
    dict = predict_result.dec_values
    if dict[predict_result.predicted_y] < 0.15 :
        output_txt = ''

    return output_txt
#----------------------------------------------------------------------
if __name__ == '__main__':
#启动: nohup python server.py > server.log 2>&1 &
    try:
        serverAddress = ('', 8181)
        server = BaseHTTPServer.HTTPServer(serverAddress, RequestHandler)
        server.serve_forever()
    except KeyboardInterrupt:
        print '^C received ,shutting down server'



5、访问:http://ip:8181/上堂开示颂

 类似资料: