《SwissCheese at SemEval-2016 Task 4: Sentiment Classification Using an Ensemble of Convolutional ...
《SwissCheese at SemEval-2016 Task 4: Sentiment Classification Using an Ensemble of Convolutional ...
AllenOR灵感 发表于9个月前
《SwissCheese at SemEval-2016 Task 4: Sentiment Classification Using an Ensemble of Convolutional ...
  • 发表于 9个月前
  • 阅读 1
  • 收藏 0
  • 点赞 0
  • 评论 0

移动开发云端新模式探索实践 >>>   


作者:Jan Deriu, Maurice Gonzenbach, Fatih Uzdilli, Aurelien Lucchi, Valeria De Luca Martin Jaggi

单位:ETH Zurich

关键词:Sentiment Classification, Convolutional Neural Networks

来源:SemEval-2016 Task 4,论文下载

代码:github

简读:

该论文描述了作者在参加SemEval-2016 Task4时所设计的CNN模型,用来解决推特的一个短文本情感分类问题,下面是具体的模型架构图:


CNN的架构图

数据准备:通过Word2Vec或者GloVe将单词转换成词向量,即把一个句子转换成一个句子矩阵(Sentence Matrix),其中 d 表示每个单词转换成词向量的维度, n 表示句子中一共包含n个单词。

第一个卷积层:m1表示一共有m1个卷积核。每个卷积核的维度是 dh1 ,所以每个卷积核得到 n-h1+1 个元素,即最后得到的元素总个数是 m1 (n-h1+1),表示m1个通道,每个通道中有 n-h1+1 个元素。

第一个池化层:论文中采用取最大值的策略。池化区域是 s1*1 的维度,所以最后每个通道中存在的值的个数是 (n-h1+1)/s1 个元素,输出通道还是 m1 个通道。

第二个卷积层:该卷积层的输入通道是 m1 个,输出通道是 m2 个,每个输出通道中存在 l1-h2+1 个元素。

第二个池化层:论文中采用取最大值的策略。池化区域是 (l1-h2+1)*1 的维度,所以最后每个通道中只存在一个值,输出通道数还是 m2 个通道。

隐藏层:这个一个全连接层,relu函数作为激活函数。

输出层:输出层是用softmax函数来作为最后的判断,进行文本分类。


我利用Tensorflow框架将论文中的模型实现了一下。为了更加方便理解论文,这个代码只考虑了如何实现CNN架构,所以不适合用在真实环境中。当然如果你熟悉Tensorflow,可以非常容易将它进行改写,使得它满足你的要求。

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 10
博文 2139
码字总数 82983
×
AllenOR灵感
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: