我不能用 Python3 对一个句子进行二连词
I can't bigram a sentece with Python3
我正在使用 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>
什么意思:"generator object ngrams at 0x7ff1d81d2468"?
为什么我既不能检查也不能打印 n-gram?
生成器对象是可迭代的,但只能迭代一次 - 参见 this answer。当 print
试图显示它们时,它显示的是它们的类型而不是它们实际的 'items'。您可以使用
将生成器对象转换为列表
>>> bigrams=list(ngrams(token,2))
他们使用
打印他们的项目
>>> print(bigrams)
因为它们现在是一个列表对象,所以它们的项目被打印而不是 'description'。
我正在使用 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>
什么意思:"generator object ngrams at 0x7ff1d81d2468"? 为什么我既不能检查也不能打印 n-gram?
生成器对象是可迭代的,但只能迭代一次 - 参见 this answer。当 print
试图显示它们时,它显示的是它们的类型而不是它们实际的 'items'。您可以使用
>>> bigrams=list(ngrams(token,2))
他们使用
打印他们的项目>>> print(bigrams)
因为它们现在是一个列表对象,所以它们的项目被打印而不是 'description'。