Каждое сообщение получает облако слов, но я мог бы легко изменить его, чтобы генерировать один за каждую неделю, месяц, что угодно.
Это крошечная часть hopefull крупного проекта приближающегося шиллинг анализа и обнаружения. Более поздние версии могут рассчитывать и использовать настроение.
Вот мои последние 25! Если вы хотите, чтобы я сделал один отправить свой идентификатор пользователя. Любые запросы на специальное форматирование или дополнительные функции, могут или не могут быть предоставлены, так не стесняйтесь спрашивать. Сценарий питон включен в конце этого поста, так что вы можете сделать это самостоятельно, а хотя я просто написал так как большинство кода он может использовать некоторые рефакторинга.
Код:
импорт запросов
импорт matplotlib.pyplot в PLT
от Wordcloud импорта Wordcloud
от BS4 импорта BeautifulSoup
время импорта
Защиту processPostsPage (PageNumber, идентификатор пользователя):
#grab следующей страницы сообщений
PAGEURL = "https://bitcointalk.org/index.php?action=profile;u=" + Ул (идентификатор пользователя) + "; Са = showPosts; начать ="+ Ул (PageNumber * 20)
ответ = requests.get (PAGEURL)
Данные = response.content
#grab дивы с «пост» атрибут
Суп = BeautifulSoup (данные)
postsOnPage = soup.findAll ("ДИВ", { "класс" : "после" })
#return массив слов облака
wordCloudsForPageOfPosts = []
кол = 1;
игнорируемые слова = ["после","сообщений"]
#convert сообщений в Wordcloud изображения
для DIV в postsOnPage:
Текст = div.get_text ()
#remove в стоп-слова с небольшим количеством магии
текст = " ".join ([слово в слово text.split (), если слово не в игнорируемых слов])
nextCloud = Wordcloud (). генерации (текст)
wordCloudsForPageOfPosts.append (nextCloud)
кол = кол + 1
вернуться wordCloudsForPageOfPosts
Защиту buildPlot (USERID, numberOfPosts):
ширина = 25
высота = 15
рис = plt.figure (figsize = (ширина, высота))
CurrentPage = 1
кол = 0
в то время как (кол <= numberOfPosts):
#sleep между захватом страниц сообщений для стресса бесплатно bitcointalk ползать
time.sleep (1)
#grab облака для этой страницы
облака = processPostsPage (CurrentPage, идентификатор пользователя)
#display облака, пока мы не достигнем правильного числа
для облака в облаках:
кол = кол + 1
если (кол < numberOfPosts):
а = fig.add_subplot (5,5, количество)
#hack удалить засечки
для в fig.get_axes ():
a.set_xticks ([])
a.set_yticks ([])
a.set_title ("После " + Ул (количество))
plt.imshow (облако)
= 249526 идентификатор пользователя
numberOfPostToDisplay = 25
buildPlot (идентификатор пользователя, numberOfPostToDisplay)
plt.show ()
импорт matplotlib.pyplot в PLT
от Wordcloud импорта Wordcloud
от BS4 импорта BeautifulSoup
время импорта
Защиту processPostsPage (PageNumber, идентификатор пользователя):
#grab следующей страницы сообщений
PAGEURL = "https://bitcointalk.org/index.php?action=profile;u=" + Ул (идентификатор пользователя) + "; Са = showPosts; начать ="+ Ул (PageNumber * 20)
ответ = requests.get (PAGEURL)
Данные = response.content
#grab дивы с «пост» атрибут
Суп = BeautifulSoup (данные)
postsOnPage = soup.findAll ("ДИВ", { "класс" : "после" })
#return массив слов облака
wordCloudsForPageOfPosts = []
кол = 1;
игнорируемые слова = ["после","сообщений"]
#convert сообщений в Wordcloud изображения
для DIV в postsOnPage:
Текст = div.get_text ()
#remove в стоп-слова с небольшим количеством магии
текст = " ".join ([слово в слово text.split (), если слово не в игнорируемых слов])
nextCloud = Wordcloud (). генерации (текст)
wordCloudsForPageOfPosts.append (nextCloud)
кол = кол + 1
вернуться wordCloudsForPageOfPosts
Защиту buildPlot (USERID, numberOfPosts):
ширина = 25
высота = 15
рис = plt.figure (figsize = (ширина, высота))
CurrentPage = 1
кол = 0
в то время как (кол <= numberOfPosts):
#sleep между захватом страниц сообщений для стресса бесплатно bitcointalk ползать
time.sleep (1)
#grab облака для этой страницы
облака = processPostsPage (CurrentPage, идентификатор пользователя)
#display облака, пока мы не достигнем правильного числа
для облака в облаках:
кол = кол + 1
если (кол < numberOfPosts):
а = fig.add_subplot (5,5, количество)
#hack удалить засечки
для в fig.get_axes ():
a.set_xticks ([])
a.set_yticks ([])
a.set_title ("После " + Ул (количество))
plt.imshow (облако)
= 249526 идентификатор пользователя
numberOfPostToDisplay = 25
buildPlot (идентификатор пользователя, numberOfPostToDisplay)
plt.show ()