我是 Python 新手,请多多包涵。
我正在尝试使用 NLTK 库,尤其是“生成”函数。从文档看来,此函数只是打印其结果(http://nltk.googlecode.com/svn/trunk/doc/api/nltk.text-pysrc.html)。我想在将结果文本打印到屏幕之前对其进行操作,但我似乎无法弄清楚如何让此函数返回其文本。
我将如何获得该函数的输出?我是否必须更改函数以返回结果而不是打印结果?
更新:我发现这个链接有点像,但感觉很糟糕。 http://northernplanets.blogspot.com/2006/07/capturing-output-of-print-in-python.html这是我所能期望的最好结果吗?
请您参考如下方法:
generate 所做的就是生成一个三元模型(如果不存在),然后调用
text = self._trigram_model.generate(length)
然后包装和打印它。
只取你想要的部分——可能只是上面的行(self 替换为实例名称),或者可能是整个内容,如下所示,最后的 print 替换为 return。
def generate(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)
text = self._trigram_model.generate(length)
return tokenwrap(text) # or just text if you don't want to wrap
然后您可以使用手动传递的实例作为第一个参数来调用它。
