Все, что делает 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
И затем вы можете просто вызвать его с переданным вручную экземпляром в качестве первого аргумента.