如何获得带有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

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

如何计算树的高度

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

如何获得topLayoutGuide的高度?

来自分类Dev

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

来自分类Dev

如何理解Maven依赖树

来自分类Dev

如何更改Leiningen依赖树

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

打印带有缩进的树

来自分类Dev

如何获得Bootstrap Popover高度?

来自分类Dev

如何获得div的外部高度?

来自分类Dev

我如何获得UILabel的高度?

来自分类Dev

如何获得 DirectWrite 布局的高度?