用NLTK生成二元组

妮基·拉格文德拉(Nikhil Raghavendra):

例如,我正在尝试生成给定句子的双字组列表,如果我键入,

    To be or not to be

我希望程序生成

     to be, be or, or not, not to, to be

我尝试了以下代码,但只给了我

<generator object bigrams at 0x0000000009231360>

这是我的代码:

    import nltk
    bigrm = nltk.bigrams(text)
    print(bigrm)

那么我如何得到想要的呢?我想要上面的单词组合列表(是,不是,不是)。

IljaEverilä:

nltk.bigrams()返回bigrams的迭代器(特别是生成器)。如果需要列表,请将迭代器传递给list()它还期望一系列的项目从中生成双字母组,因此您必须在传递文本之前对文本进行分割(如果尚未完成):

bigrm = list(nltk.bigrams(text.split()))

要用逗号分隔打印出来,可以(在python 3中):

print(*map(' '.join, bigrm), sep=', ')

如果在python 2上,则例如:

print ', '.join(' '.join((a, b)) for a, b in bigrm)

请注意,仅出于打印目的,您无需生成列表,只需使用迭代器即可。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章