如何从tree.productions()中提取元素

艾伦旺

(1)我的目标:提取作品的左侧和右侧。

(2)我的方法:我正在使用斯坦福解析器和nltk工具来提取句子的parsetree。我的代码如下:

corenlp_dir = "/home/corenlp-python/stanford-corenlp-full-2013-11-12/"
parser = corenlp.StanfordCoreNLP(corenlp_path=corenlp_dir)

result_json = json.loads(parser.parse("I have a tree."))
for sentence in result_json["sentences"]:
    t = Tree.fromstring(sentence["parsetree"])
    print t.productions()   # [ROOT -> S, S -> NP VP ., NP -> PRP, PRP -> 'I', VP -> VBP NP, VBP -> 'have', NP -> DT NN, DT -> 'a', NN -> 'tree', . -> '.']

    print t.productions()[1]  # S -> NP VP .
    print type(productions()[1])  # <class 'nltk.grammar.Production'>

    for (i,child) in enumerate(t): 
        print (i,child)  # (0, Tree('S', [Tree('NP', [Tree('PRP', ['I'])]), Tree('VP', [Tree('VBP', ['have']), Tree('NP', [Tree('DT', ['a']), Tree('NN', ['tree'])])]), Tree('.', ['.'])])) I can only get one tree.

(3)我的问题是如何继续从每个产品的两侧提取元素,例如“ S”“ NP VP”。请问有什么方法可以解决这个问题?

谁能帮我,也许指出一些方向?

乔恩·高迪耶

nltk.Tree实际上是Python的一个子类list,这样你就可以访问任何节点的孩子c通过c[0]c[1]c[2],等需要注意的是NLTK的树都没有设计明确的二进制,所以你的“左”和“右”的概念可能需要强制执行合同中的某处。

假设树是二叉树,则可以使用来访问节点的左子节点c[0],而使用可以访问右节点c[1]对于第二项任务:

但是我要做的是提取产品的左侧,并以相同的左侧收集所有产品的右侧。

如果我理解正确,则可以遍历树并随即构建一个dict,其中键在左侧,而值是可能的右侧生成的列表。我不确定nltk.Tree对象是否可哈希/不可变(如果不能,则不能用作dict键),但是Tree在任何情况下都可以将对象的字符串形式用作键。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从tree.productions()中提取元素

来自分类Dev

如何从id中提取元素?

来自分类Dev

如何使用Javascript从元素中提取文本

来自分类Dev

您如何从列表中提取不同的元素?

来自分类Dev

如何从列表中提取相等元素的索引?

来自分类Dev

如何从子列表中提取元素?

来自分类Dev

如何从jQuery中的元素中提取href?

来自分类Dev

如何使用BeautifulSoup从'a'元素中提取文本?

来自分类Dev

如何在段落元素中提取文本?

来自分类Dev

如何具体从ArrayList中提取元素?

来自分类Dev

如何从元胞数组中提取元素

来自分类Dev

如何从向量中提取相似元素?

来自分类Dev

如何从单个 XML 元素中提取文本?

来自分类Dev

如何从水豚元素中提取硒元素?

来自分类Dev

如何使用magrittr%>%管道从列表中提取元素/子集?

来自分类Dev

如何从隐藏元素中提取数据代码属性

来自分类Dev

如何从字符向量中提取包含$符号的元素

来自分类Dev

如何从ReportLab表的python中的元组列表中提取元素?

来自分类Dev

如何从R中的列表列表中提取元素?

来自分类Dev

如何从Haskell的两个列表中提取相同的元素?

来自分类Dev

如何使用索引向量从矩阵中提取元素?

来自分类Dev

如何在Chrome的“检查元素”部分中提取代码?

来自分类Dev

如何从列表python中提取索引倍数为2的元素

来自分类Dev

如何从Vuetify的<v-form>组件中提取<form>元素

来自分类Dev

如何从R中的嵌套列表中提取元素

来自分类Dev

如何从此网络抓取的HTML中提取某些元素

来自分类Dev

Python BeautifulSoup如何从javascript元素中提取var结果?

来自分类Dev

如何在Python中提取列表中相等的元素序列?

来自分类Dev

如何从pandas / python中的长列表中提取混合元素

Related 相关文章

  1. 1

    如何从tree.productions()中提取元素

  2. 2

    如何从id中提取元素?

  3. 3

    如何使用Javascript从元素中提取文本

  4. 4

    您如何从列表中提取不同的元素?

  5. 5

    如何从列表中提取相等元素的索引?

  6. 6

    如何从子列表中提取元素?

  7. 7

    如何从jQuery中的元素中提取href?

  8. 8

    如何使用BeautifulSoup从'a'元素中提取文本?

  9. 9

    如何在段落元素中提取文本?

  10. 10

    如何具体从ArrayList中提取元素?

  11. 11

    如何从元胞数组中提取元素

  12. 12

    如何从向量中提取相似元素?

  13. 13

    如何从单个 XML 元素中提取文本?

  14. 14

    如何从水豚元素中提取硒元素?

  15. 15

    如何使用magrittr%>%管道从列表中提取元素/子集?

  16. 16

    如何从隐藏元素中提取数据代码属性

  17. 17

    如何从字符向量中提取包含$符号的元素

  18. 18

    如何从ReportLab表的python中的元组列表中提取元素?

  19. 19

    如何从R中的列表列表中提取元素?

  20. 20

    如何从Haskell的两个列表中提取相同的元素?

  21. 21

    如何使用索引向量从矩阵中提取元素?

  22. 22

    如何在Chrome的“检查元素”部分中提取代码?

  23. 23

    如何从列表python中提取索引倍数为2的元素

  24. 24

    如何从Vuetify的<v-form>组件中提取<form>元素

  25. 25

    如何从R中的嵌套列表中提取元素

  26. 26

    如何从此网络抓取的HTML中提取某些元素

  27. 27

    Python BeautifulSoup如何从javascript元素中提取var结果?

  28. 28

    如何在Python中提取列表中相等的元素序列?

  29. 29

    如何从pandas / python中的长列表中提取混合元素

热门标签

归档