def zipf(self, message, users):
source_user = message.author.name
source_user = source_user.strip('@').split('#')[0]
target_users = [user.strip('@').split('#')[0] for user in users.split()]
if len(users) == 0:
target_users = [source_user]
if users == '*':
if message.server is not None:
target_users = [member.name for member in message.server.members]
target_users = [user for user in target_users if self.check_nickname_valid(user.lower()) is None]
image_file_name = self.quotes_file_name(source_user.lower())[:-4] + '.png'
pylab.title('Word frequencies')
for user in target_users:
quotes_file = codecs.open(self.quotes_file_name(user.lower()), 'r', encoding='utf-8')
lines = quotes_file.readlines()
quotes_file.close()
if len(lines) < 20:
continue
tokenizer = nltk.tokenize.RegexpTokenizer(r'\w+')
tokens = self.filter_to_english_words(tokenizer.tokenize(str(lines)))
if len(tokens) < 200:
continue
freq = nltk.FreqDist(tokens)
self.plot_word_frequencies(freq, user)
pylab.legend()
pylab.savefig(image_file_name)
pylab.gcf().clear()
await self.client.send_file(message.channel, image_file_name)
评论列表
文章目录