前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Tensorflow的CNNs模型实战:根据短文本对企业分类

Tensorflow的CNNs模型实战:根据短文本对企业分类

作者头像
机器学习AI算法工程
发布2018-03-15 14:09:17
1.3K0
发布2018-03-15 14:09:17
举报

2017年4月17号AI100发布了为期一个月的文本分类练习赛

http://competition.ai100.com.cn/html/game_det.html?id=24&tab=2 ,

数据集由文因互联提供,要求参赛者根据所提供的脱敏后的企业文本数据,筛选并判定该企业所属的类别,评价标准为Acc。其中,文本数据的内容,是对企业的经营范围和主营业务等基本信息的描述。数据文件描述如下图所示。

抱(冲)着(着)学(奖)习(品)交(去)流(的)的心态,和实验室的另外两个小伙伴组队参加了这次练习赛,在线上的最终得分是0.869。

特别说明:排行榜上我们的得分是0.871,但由于使用了中文Wikipedia训练词向量,属于外部数据,该分数无效,在没有使用任何外部数据的情况下我们的得分为0.869。

方法

任务很容易理解,就是给定一段企业文本数据,要求分类器判定该企业所属的类别。简单地分析了一下语料,如下例所示:

> 公司是经批准依法从事融资性担保业务的金融机构,主营业务为融资性担保业务,包括贷款担保、农民工工资担保、票据承兑担保等业务。

可以看出,基本上一些关键词(如“金融”、“贷款”等)就可以确定该公司的类别,并不需要一个较长的上下文的理解,出于这样的考虑,我们选择CNNs作为本次任务的模型。

分词 & 词性标注

分词和词性标注工具我们比较了结巴分词和中科院的NLPIR,在实验中发现中科院的分词系统表现较好,处理后的文本如下所示。 > 公司/n 是/vshi 经/p 批准/v 依法/d 从事/vi 融资/vi 性/ng 担保/vn 业务/n 的/ude1 金融/n 机构/n ,/wd 主营业务/n 为/p 融资/vn 性/n 担保/vn 业务/n ,/wd 包括/v 贷款/n 担保/vn 、/wn 农民工/n 工资/n 担保/vn 、/wn 票据/n 承兑/vn 担保/vn 等/udeng 业务/n 。/wj “/wyz

模型

我们采用的模型是简单的CNNs,包括输入层,Look-up tables,卷积层,池化层和输出层,其中Look-up table包括词和词性,模型结构如下图所示。

输入层

对于词向量的训练,由于任务规定不能使用外部数据,所以我们直接利用练习赛提供的7000余条句子训练词向量,工具是gensim,使用skip-gram模型,词向量的维度设置为256,并过滤掉频次低于3的词,最终训练出词向量的词表size为8616。 而对于词性向量我们使用随机的方式初始化,维度为64,词性表的size为96。

卷积层 & 池化层

卷积操作可以编码句子的局部特征,卷积核对句子卷积所得到的向量称为feature map,在实验中我们设置卷积数量为1000,窗口大小为3。 接着是池化层,使用的是常用的max pooling,提取出feature map中最重要的信息。

Softmax层

最后是模型的输出层,为了防止模型的过拟合,我们在全连接层之前加了一个dropout机制,同时对全连接层权值给予一个L2正则化的惩罚项,梯度更新法则选用Adam。

一些想法

我们在以上模型的基础上又尝试了以下一些简单的方法,不过在实验中并没有效果,由于时间关系也没有去深入分析,这里列出来供大家参考:

  • 过采样。统计语料可以发现,类别的分布并不平衡,我们希望通过采样增加一些少数类别实例的数量,采样方式只是简单地增加少数类别实例的数量。
  • 提取关键句子。观察语料可以发现,企业基本信息的描述中很多都带有“主营业务”、“主要”、“致力于”等关键词,通过这些关键词可以过滤掉一些无关的句子,一方面可以减少输入的噪音,另一方面可以提升模型的效率。

实验

实验中,我们抽取训练数据的80%作为训练集,20%作为开发集,用开发集上Acc最高的模型去标记测试数据。这里我们简单地做了一个融合:每次取不同的20%的数据作为开发集,剩余的数据作为训练集,这样共得到5组结果,最后将这5组结果进行投票融合,线上表现可以得到0点几个点的提升。

http://geek.ai100.com.cn/2017/05/18/158

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-10-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据挖掘DT数据分析 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 方法
    • 分词 & 词性标注
      • 模型
        • 输入层
        • 卷积层 & 池化层
        • Softmax层
        • 一些想法
    • 实验
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档