Skip to main content
 首页 » 编程设计

python之NLTK "generate"函数 : How to get back returned text

2025年05月04日8bonelee

我是 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 

然后您可以使用手动传递的实例作为第一个参数来调用它。