Python 1行代码实现文本分类(实战笔记),含代码详细说明及运行结果
Python 1行代码实现文本分类(实战笔记),含代码详细说明及运行结果
一、详细说明及代码 tc.py
=================================================================
#coding=utf-8
__author__ = 'huangzhi'
#pip install textblob #需要安装
#python -m textblob.download_corpora #需要安装
from textblob.classifiers import NaiveBayesClassifier
from textblob import TextBlob
import pickle #训练数据
train = [
('ACACIA 骑行 服 套装 男 抓绒 长袖 山 车 秋冬 自行车 服 装备 骑行 裤 长裤', '服装'),
('自行车 行车 货架 货架 单车 货架 自行 自行车 行车 装备', '自行车配件'),
('acacia 骑行 裤 长裤 夏季 骑行 服饰 透气 防晒 自行车 裤 春秋 防风 裤', '服装'),
('ACACIA 自行车 LED 尾灯 骑行 警示灯 鞍座 灯 坐垫 灯 山 车 配件 尾灯', '自行车配件'),
('秋冬 加厚 打底 底裤 黑色 弹力 紧身 女裤 铅笔 裤子', '服装'),
('自行车 把 套 副 把 人体工学 把 套 羊角 把 套 套装 骑行 装备 山 车 配件', '自行车配件'),
("ACACIA 自行车 LED 尾灯 山 车 警示灯 骑行 车尾灯 自行车 装备 配件", '自行车配件'),
('acacia 山 车 挡泥板 山 自行车 挡泥板 挡雨板 快 拆 加长 全包 挡泥 配件', '自行车配件'),
('彩宝莉 春秋季 睡衣 女 长袖 长裤 针织 棉 可爱 卡通 pink 家居服 套装', '服装'),
("男士 保暖 裤加绒 秋冬 棉裤 男 绒裤 加厚 男士 打 底裤 冬 紧身 秋裤 单件 毛裤", '服装'),
('可外 穿 夏季 情侣 睡衣 女 格子裙 纯棉 短袖 家居服 套装 男士 全棉 夏款', '服装'),
('自行车 码表 磁头 扁 辐条 圆 辐条 磁头 码表 山 车 测速器 磁铁 强力', '自行车配件')
] #测试用例
test = [
('新款 纯棉 夏季 短袖 睡衣 蕾丝 可爱 爱家 家居 家居服 套装', '服装'),
('ACACIA 自行车 多功能 组合 工具 山 车 修车 工具 骑行 带 截连器 修车 套装', '自行车配件'),
("屏幕 自行车 码表 夜光 防水 温度 骑行 码表 有线 骑行 装备", '自行车配件'),
("秋冬 加厚 打底 底裤 黑色 弹力 紧身 女裤 铅笔 裤子", '服装'),
('秋季 新款 打底 底裤 蕾丝 仿皮 铅笔 长裤 裤子', '服装'),
("自行 自行车 行车 条形 彩色 支架 防盗 防盗锁 电动 电动车 动车 锁具 钢丝 骑行 行装 装备", '自行车配件')
] #训练
cl = NaiveBayesClassifier(train) # 文本分类
print(cl.classify("屏幕 自行车 码表 夜光 防水 温度 骑行 码表 有线 骑行 装备")) # "自行车配件"
print(cl.classify("男士 保暖 裤加绒 秋冬 棉裤 男 绒裤 加厚 男士 打 底裤 冬 紧身 秋裤 单件 毛裤")) # "服装"
# 段落分类
blob = TextBlob("奶奶的 一大早 我的 自行车 坐垫 破了. 赶紧 叫 小明 穿上 他的 新款 打底裤. "
"小明 骑上 他的 自行车 帮我买 自行车 坐垫.", classifier=cl) print(blob.classify()) for sentence in blob.sentences:
print(sentence) #段落中的句子
print(sentence.classify()) #句子分类
# 测试用例的精度
print("Accuracy: {0}".format(cl.accuracy(test)))
#
# 显示10条对比信息
cl.show_informative_features(10) #模型保存
f = open('D:/pyfenlei/Text_Classification/huangzhicl1.pickle', 'wb')
pickle.dump(cl, f)
f.close() #加载模型
f = open('D:/pyfenlei/Text_Classification/huangzhicl1.pickle', 'rb')
hzcl = pickle.load(f)
f.close() #用加载的模型测试用例数据
print("Accuracy: {0}".format(hzcl.accuracy(test)))
=================================================================
二、运行结果如下:
D:\Programs\Python\Python36-64\python.exe D:/pyfenlei/Text_Classification/tc1.py
自行车配件
服装
自行车配件
奶奶的 一大早 我的 自行车 坐垫 破了.
自行车配件
赶紧 叫 小明 穿上 他的 新款 打底裤.
服装
小明 骑上 他的 自行车 帮我买 自行车 坐垫.
自行车配件
Accuracy: 1.0
Most Informative Features
contains(山) = False 服装 : 自行车配件 = 3.7 : 1.0
contains(车) = False 服装 : 自行车配件 = 3.7 : 1.0
contains(山) = True 自行车配件 : 服装 = 3.7 : 1.0
contains(车) = True 自行车配件 : 服装 = 3.7 : 1.0
contains(自行车) = True 自行车配件 : 服装 = 2.6 : 1.0
contains(配件) = False 服装 : 自行车配件 = 2.6 : 1.0
contains(装备) = True 自行车配件 : 服装 = 2.3 : 1.0
contains(套装) = True 服装 : 自行车配件 = 2.3 : 1.0
contains(秋冬) = False 自行车配件 : 服装 = 1.9 : 1.0
contains(长裤) = False 自行车配件 : 服装 = 1.9 : 1.0
Accuracy: 1.0
Process finished with exit code 0
三、保存模型
f = open('D:/pyfenlei/Text_Classification/huangzhicl1.pickle', 'wb')
pickle.dump(cl, f)
f.close()
四、加载模型并用测试数据进行预测
f = open('D:/pyfenlei/Text_Classification/huangzhicl1.pickle', 'rb')
hzcl = pickle.load(f)
f.close()
#用加载的模型测试用例数据
print("Accuracy: {0}".format(hzcl.accuracy(test)))
本人原创,未经许可,可随意转载
Python 1行代码实现文本分类(实战笔记),含代码详细说明及运行结果的更多相关文章
- 文本分类实战(十)—— BERT 预训练模型
1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 te ...
- 文本分类实战(八)—— Transformer模型
1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 te ...
- 文本分类实战(六)—— RCNN模型
1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 te ...
- 文本分类实战(五)—— Bi-LSTM + Attention模型
1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 te ...
- 文本分类实战(四)—— Bi-LSTM模型
1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 te ...
- 文本分类实战(二)—— textCNN 模型
1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 te ...
- 文本分类实战(九)—— ELMO 预训练模型
1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 te ...
- 文本分类实战(七)—— Adversarial LSTM模型
1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 te ...
- 文本分类实战(三)—— charCNN模型
1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 te ...
随机推荐
- nginx集群tomcat,session共享问题
tomcat-redis-session-manager版本: apache-tomcat-8.0.32.nginx-1.13.12.redis_3.2.1 github地址: https://git ...
- Scrapy学习篇(十三)之scrapy-splash
之前我们学习的内容都是抓取静态页面,每次请求,它的网页全部信息将会一次呈现出来. 但是,像比如一些购物网站,他们的商品信息都是js加载出来的,并且会有ajax异步加载.像这样的情况,直接使用scrap ...
- 程序员面试50题(1)—查找最小的k个元素[算法]
题目:输入n个整数,输出其中最小的k个.例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4. 分析:这道题最简单的思路莫过于把输入的n个整数排序,这样排在最前面的k个数 ...
- LdA笔记
LDA算法最初的论文使用的是变分EM方法训练(Variational Inference).该方法较为复杂,而且最后训练出的topic主题非全局最优分布,而是局部最优分布.后期发明了Collapsed ...
- DIV+CSS实战(四)
一.说明 在上篇博文<DIV+CSS(三)>中,一个页面基本上展示出来了!下面实现以下页面上的一些功能,比方批量删除等功能.这里以批量删除为例,批量禁止,批量启用和批量删除差不多,只不过一 ...
- 2017 pycharm 激活码
BIG3CLIK6F-eyJsaWNlbnNlSWQiOiJCSUczQ0xJSzZGIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiI ...
- golang闭包里的坑
介绍 go的闭包是一个很有用的东西.但是如果你不了解闭包是如何工作的,那么他也会给你带来一堆的bug.这里我会拿出Go In Action这本书的一部分代码,来说一说在使用闭包的时候可能遇到的坑.全部 ...
- 几个经典的数学库之一学习---VCGlib(2)
几个经典的数学库之一学习---VCGlib(2) 1. Optional Component(可选的组件) 有许多Vertex和Face的属性并不是一直都是必要的,如Face-Face的邻接关系.VC ...
- Alpha阶段项目复审(小小大佬带飞队)
Alpha阶段项目复审 小组的名字 优点 缺点,bug报告(至少140字) 最终名次(无并列) 只会嘤嘤嘤队 题材比较新颖!游戏和记单词的结合 有浏览器不兼容问题 5 GG队 样式新颖,自动导入好评 ...
- [FRAMESET][PHP]Frameset下面使用php-header('location:...') redirect链接
一般,我们的管理后台都是使用frameset来进行布局的,所以如果我们对后台的登录会话时间进行了设定,那么在超过该时间session失效之后,那么我们就必须要在php文件中进行判断处理. 判断会话失效 ...