一般是编程新手,特别是Python新手,我有一些初学者的麻烦。
我正在尝试NLTK中的一个名为generate:
的函数string.generate()
它返回看起来像字符串的东西。但是,如果我写:
stringvariable = string.generate()
或
stringvariable = str(string.generate())
...... stringvariable总是空的。
所以我猜我在这里遗漏了一些东西。我在屏幕上看到的文本输出是否可以是字符串输出?如果是这样,我有什么方法可以获取输出并将其放入变量中吗?
简单地说,如果不是如上所述,如何将string.generate()中的内容变为stringvariable?
答案 0 :(得分:1)
你可以重写生成。唯一的缺点是它可能会更改,您的代码可能无法更新以反映这些更改:
from nltk.util import tokenwrap
def generate_no_stdout(self, length=100):
if '_trigram_model' not in self.__dict__:
estimator = lambda fdist, bins: LidstoneProbDist(fdist, 0.2)
self._trigram_model = NgramModel(3, self, estimator=estimator)
text = self._trigram_model.generate(length)
return tokenwrap(text)
然后" a.generate()"成为" generate_no_stdout(a)"
答案 1 :(得分:0)
generate()
prints its output而非返回字符串,因此您需要capture it。