Как сохранить сюжет nltk FreqDist? - PullRequest
0 голосов
/ 20 октября 2018

Я пробовал разные методы, чтобы сохранить свой сюжет, но все, что я пробовал, получилось с пустым изображением, и у меня нет идей.Любая помощь с другими предложениями, которые могут это исправить?Пример кода ниже.

word_frequency = nltk.FreqDist(merged_lemmatizedTokens) #obtains frequency distribution for each token
print("\nMost frequent top-10 words: ", word_frequency.most_common(10))
word_frequency.plot(10, title='Top 10 Most Common Words in Corpus')
plt.savefig('img_top10_common.png')

1 Ответ

0 голосов
/ 20 октября 2018

Я думаю, вы можете попробовать следующее:

plt.ion()
word_frequency.plot(10, title='Top 10 Most Common Words in Corpus')
plt.savefig('img_top10_common.png')
plt.ioff()
plt.show()

Это потому, что внутри функции nltk plot вызывается plt.show() и после закрытия фигуры plt.savefig() не имеет активной фигуры длясохранить больше.

Временное решение: включить интерактивный режим, чтобы plt.show() изнутри функции nltk не блокировался.Затем вызывается savefig с текущей доступной фигурой и сохраняет правильный график.Чтобы затем показать рисунок, интерактивный режим необходимо снова отключить и plt.show() вызывать извне - на этот раз в режиме блокировки.

В идеале nltk переписал бы свою функцию построения графика, чтобы либо разрешить установить статус блокировки, либо не show построить график и вернуть созданную фигуру, либо принять Axes в качестве ввода, к которомупостроить.Не стесняйтесь обращаться к ним с этим запросом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...