我正在使用Python中的nltk库;我的背景是Java。我不理解我编写的代码的控制台输出。为什么Python会返回一个奇怪的表单,尽管我将变量tokens初始化为list。
from nltk.tokenize import word_tokenize
from nltk.corpus import stopwords
import nltk
def tokenize_sentence(sentence):
tokens=[]
tokens = word_tokenize(sentence)
tokens = (word for word in tokens if word not in \
set(stopwords.words('english')))
return tokens;
a="John is an actor."
print(tokenize_sentence(a))输出:
<generator object tokenize_sentence.<locals>.<genexpr> at 0x10dc5b1a8>当我试图打印未定义toString()方法的对象时,我认为这个输出类似于Java所做的事情。
发布于 2017-05-04 16:48:04
初始赋值不是类型声明。Python变量没有类型声明。例如,你可以写
x = 7
x = []
x = "Hello"..。并查看x随每个赋值更改类型。
在本例中,您有三个独立的任务要标记。每一种方法的工作方式都是相同的:
忽略变量的先验值。当您构建一个内联生成器--您的(逐字.)表达式--并将它分配给令牌时,您将前面的值发送到位桶(即垃圾收集)。当您打印生成器时,而不是迭代它的功能时,您得到了对象的Python表示。
正如已经提到的,如果您想要一个列表,那么使用列表理解语法:括号,而不是括号。另外,您是否打算使用令牌的先验值进行任何计算?目前,我不认为这些作业有任何持久的影响。
https://stackoverflow.com/questions/43788506
复制相似问题