依存树

96
zenRRan
2016.11.02 18:39* 字数 624

来历

a.简单的短语分词(正向逆向最大匹配,n-gram,机器学习...)(以单个词为重点)
比如: 猴子喜欢吃香蕉。->猴子 喜欢 吃 香蕉 。
b.由分词转向词性标注
猴子/NN 喜欢/VV 吃/VV 香蕉/NN 。/PU

(但是能不能站在句子上分析呢?就有了下面的发展)

c.由词性标注生成短语句法树(从整个句子分析)

短语句法树的计算机表示
短语句法树的逻辑表示

d.由短语句法树转成依存树(依存关系可以用树形图表示,表示依存关系的树形图称为依存树dependency tree)
由短语句法树转到依存树一般可用这三个工具,顺便有链接
penn2malt 根据说明就可以用,想具体了解怎么用,可以看我之前写的penn2malt简书
Stanford Parser这是可以体验功能。这个是工具
LTH 这个里面有依存树的应用和这是工具,但是你阅读会发现不能转换中文语料库

转换的依存树长这个样子:

依存树
依存投射树

但是计算机中肯定就不是这么存的了。比如Stanford Parser 是这个样子的:

Stanford Parser Dependency Tree

这里的数字是这个词的序列: 猴子 -1,喜欢-2,吃-3,香蕉-4 符号被抛弃
比如:nsubj ( 喜欢-2,猴子-1)
nsubj是表示后两者的关系,这里前者是父亲,后者是儿子,也就是 猴子 依存于 喜欢 。
如果前面的关系实在想弄清楚是啥的话,这有个网站
存储的话就很简单啦。不在细说

这里有两个主要的基本问题:

都挺简单的数据结构问题(多叉树的节点问题):
a. 已知一个节点怎么找到它的父(子)节点。
这个就很简单了。自己应该会的。
b. 求两个节点的最短路径
就是找到一个节点,把自己和所有父节点放到一个数组里,再在另一个节点,从本身开始顺着父节点找,直到找到和第一个节点并且存在于第一个数组里,这样,第一个数组从0开始到这个公共节点和第二个节点的从这个节点打女自己本身的所有节点就是这俩节点的最短路径。

举个实在例子(意见抽取):

Paste_Image.png
dependency tree
Paste_Image.png
属性之间的最短路径

注意的是,这个路径上每次经过的线(也就是他们俩的关系),这里的路径就是这个。

属性与评价之间的最短路径

从这两组最短路径很明显看出谁跟谁更亲近,这也是最短路径的一个应用。

应用

应用

(上面的一些截取是根据今天自己讲的依存树PPT)

欢迎关注深度学习自然语言处理公众号

image
自然语言处理
Web note ad 1