前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NLP系列学习:意图识别

NLP系列学习:意图识别

原创
作者头像
云时之间
发布2018-08-13 17:47:03
2.2K0
发布2018-08-13 17:47:03
举报
文章被收录于专栏:云时之间

最近刚刚把垃圾文本分类做完,接着又去研究意图识别,可以看做是分类完之后的后续处理,通过这篇文章记录下自己的学习经历。

1:意图识别要做啥?

最近在写文档的时候,写不出来的时候就回去看看需求,一定反复强调需求是什么,而技术也类似,我们一定要想明白技术要替我们解决什么。拿文本进行举例,我们看到有用户给我们一句话:“我想听德云社的相声”,那我们其实可以姑且将其意图归类于影音需求,别看将其归归类是个很简单活,但是这会对很多NLP应用带来很多的提升,比如在我们熟悉的搜索,我们搜索的时候如果涉及到一条信息对应多个分类的时候,这样搜索结果会比较差,但是如果我们通过意图识别发现用户是个游戏迷,我们就可以在用户搜索时将游戏的搜索结果优先返还给用户,这本身也是很有意义的一件事。

2:意图识别的方法

因为意图识别本身也是一个分类问题,其实方法和分类模型的方法大同小异。

常用的有:

1:基于词典模板的规则分类

2:基于过往日志匹配(适用于搜索引擎)

3:基于分类模型进行意图识别

这三种方式基本上是目前比较主流的方法,现在进行意图识别的难点主要是两点,一点是数据来源的匮乏,因为方法已经比较固定,基本都是有监督学习,需要很多的标记数据,现在我们常用的数据要么就是找专业标记团队去买(我们是自己标记的,很恶心。。),要么就是自己去爬,这方面还是很麻烦的。第二点是尽管是分类工作,但是意图识别分类种类很多,并且要求的准确性,拓展性都不是之前的分类可比的,这一点也是很困难的。

这次的思路是使用CNN+softmax进行分类,不同于传统的如SVM,决策树等传统的分类方法,

CNN对于长文本的分类效果还是不错的,但是在短文本上相较RNN还是有一些差距。

基本的思路与下图所述的论文相似:

既然CNN比不上RNN,为什么还是选取了CNN,我的想法是文本分词后一般会有粒度和语义的矛盾,粒度太大,分词效果不好,粒度太小,语义丢失,而CNN核心过程是卷积,我们可以通过CNN的卷积将分完词之后的词的语义结合在一起,从而获得更加准确的词向量。

现在说说这篇论文:

这篇论文的网络结构如下:

基本的结构为:输入层->第一层卷积层->池化层->全连接层+softmax层

现在也在进一步的尝试中,目前还有几个小trick:

1:是否可以使用字向量代替词向量?

2:输入的词向量是否可以多换几种表述方式?

这几个小trick等研究之后再来更新一下,我也是在学习中,大家如果有好的建议也请多多指教。

最后参考文献:

1:http://www.aclweb.org/anthology/D14-1181

2:https://arxiv.org/abs/1510.03820

第二篇文章是对第一篇文章的进一步研究以及调参建议,都挺有意思。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档