1. 输入文本预处理, 通过jieba分词, 空格" "拼接文本串.  每行一个样本, 最后一个单词为双下划线表明label,  __label__'xxx' . eg:

邱县 继刚 家庭 农场 小麦 、 玉米 、 棉花 、 大豆 、 蔬菜 、 苗木 种植 、 销售 ( 依法 须 经 批准 的 项目 , 经 相关 部门 批准 后方 可 开展 经营 活动 ) __label__A
江苏 嘉利欣 农业 科技 有限公司 农业 科技 研发 、 转让 、 咨询服务 展览 展示 服务 现代农业 休闲 观光 种植 、 销售 粮食 、 果蔬 、花卉 、 苗木 种植 中草药 销售 本 公司 种植 的 中草药 ( 特殊 中草药 除外 ) 养殖 、 销售 鱼 、 虾 、 螃蟹 ( 依法 须 经 批准 的 项
目 , 经 相关 部门 批准 后方 可 开展 经营 活动 ) __label__B
赞皇县 和谐 家庭 农场 农作物 果树 蔬菜 种植 销售 需 有关 部门 审批 的 审批 后 经营 __label__C
深圳市 修元 农业 开发 有限公司 农业 开发 、 绿化 工程 、 苗圃 种植 __label__A
# 文本预处理
df2 = pd.read_csv('./industry_dalei_train.txt', encoding='utf-8')
df3 = pd.read_excel('./industry_standard.xlsx', encoding='utf-8') # 映射转换
dalei2label_dict = dict((x, y) for x, y in zip(df3[u'大类名称'], df3[u'大类编号']))
df2['dalei_label'] = df2['sub_industry_name'].apply(lambda x: dalei2label_dict[x])
# 切割
df2['cut_name'] = df2['name'].apply(lambda x: ' '.join(jieba.cut(x)))
df2['cut_business'] = df2['business'].apply(lambda x: ' '.join(jieba.cut(x)))
df2['cut_train'] = df2['cut_name'] + ' ' + df2['cut_business'] + ' __label__' + df2['dalei_label']
df2['cut_train'].to_csv('industry_dalei_train.txt', index=None, header=None, encoding='utf-8')

2. pip install fasttext, 利用fasttext 的python 包进行分类.

# 训练和保存模型
da_clf = fasttext.supervised('./industry_dalei_train.txt', 'models/dalei_clf') # 加载模型
da_clf = fasttext.load_model('./models/dalei_clf.bin') # 测试
res = da_clf.test('./industry_dalei_test.txt')
print res.precision
print res.recall # 预测使用, data为['cut document1' ,'cut document2']
da_clf.predict(data ,k=1) # 预测标签
da_clf.predict_proba(da_df.iloc[:5],k=3) # 预测标签概率

简单高效, 结果也不差.  good luck~

参考:

https://pypi.python.org/pypi/fasttext/

http://www.41443.com/HTML/Python/20160909/449360.html

http://www.360doc.com/content/17/0427/02/20558639_648968041.shtml

fastext 中文文本分类的更多相关文章

  1. Chinese-Text-Classification,用卷积神经网络基于 Tensorflow 实现的中文文本分类。

    用卷积神经网络基于 Tensorflow 实现的中文文本分类 项目地址: https://github.com/fendouai/Chinese-Text-Classification 欢迎提问:ht ...

  2. 基于Text-CNN模型的中文文本分类实战 流川枫 发表于AI星球订阅

    Text-CNN 1.文本分类 转眼学生生涯就结束了,在家待就业期间正好有一段空闲期,可以对曾经感兴趣的一些知识点进行总结. 本文介绍NLP中文本分类任务中核心流程进行了系统的介绍,文末给出一个基于T ...

  3. 基于Text-CNN模型的中文文本分类实战

    Text-CNN 1.文本分类 转眼学生生涯就结束了,在家待就业期间正好有一段空闲期,可以对曾经感兴趣的一些知识点进行总结. 本文介绍NLP中文本分类任务中核心流程进行了系统的介绍,文末给出一个基于T ...

  4. 利用RNN进行中文文本分类(数据集是复旦中文语料)

    利用TfidfVectorizer进行中文文本分类(数据集是复旦中文语料) 1.训练词向量 数据预处理参考利用TfidfVectorizer进行中文文本分类(数据集是复旦中文语料) ,现在我们有了分词 ...

  5. 利用CNN进行中文文本分类(数据集是复旦中文语料)

    利用TfidfVectorizer进行中文文本分类(数据集是复旦中文语料) 利用RNN进行中文文本分类(数据集是复旦中文语料) 上一节我们利用了RNN(GRU)对中文文本进行了分类,本节我们将继续使用 ...

  6. 万字总结Keras深度学习中文文本分类

    摘要:文章将详细讲解Keras实现经典的深度学习文本分类算法,包括LSTM.BiLSTM.BiLSTM+Attention和CNN.TextCNN. 本文分享自华为云社区<Keras深度学习中文 ...

  7. 中文文本分类之TextRNN

    RNN模型由于具有短期记忆功能,因此天然就比较适合处理自然语言等序列问题,尤其是引入门控机制后,能够解决长期依赖问题,捕获输入样本之间的长距离联系.本文的模型是堆叠两层的LSTM和GRU模型,模型的结 ...

  8. 中文文本分类之CharCNN

    文本分类是自然语言处理中一个非常经典的任务,可用的模型非常多,相关的开源代码也非常多了.这篇博客用一个CNN模型,对新闻文本进行分类. 全部代码有4个模块:1.数据处理模块(命名为:cnews_loa ...

  9. CNN在中文文本分类的应用

    深度学习近一段时间以来在图像处理和NLP任务上都取得了不俗的成绩.通常,图像处理的任务是借助CNN来完成的,其特有的卷积.池化结构能够提取图像中各种不同程度的纹理.结构,并最终结合全连接网络实现信息的 ...

随机推荐

  1. Descriptors;Hello1 project中的Web.xml

    Deployment Descriptors(描述符)是一个xml文件,用来描述如何部署一个模块或者应用(根据描述符中定义的配置和容器选项).举例来说,一个EJB的部署描述符会向EJB容器传递如何管理 ...

  2. 【IDE】我的花里胡哨VS

    我的 VS2017 效果图,花里胡哨但十分养眼,利于C/C++ Coding~ 一.主题设置 工具 → 扩展和更新 下载插件 Color Theme Editor for Visual Studio ...

  3. js 前端 table 导出 excel

    园子,github,stackoverflow 关于前端下载的文章不少 园子里大部分都是 利用ActiveXObject对象来实现,可他有个缺点安全等级,还有必须安装excel…… github,st ...

  4. 20175227张雪莹 2018-2019-2 《Java程序设计》第五周学习总结

    20175227张雪莹 2018-2019-2 <Java程序设计>第五周学习总结 教材学习内容总结 第六章接口与实现 接口 接口体中所有的常量访问权限一定是public和static(可 ...

  5. bootstrap之编译CSS和Javascript-0基础安装grunt教程

    昨天晚上看到 bootstrap 全局CSS样式中 使用Less 章节中提到的通过grunt重新编译CSS和Javascript文件,对于我这样从未接触过windows cmd node控制台 npm ...

  6. Android开发 ---实现ListView的A-Z字母排序和过滤搜索功能

    效果图: 1.activity.xml 描述: 线性布局中一个层叠布局 <?xml version="1.0" encoding="utf-8"?> ...

  7. HTTP,RFC自学心得

    HTTP协议描述的是:发送方与接收方的通信协议,通过两方的自觉遵守而存在,当然有不少的浏览器并没有百分百遵守这份协议. HTTP是运行于应用层的协议,基于TCP协议而运作.基本上是客户/服务器对答模式 ...

  8. MySQL:函数

    函数 一.数学函数 1.绝对值函数ABS(x): x为插入的数据,返回绝对值 2.返回圆周率函数PI(): 无需插入数据,返回圆周率的值,默认为小数点后6位 3.平方根函数SQRT(x): 返回非负数 ...

  9. Echarts tooltip 坐标值修改

    tooltip: { trigger: 'axis', position:function(p){ //其中p为当前鼠标的位置 console.log(p); ] + , p[] - ]; } },

  10. 剑指Offer 15. 反转链表 (链表)

    题目描述 输入一个链表,反转链表后,输出新链表的表头. 题目地址 https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca? ...