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行代码实现文本分类(实战笔记),含代码详细说明及运行结果的更多相关文章

  1. 文本分类实战(十)—— BERT 预训练模型

    1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 te ...

  2. 文本分类实战(八)—— Transformer模型

    1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 te ...

  3. 文本分类实战(六)—— RCNN模型

    1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 te ...

  4. 文本分类实战(五)—— Bi-LSTM + Attention模型

    1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 te ...

  5. 文本分类实战(四)—— Bi-LSTM模型

    1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 te ...

  6. 文本分类实战(二)—— textCNN 模型

    1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 te ...

  7. 文本分类实战(九)—— ELMO 预训练模型

    1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 te ...

  8. 文本分类实战(七)—— Adversarial LSTM模型

    1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 te ...

  9. 文本分类实战(三)—— charCNN模型

    1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 te ...

随机推荐

  1. EF生成的SQL语句执行顺序问题。

    //实体被更改后,再做删除,EF只生成删除语句 //实体删除后再更改,EF报错 //添加语句会再,更改,删除后执行,更AddObject位置无关 //一个实体多个字段被改,只会生成一句update / ...

  2. Map的常用操作

    public static void main(String[] args) { Map<String, String> map = new HashMap<>(); map. ...

  3. 关于this对象

    1.在全局函数中this指的是window 2.当函数被当做方法调用时,this等于那个对象 3.匿名函数具有全局性,只要是匿名函数,this指向window 实例1: var name = 'the ...

  4. SPI通信协议(SPI总线)学习

    1.什么是SPI? SPI是串行外设接口(Serial Peripheral Interface)的缩写.是 Motorola 公司推出的一 种同步串行接口技术,是一种高速的,全双工,同步的通信总线. ...

  5. LDA汇总

    1.Blei的LDA代码(C):http://www.cs.princeton.edu/~blei/lda-c/index.html2.D.Bei的主页:http://www.cs.princeton ...

  6. 怎样使用word2013发布csdn博客

    目前大部分的博客作者在用Word写博客这件事情上都会遇到以下3个痛点: 1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客.使用Word写 ...

  7. 6) mvn archetype:create-from-project

    cd %old%mvn archetype:create-from-projectcd %old%/target/generated-sources/archetype mvn installcd % ...

  8. 20155202 2016-2017-2 《Java程序设计》第6周学习总结

    20155202 2016-2017-2 <Java程序设计>第6周学习总结 教材学习内容总结 输入输出 数据从来源取出:输入串流 java.io.InputStream 写入目的的:输出 ...

  9. smarty-2014-02-28

    使用smarty,在tpl文件中如何使用相对路径调用css&javascript文件,实际上这个相对路径的参照物就是以调用该tpl文件的php文件来写. 假如,我在index.php这个文件中 ...

  10. 发个招聘贴,魔都求手游C++后端,UNITY前端,开发实习生

    上海游旺网络科技有限公司成立于2015年5月,是一家极具潜力的新创移动游戏公司.公司初创团队均来自腾讯,盛大,畅游,墨麟,蜗牛等知名互联网公司,公司创始人团队参与制作过<鬼吹灯><Q ...