将 NLTK LazySubsequence 转换为列表

Convert NLTK LazySubsequence to a list

是否有任何 NLTK 内置函数可以将 NLTK LazySubsequence 转换为列表?

例如

from nltk.corpus import brown
corpus = brown.sents()
LS = corpus[0:250]
print('type(corpus)[0:250]: {0}'.format(type(LS)))

returns type(corpus)[0:250]: <class 'nltk.util.LazySubsequence'>.

我知道我可以转换循环,例如convert_LazySubsequence_to_list() 如下所示,但我想知道 NLTK 是否提供任何本地方式来转换为 Python 列表:

from nltk.corpus import brown

def convert_LazySubsequence_to_list(LS):
    corpus = []
    for s in LS:
        corpus.append(s)
    return corpus

corpus = brown.sents()
LS = corpus[0:250]
print('type(corpus)[0:250]: {0}'.format(type(LS)))

my_list = convert_LazySubsequence_to_list(LS)
print('type(my_list): {0}'.format(type(my_list)))

产出

type(corpus)[0:250]: <class 'nltk.util.LazySubsequence'>
type(my_list): <type 'list'>

其实这比你想象的要简单

>>> from nltk.corpus import brown
>>> corpus = brown.sents()
>>> LS = corpus[0:250]
>>> print('type(corpus)[0:250]: {0}'.format(type(LS)))
type(corpus)[0:250]: <class 'nltk.util.LazySubsequence'>
>>> my_list = list(LS)
>>> print('type(my_list): {0}'.format(type(my_list)))
type(my_list): <class 'list'>

不需要任何特殊的 NLTK 函数。 list() 内置的 Python 可以为您完成。