Python - NLP - 将 iter(iter(tree)) 转换为 list(tree)
Python - NLP - convert iter(iter(tree)) to list(tree)
我有一个解析器函数 returns iter(iter(tree))
。
parsedSentence = parser.raw_parse_sents([sentence],False)
如何将 parsedSentence 类型转换为列表(树)并访问该列表的第一个元素。
我已经尝试过 list(parser.raw_parse_sents([sentence],False))
但它没有将结果转换为列表。
已编辑:
s1 = parsedSentence[0]
t1 = Tree.convert(s1)
positions = t1.treepositions()
这里报错:
'listiterator' object has no attribute 'treepositions'
谢谢。
在可迭代对象上使用了多少次 iter
并没有任何区别,您可以通过调用 list
函数将其简单地转换为列表。
>>> l =[6, 3, 5, 1, 4, 2]
>>> list(iter(iter(iter(iter(l)))))
[6, 3, 5, 1, 4, 2]
但是如果你只想得到第一个项目你不需要使用 list
函数你可以简单地在迭代器上使用 next
方法或 next()
内置函数(在 python 3.X 中你可以只使用内置函数 next()
)来获取第一个项目:
>>> iter(iter(l)).next()
6
>>> iter(iter(iter(l))).next()
6
>>> iter(iter(iter(iter(l)))).next()
6
现在关于你的问题,如果你在调用 list
之后没有得到 list
肯定它不是一个迭代器,它将是你需要获取其项目的另一种对象类型关于如何实施其 __getitem__
方法。
根据您的编辑 t1
是一个列表迭代器对象并且没有属性 treepositions
您可以遍历它的项目然后调用那些 treepositions
属性:
s1 = parsedSentence[0]
t1 = Tree.convert(s1)
positions = [item.treepositions() for item in t1]
最后,通过更改
解决了问题
parser.raw_parse_sents([sentence],False)
到
parser.raw_parse(sentence)
感谢所有贡献时间的人。
我有一个解析器函数 returns iter(iter(tree))
。
parsedSentence = parser.raw_parse_sents([sentence],False)
如何将 parsedSentence 类型转换为列表(树)并访问该列表的第一个元素。
我已经尝试过 list(parser.raw_parse_sents([sentence],False))
但它没有将结果转换为列表。
已编辑:
s1 = parsedSentence[0]
t1 = Tree.convert(s1)
positions = t1.treepositions()
这里报错:
'listiterator' object has no attribute 'treepositions'
谢谢。
在可迭代对象上使用了多少次 iter
并没有任何区别,您可以通过调用 list
函数将其简单地转换为列表。
>>> l =[6, 3, 5, 1, 4, 2]
>>> list(iter(iter(iter(iter(l)))))
[6, 3, 5, 1, 4, 2]
但是如果你只想得到第一个项目你不需要使用 list
函数你可以简单地在迭代器上使用 next
方法或 next()
内置函数(在 python 3.X 中你可以只使用内置函数 next()
)来获取第一个项目:
>>> iter(iter(l)).next()
6
>>> iter(iter(iter(l))).next()
6
>>> iter(iter(iter(iter(l)))).next()
6
现在关于你的问题,如果你在调用 list
之后没有得到 list
肯定它不是一个迭代器,它将是你需要获取其项目的另一种对象类型关于如何实施其 __getitem__
方法。
根据您的编辑 t1
是一个列表迭代器对象并且没有属性 treepositions
您可以遍历它的项目然后调用那些 treepositions
属性:
s1 = parsedSentence[0]
t1 = Tree.convert(s1)
positions = [item.treepositions() for item in t1]
最后,通过更改
解决了问题parser.raw_parse_sents([sentence],False)
到
parser.raw_parse(sentence)
感谢所有贡献时间的人。