我不能用Python3来表达观点

时间:2019-12-30 10:13:23

标签: python-3.x nltk n-gram

我正在使用python3,我正在训练用双字表达一个句子,但是解释器给了我一个我听不懂的问题。

~$ python3
Python 3.6.9 (default, Nov  7 2019, 10:44:02) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import nltk
>>> from nltk import word_tokenize
>>> from nltk.util import ngrams
>>> text = "Hi How are you? i am fine and you"
>>> token=nltk.word_tokenize(text)
>>> bigrams=ngrams(token,2)
>>> bigrams
<generator object ngrams at 0x7ff1d81d2468>
>>> print (bigrams)
<generator object ngrams at 0x7ff1d81d2468>

这是什么意思:“生成器对象在0x7ff1d81d2468处的ngrams”? 为什么我既不能检查也不能打印n-gram?

1 个答案:

答案 0 :(得分:1)

生成器对象是可迭代的,但只能迭代一次-请参见this answer。当print试图显示它们时,它显示的是类型而不是实际的“项目”。您可以使用

将生成器对象转换为列表
>>> bigrams=list(ngrams(token,2))

然后他们使用

打印项目
>>> print(bigrams)

由于它们现在是列表对象,因此将打印其项目,而不是对其进行“描述”。