如何从NLTK树中获取令牌?

罗比·巴拉特(Robbie Barrat)

所以我把这棵树还给我

Tree('S', [('This', 'DT'), ('is', 'VBZ'), ('a', 'DT'), ('test', 'NN'), (',', ','), Tree('PERSON', [('Stackoverflow', 'NNP'), ('Users', 'NNP')]), ('.', '.')])

我可以将它变成一个像这样的漂亮的python列表

sentence = "This is a test, Stackoverflow Users."
tokens = nltk.word_tokenize(sentence)
tagged = nltk.pos_tag(tokens)
entities = nltk.chunk.ne_chunk(tagged)
tree = repr(entities) # THIS VARIABLE IS THE TREE THAT IS RETURNED TO ME
# below this point it's about turning the tree into a python list
tree = (("[" + tree[5:-1] + "]")).replace("Tree", "").replace(")", "]").replace("(", "[")
tree = ast.literal_eval(tree) #you'll need to import ast (included with python)

现在,树变量是这样的:

['S', [['This', 'DT'], ['is', 'VBZ'], ['a', 'DT'], ['test', 'NN'], [',', ','], ['ORGANIZATION', [['Stackoverflow', 'NNP']]], ['users', 'NNS'], ['.', '.']]]

当我尝试遍历并得到一串句子时,我得到

"This is a test, ORGANIZATION."

而不是期望的

"This is a test, Stackoverflow users."

我不能简单地使用句子变量,我需要能够从列表列表中获取句子。任何代码片段或建议,将不胜感激。

睡觉
>>> from nltk import Tree
>>> yourtree = Tree('S', [('This', 'DT'), ('is', 'VBZ'), ('a', 'DT'), ('test', 'NN'), (',', ','), Tree('PERSON', [('Stackoverflow', 'NNP'), ('Users', 'NNP')]), ('.', '.')])
>>> yourtree.leaves()
[('This', 'DT'), ('is', 'VBZ'), ('a', 'DT'), ('test', 'NN'), (',', ','), ('Stackoverflow', 'NNP'), ('Users', 'NNP'), ('.', '.')]
>>> tokens, pos = zip(*yourtree.leaves())
>>> tokens
('This', 'is', 'a', 'test', ',', 'Stackoverflow', 'Users', '.')
>>> pos
('DT', 'VBZ', 'DT', 'NN', ',', 'NNP', 'NNP', '.')

另请参阅:如何遍历NLTK树对象?

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何通过nltk python中的标签获取树中的节点?

来自分类Dev

如何通过nltk python中的标签获取树中的节点?

来自分类Dev

如何使用strtok在令牌中获取令牌?

来自分类Dev

如何从nltk.trees中识别和删除跟踪树?

来自分类Dev

Python(NLTK)中的成分树

来自分类Dev

如何从R中的igraph对象获取树?

来自分类Dev

无法知道如何从树中获取价值

来自分类Dev

从 nltk 树中获取分块结果的任何好的或更好的或直接的方法?

来自分类Dev

如何在iOS中获取设备令牌?

来自分类Dev

如何从该构造中获取令牌?

来自分类Dev

如何从授权中获取jwt令牌

来自分类Dev

如何从结果中获取拆分令牌?

来自分类Dev

如何正确导航NLTK解析树?

来自分类Dev

在nltk树中插入子节点

来自分类Dev

如何在WordNet中为NLTK Python获取Sense Key?

来自分类Dev

如何在WordNet中为NLTK Python获取Sense Key?

来自分类Dev

从树中获取节点

来自分类Dev

如何获取 Firebase 令牌?

来自分类Dev

如何使用GSON从JSON树中获取JSON值

来自分类Dev

如何在git中获取文件的版本树?

来自分类Dev

如何从电子应用程序的BrowserWindow中获取DOM树?

来自分类Dev

如何从类语法树中获取类语义模型?

来自分类Dev

Linux内核如何从设备树中获取数据?

来自分类Dev

如何在n元树中获取元素

来自分类Dev

如何获取n元树中节点的路径?

来自分类Dev

如何使用JGit API从父提交中获取树?

来自分类Dev

如何从JavaScript中的JSON树获取嵌套的父路径?

来自分类Dev

如何在python中获取最小生成树矩阵

来自分类Dev

如何在n元树中获取元素