内容简介:,内容是从网上搜集的情感文本数据,简单地经过分词后用空格拼接起来。训练集和测试集各有10000条数据Pytext框架包括了Task, Trainer, Model, DataHandler, Exporter 组件,分别对应了任务切换、模型训练、模型结构、数据处理、模型导出的作用,它们都继承自名Component的类(图片来自:
train.tsv
和
test.tsv
,内容是从网上搜集的情感文本数据,简单地经过分词后用空格拼接起来。训练集和测试集各有10000条数据
2 构建文本分类器
Pytext框架包括了Task, Trainer, Model, DataHandler, Exporter 组件,分别对应了任务切换、模型训练、模型结构、数据处理、模型导出的作用,它们都继承自名Component的类
(图片来自: pytext-pytext.readthedocs-hosted.com/en/latest/o…
Component可以读取JSON类型的配置文件,配置文件可以设置训练过程中使用的输入和学习率等参数。按照官方文本分类教程,我们几乎可以不需要实现模型,输入,输出等代码,只需要准备好数据集即可。
docnn.json的内容如下:
{ "task": { "DocClassificationTask": { "data_handler": { "train_path": "train.tsv", "eval_path": "test.tsv", "test_path": "test.tsv" } } } } 复制代码
- 步骤1 训练模型:
pytext train < docnn.json 复制代码
经过3-4分钟后,10 epoch训练完毕,在没有使用词向量以及直接使用默认设置,在测试集的预测效果如下,
- 步骤2 导出模型
CONFIG=docnn.json pytext export --output-path model.c2 < "$CONFIG" 复制代码
在桌面上我们可以看到导出的模型 model.c2
- 步骤3 模型预测 参考意图识别的例子,我写了下面的测试代码
# !/usr/bin/env python3 # -*- coding:utf-8 _*- """ @Author:yanqiang @File: demo.py @Time: 2018/12/21 19:06 @Software: PyCharm @Description: """ import sys import pytext import jieba config_file = sys.argv[1] model_file = sys.argv[2] text = sys.argv[3] text = " ".join([word for word in jieba.cut(text)]) config = pytext.load_config(config_file) predictor = pytext.create_predictor(config, model_file) # Pass the inputs to PyText's prediction API result = predictor({"raw_text": text}) # Results is a list of output blob names and their scores. # The blob names are different for joint models vs doc models # Since this tutorial is for both, let's check which one we should look at. doc_label_scores_prefix = ( 'scores:' if any(r.startswith('scores:') for r in result) else 'doc_scores:' ) # For now let's just output the top document label! best_doc_label = max( (label for label in result if label.startswith(doc_label_scores_prefix)), key=lambda label: result[label][0], # Strip the doc label prefix here )[len(doc_label_scores_prefix):] print("输入句子的情感为:%s" % best_doc_label) 复制代码
我们看看效果:
python main.py "$CONFIG" model.c2 "超级喜欢蒙牛这个味 道" 复制代码
python main.py "$CONFIG" model.c2 "这是什么商品啊!太 差了吧?" 复制代码
3 总结
我们上面过程可以看到,pytext加速了模型从训练到落地的速度,省去了很多繁琐的工程。不过,我们上面的例子模型需要有待提高,需要研究下自定义模型和词向量使用,提高分类效果。
以上所述就是小编给大家介绍的《Pytext实战-构建一个文本分类器有多快》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 《高性能linux服务器构建实战》
- Istio实战系列-Envoy Proxy构建分析
- Java并发编程实战笔记3:基础构建模块
- [译] 项目实战:使用 Go 构建 GraphQL API
- 大牛带你从 0 到 1 构建数据仓库实战
- 实战:向GitHub提交代码时触发Jenkins自动构建
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
jQuery
Earle Castledine、Craig Sharkie / SitePoint / 2010-02-28 / USD 39.95
jQuery: Novice to Ninja is a compilation of best-practice jQuery solutions to meet the most challenging JavaScript problems. In this question-and-answer book on jQuery, you'll find a cookbook of ready......一起来看看 《jQuery》 这本书的介绍吧!