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. [hdu P4114] Disney's FastPass

    [hdu P4114] Disney's FastPass Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 32768/32768 ...

  2. Vue-- 监听路由变化,数据无法更新?

    之前写的Vue项目,有个问题困扰了好久.新闻板块有推荐.精华.最新等几个Tab,设想通过切换Tab,改变路由参数(get/news/:tab)去获取对应数据,然后渲染到页面(用的是同一套组件),问题来 ...

  3. Eclipse+Maven+Scala Project+Spark | 编译并打包wordcount程序

    学习用Eclipse+Maven来构建并打包一个简单的单词统计的例程. 本项目源码已托管于Github –>[Spark-wordcount] 第一步 在EclipseIDE中安装Scala插件 ...

  4. linux下配置mysql 与错误解决

    1.下载mysql wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.11-el7-x86_64.tar.gz 2.检查linux是否 ...

  5. sublime3 前端个人常用插件及快捷键

    首先先介绍如何启用插件安装功能: 打开Sublime 3,然后按 ctrl+` 或者在View → Show Console 在打开的窗口里黏贴这个网站上的代码(注意: Sublime 2和3所黏贴的 ...

  6. 在Tomcat中部署Web项目的操作方法,maven项目在Tomcat里登录首页报404

     maven项目在Tomcat里登录首页报404, 解决:编辑conf/server.xml进行配置<Host>里的<Context>标签里的path. <Context ...

  7. CentOS7 linux下yum安装mysql5.7

    文章参考(https://www.cnblogs.com/jorzy/p/8455519.html) 1.创建存放安装包的位置,并且进入该目录 命令mkdir /share 命令cd /share 2 ...

  8. 理解linux下的load

    我们在做Linux负载计算的时候,我们需要了解负载的几个概念 1)Linux负载是什么 2)Linux负载怎么计算 3)如何区分目前负载是“好”还是“坏” 4)什么时候应该注意哪些不正常的值   1) ...

  9. JVM虚拟机 YGC和FGC发生的具体场景

    1.YGC和FGC是什么 YGC :对新生代堆进行gc.频率比较高,因为大部分对象的存活寿命较短,在新生代里被回收.性能耗费较小. FGC :全堆范围的gc.默认堆空间使用到达80%(可调整)的时候会 ...

  10. MySql5.7 Distinct与Order By同时使用报错的解决方案

    mysql5.7版本中,如果DISTINCT和order by一起使用将会报3065错误,sql语句无法执行.这是由于5.7版本语法比之前版本语法要求更加严格导致的. 解决方案: 1.vim /etc ...