前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用 Recursive Neural Networks 得到分析树

用 Recursive Neural Networks 得到分析树

作者头像
杨熹
发布2018-04-02 17:02:27
1.1K0
发布2018-04-02 17:02:27
举报
文章被收录于专栏:杨熹的专栏

CS224d-Day 10:

Recursive neural networks -- for parsing

课程链接

视频链接

课件链接


本文结构:

  • Recursive NN 是什么
  • Recursive Neural Networks 和 Recurrent Neural Networks
  • Recursive NN 可以用来做什么
  • 怎样做到的
  • 算法代码

  • Recursive NN 是什么

Recursive Neural Networks 可以用来表达长句子,将一个句子映射到向量空间。

通过分析出句子的 parsing tree 的结构,把一个句子拆分成几个小组成单元,然后可以替换其中的一些部分,进而得到一些相似的句子,比如把这个 NP 名词短语,换成另一个 NP 名词短语。

这些句子由不同的短语组成,但是表达的意思却是一样的,在向量空间中,它们的距离也会很近。例如 ‘the country of my birth’ 和 ‘the place where I was born’ 意思一样,向量空间上的表达也就很近。

  • Recursive Neural Networks 和 Recurrent Neural Networks

想要分析数据的 hiearchical structure 的时候,Recursive NN 要比 Recurrent NN 更有效一些。

Recurrent NN 是 Recursive NN 的一种特殊形式,一个 链 可以写成一棵 树 的形式。

Recursive NN 可以返回树上每个节点的向量表达,Recurrent NN 在任何时候返回一句话的向量。

  • Recursive NN 可以用来做什么

Recursive NN 可以用一个很好的方式来描述句子。

可以识别句子中的成分,可以通过替换组件来形成同样合理的句子,可以处理歧义问题,分析句子的语法结构,语义结构,理解一段话的指代词的含义。

可以学习到一个句子里哪个组成成分更重要,比如VP比NP更重要。可以学习到哪几个句子意思相近。

  1. 当我们需要学习句子的结构的时候,会用 Recursive Neural Networks 来的到 parsing tree。
  2. 也可以用来做 sentiment analysis,因为这个情感喜好的结果,不仅仅和单词本身有关,还和句子组成和顺序有关。
  3. 还可以用来分析图片的组成,比如它可以分析出房顶,二层楼,一层楼,并组成一个房子。
  • 怎样做到的

RNN 的输入是句子,输出是一个 parse 树结构。

下图是一个最标准的神经层,W 在整个网络中是一样的。

有个拓展模型 Syntactically-United RNN,是根据不同的组成成分使用不同的 W

RNN由三部分组成,根,左叶子,右叶子,也就是一个 Binary Tree。

它的每个节点上由一些神经元组成,神经元的个数由句子的复杂程度决定。

叶子是接收数据的,也就是向量,根是分类和评分的。

第一步,会先把句子的结构学习出来。

单词两两组合,进行评分,再作为一个整体,和后面的一个单词组合,再评分。

两个单词如果应该放在一起,就会得到高分,否则分数较低。

一个句子会得到多个结构,用 Greedy 选择其中分数最高的,作为最终的树结构。

用 Max Margin 来学习最优的树结构。每个 i 代表一个句子,A(x_i) 是包含 x_i 的所有可能的树,当 y 与 y_i 一样时,delta=0.

模型训练时,通过比较 labeled 数据,比较合适的结构和预测的结构,用 BTS 使误差达到最小。

第二步,再为结构中的每个小部分找到合适的语法标签,判断是什么成分的短语,是NP名词短语,VP动词短语,还是PP介词短语等。

  • 算法代码

定义线性的神经元,做内积 W(left + right) + b

用 softmax 对每个点做 classify

node.probs -= np.max(node.probs) 这个技巧可以保证stable

下面的代码就是计算红色框里的式子

cs224d

Day 1. 深度学习与自然语言处理 主要概念一览

Day 2. TensorFlow 入门

Day 3. word2vec 模型思想和代码实现

Day 4. 怎样做情感分析

Day 5. CS224d-Day 5: RNN快速入门

Day 6. 一文学会用 Tensorflow 搭建神经网络

Day 7. 用深度神经网络处理NER命名实体识别问题

Day 8. 用 RNN 训练语言模型生成文本

Day 9. RNN与机器翻译

Day 10. 用 Recursive Neural Networks 得到分析树

Day 11. RNN的高级应用

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016.09.23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • cs224d
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档