莫斯科物理技术学院(MIPT)前不久开源了聊天机器人DeepPavlov(基于TensorFlow和Keras),对于有志学习NLP的同学是个不错的借鉴。其中的语义理解分类模块,不是采用的马尔科夫随机场(CRF)或RNN, 而是使用一维卷积去做语义分类:
这一模型是来自纽约大学的论文:Convolutional Neural Networks for Sentence Classification,用一维卷积为句子的语义分类。
值得注意的是,上图模型中,第一层句子的词嵌入输入(embedding)并不是单个通道,而是两个通道的。每个通道用相同的word2vec的embedding方法初始化(表征同一个句子),有意思的是,文章指出,把其中一个通道的词表征静态化(static),而另一个通道的词表征设为可训练的(non-static),这样两个通道组合在一起可以有更好效果。 继续阅读一维卷积在语义理解中的应用,莫斯科物理技术学院(MIPT)开源聊天机器人DeepPavlov解析及代码