如何获得带有spacy的依赖树的高度?

用户名

在此处输入图片说明

我有一句话“今天我早点上学”,我想使用spacy和迭代来获取依赖树的最大高度(深度)。

nlp = spacy.load("en_core_web_sm")
doc = nlp("today i go to school early")
height = 0
for token in doc:
   root = [token for token in doc if token.head == token][0]

我被困在这里,无法进一步导航。如果有任何问题,可以请您帮助和纠正我的上述代码吗?

姆巴特卡罗夫

这是基于此问题的递归实现

import spacy

en_nlp = spacy.load('en_core_web_sm')
doc = en_nlp("The quick brown fox jumps over the lazy dog.")
depths = {}

def walk_tree(node, depth):
    depths[node.orth_] = depth
    if node.n_lefts + node.n_rights > 0:
        return [walk_tree(child, depth + 1) for child in node.children]


[walk_tree(sent.root, 0) for sent in doc.sents]
print(depths)
print(max(depths.values()))

打印:

{'jumps': 0, 'fox': 1, 'The': 2, 'quick': 2, 'brown': 2, 'over': 1, 'dog': 2, 'the': 3, 'lazy': 3, '.': 1}
3

编辑:

如果您只想要最大深度而已,则可以

def walk_tree(node, depth):
    if node.n_lefts + node.n_rights > 0:
        return max(walk_tree(child, depth + 1) for child in node.children)
    else:
        return depth


print([walk_tree(sent.root, 0) for sent in doc.sents])

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何获得Bootstrap Popover高度?

来自分类Dev

如何在Ant中获得带有依赖项的构建目标列表?

来自分类Dev

如何获得div的外部高度?

来自分类Dev

如何获得带有内容的图像属性?

来自分类Dev

如何使“获得”获得传递依赖?

来自分类Dev

如何理解Maven依赖树

来自分类Dev

如何在Chef中运行带有依赖项的Cookbook?

来自分类Dev

如何获得topLayoutGuide的高度?

来自分类Dev

如何获得内部具有边距的零高度块的块高度

来自分类Dev

如何获得BB [α]树的高度

来自分类Dev

打印带有缩进的树

来自分类Dev

如何更改带有2行的刻面上的条带的高度

来自分类Dev

如何使用spaCy获取依赖关系树?

来自分类Dev

如何设置带有图像的UIButton的高度和宽度

来自分类Dev

如何获得spaCy以使用通用依赖项

来自分类Dev

如何获得带有内容的图像属性?

来自分类Dev

我如何获得gradle来加载所有依赖版本

来自分类Dev

我如何获得UILabel的高度?

来自分类Dev

如何使用带有nodegit的Revparse获取提交和树?

来自分类Dev

如何获得BB [α]树的高度

来自分类Dev

如何获得带有死键的字母“?”?

来自分类Dev

如何设置带有图像的UIButton的高度和宽度

来自分类Dev

如何实现带有备份选项的树?

来自分类Dev

如何更改Leiningen依赖树

来自分类Dev

如何获得带有连接的列的总和?

来自分类Dev

如何获得带有大量子元素的ScrollView的高度?

来自分类Dev

如何计算树的高度

来自分类Dev

如何获得 DirectWrite 布局的高度?

来自分类Dev

如何在 NSIS 中使用带有依赖项的 SimpleSC