def run(self, options): if os.path.exists(options.model): log.info('Loading model snapshot from %s' % options.model) model = VEMModel.load(options.model) else: # Initialize a model from scratch log.info('Initializing new model on %s [T=%d]' % (options.corpus, options.T)) reader = CorpusReader(options.corpus, data_series='sam') model = VEMModel(reader=reader, T=options.T) while model.iteration < options.iterations: log.info('** Iteration %d / %d **' % (model.iteration + 1, options.iterations)) model.run_one_iteration() if model.iteration % SAVE_MODEL_INTERVAL == 0: log.info('Saving model snapshot...') model.save(options.model) if model.iteration % SAVE_TOPICS_INTERVAL == 0: if options.write_topics: log.info('Saving topics to %s' % options.write_topics) with open(options.write_topics, 'w') as f: model.write_topics(f) if options.write_topic_weights: log.info('Saving topic weights to %s' % options.write_topic_weights) with open(options.write_topic_weights, 'w') as f: model.write_topic_weights_arff(f) if options.write_topics: log.info('Saving topics to %s' % options.write_topics) with open(options.write_topics, 'w') as f: model.write_topics(f) if options.write_topic_weights: log.info('Saving topic weights to %s' % options.write_topic_weights) with open(options.write_topic_weights, 'w') as f: model.write_topic_weights_arff(f) model.save(options.model)