Подпишитесь на наш телеграмм канал про спорт и заработок

Open Dota Облако Слов

Open dota облако слов

29 августа 2021 г.

  1. Главная
  2. Dota 2
  3. Облако слов в Dota 2

Open Dota Облако Слов


Open Dota Облако Слов

Недавно среди игроков Дота 2 появилась интересная тема для обсуждения — «Облако слов». Данный сервис позволяет игрокам просматривать свои слова и фразы, сказанные в общем чате на протяжении всей истории их учетной записи. Собранные в одном блоке слова могут многое сказать об игроках, их поведении и даже о характере. Эта информация наверняка заинтересует посетителей сайта

Чтобы увидеть собственное облако в Dota 2, нужно перейти на платформу, используя свою учетную запись Steam. OpenDota проанализирует историю вашей учетной записи и зафиксирует каждое слово, которое было произнесено в общем чате.

Отображение всех сообщений может занять несколько минут. OpenDota создаст графическое изображение этих слов с размером для каждого в зависимости от частоты их использования. наиболее часто используемые слова также будут самыми большими на графике и наоборот.

Помимо собственного облака слов, вы также можете увидеть общее изображение, состоящее из всех слов, которые были произнесены общем чате. OpenDota игнорирует фильтр ненормативной лексики Dota 2, поэтому нелитературные слова будут отображаться на простом английском языке. Также облако слов анализирует сообщения только из общего чата. Сообщения командного чата и голосовой чат недоступны для OpenDota.

Просмотр всех личных сообщений в чате может задуматься о том, насколько дружелюбен человек, играя в Dota 2. Наполнен ли он положительными сообщениями и комплиментами в адрес вражеской команды? Или же облако слов Dota 2 заполнено негативными фразами и оскорблениями? Облако слов Dota 2 может сказать о характере игрока.

Облака слов профессиональных игроков в Dota 2

Уже есть облака слова для некоторых профессиональных игроков. Например, для одного участника набор слов может показаться кратким, но на самом деле это обычное дело для большинства профессиональных игроков в Dota 2. Эти учетные записи в основном используются для турниров, когда общий чат используется экономно. На большинстве турнирных аккаунтов облако заполнено минимально.

Есть и более разговорчивые команды. Для их участников облако слов в основном используется для базового общения. На изображении доминирует очень длинные цепочки букв. Там также есть несколько профессиональных имен и специфических команд. Чем более организована команда, тем меньше мусорных и ненужных фраз. Это и логично, ведь общение ведется по делу, максимально информативно.


Open dota облако слов

Всем привет! Хочу продемонстрировать вам, как я использовал библиотеку WordCloud для создания подарка для друга/подруги. Я решил составить облако слов по переписке с человеком, чтобы выделить основные темы, которые мы обсуждаем.

Выгружаем переписку

Для начала нам нужно будет выгрузить переписку из ВК. Как это сделать? Очень просто! Я пользовался расширением для браузера «VkOpt». Скачиваем его и устанавливаем. Теперь заходим в диалог с человеком, переписку с которым хотим скачать.

Наводим на три точки и выбираем «сохранить переписку». Далее будет окно с выбором типа файла. Я предпочитаю json.

Обработка переписки

Импортируем json и открываем наш файл с перепиской.

import json
vk = open('vk2.json', 'r', encoding='utf8')
vk = json.load(vk)

Теперь давайте выведем его и посмотрим как он выглядит.

Ну в общем всё ясно, массив таких вот сообщений. Каждый элемент соответствует одному облако-сообщению.

Давайте теперь вытащим из каждого сообщения его текст и разделим этот текст на слова.

mas = 
for i in range(len(vk)):
    mas.append(vk[i]['body'].split())
    
data = 
for i in mas:
    for j in range(len(i)):
        data.append(i[j].lower())

Теперь у нас есть массив data, в котором каждый элемент — это одно слово. Далее создадим большую строку, в которую просто запишем через пробел все наши слова.

big_string=''
for i in range(len(data)):
    big_string+=(data[i]+' ')

WordCloud

Почти всё готово, теперь давайте воспользуемся библиотекой WordCloud и построим наше облако слов.

pip install wordcloud

import matplotlib.pyplot as plt
%matplotlib inline

from wordcloud import WordCloud, STOPWORDS
wordCloud = WordCloud(width = 10000, height = 10000, random_state=1, background_color='black', colormap='Set2', collocations=False).generate(big_string)

plt.figure(figsize=(5,5))
plt.imshow(wordCloud)

Убираем стоп-слова

Так, и что же это? Не очень похоже на оригинальный подарок. Естественно всё не так просто. Дело в том, что в нашей речи и сообщениях встречается куча стоп-слов. Собственно, эти слова вы и видите на картинке. Они встречались в диалоге чаще всего, поэтому алгоритм выделил их крупным шрифтом.

Теперь наша задача: почистить строку от ненужный слов. Для этого скачаем словарик стоп-слов русского языка(). Он представлен как обычный txt-шник, а значит прочитаем его и разделим по переносу строки.

stop_words = open('stop-ru.txt', 'r', encoding='utf8')
stop_words = stop_words.read()
stop_words = stop_words.split('n')

Далее создадим массив clear_data, куда будем заносить слова из массива data, которые не содержатся в списке стоп-слов(т. е. нормальные слова).

clear_data=
for i in data:
    if(i not in stop_words):
        clear_data.append(i)

А теперь формируем нашу большую строку, только теперь из нового массива и заново строим WordCloud.

big_string=''
for i in range(len(clear_data)):
    big_string+=(clear_data[i]+' ')
    
wordCloud = WordCloud(width = 10000, height = 10000, random_state=1, background_color='black', colormap='Set2', collocations=False).generate(big_string)
plt.figure(figsize=(5,5))
plt.imshow(wordCloud)

Результат на лицо. Начинает проявляться оттенок переписки с тем или иным человеком. Ну и, естественно, куда же мы русского могучего, он тоже начинает проявляться на изображении, приходится его замазывать :)

Читайте еще:  Передать Показания Счетчика За Электроэнергию Тюмень

Переходим на ручное управление

Так, вроде стоп-слова убрали, но картинка всё равно не выглядит привлекательной. В выборке остались различные выражения, которые мы часто используем в переписке. Например, мои слова паразиты: «ок», «ща», «крч». Что делать? Все просто. Открываем наш текстовик с русскими стоп-слова и просто вписываем туда слова, которые не должны присутствовать в новом облаке слов(не забудьте сохранить текстовик, перед повторным чтением).

P.S. На самом деле есть и второй вариант удалить слова паразиты. Создадим массив, который заполним словами паразитами, и подадим его как параметр в WordCloud. Тоже хороший вариант, но мне больше нравится с текстовиком.

stopw = ['а', 'ок', 'крч'] #массив слов, которые хотим удалить
#подадим массив stopw в WordCloud как параметр stopwords
wordCloud = WordCloud(width = 1000, height = 1000, random_state=1, 
                      background_color='black', colormap='Set2', 
                      collocations=False, stopwords=stopw).generate(big_string)

Таким образом, мы всё глубже и глубже погружаемся в чертоги нашей переписки. Обычно появляются слова, соответствующие темам, которые вы и ваш друг часто обсуждаете.

Форма облака слов

Теперь давайте воспользуемся одной фишкой WordCloud. Оформим наше облако слов в виде какой-то картинки. Я выберу банальное сердечко)

from PIL import Image
original_image = Image.open('путь до картинки')
image = original_image.resize([2000,2000], Image.ANTIALIAS)
image = np.array(image)

Подадим в функцию нашу картинку как параметр mask.

wordCloud = WordCloud(width = 1000, height = 1000, random_state=1, 
                      background_color='black', colormap='Set2', 
                      collocations=False, stopwords=stopw, mask=image).generate(big_string)

Вот такая штука у меня получилась.

По-хорошему, нужно удалить ещё около десятка слов, для более-менее приятной картины, но я уверен ту вы справитесь сами)

P.S. Выбирайте черно-белые изображения предметов. Лучше всего, если они выглядят как силуэты. С .png у меня не прошло, поэтому я сохранял в .jpg, может быть у вас получится.

Итог

Я нарисовал облако слов, которое отражает тональность переписки с тем или иным человеком. Дополнительно, в облаке содержатся слова, которые соответствуют тем темам, которые вы часто обсуждали в диалоге. Как вариант, можно сохранить эту картинку, распечатать, поставить в рамочку и вручить как подарок вашему собеседнику. Ему будет очень приятно, ведь всегда интересно по как оценивает вашу переписку алгоритм)

Open dota облако слов

Подробности

Категория: Средства визуализации информации

Open Dota Облако СловСоблаком словилитегов вы наверняка уже не раз встречались в сети Интернет. Как правило, такое облако «висит» на сайте в боковой колонке, а при наведении курсора на него слова начинают или увеличиваться в размерах, или «вращаться» вокруг невидимой нам оси.

Облако слов или тегов(англ. tag cloud, word cloud, wordle) — это визуальное представление списка категорий или тегов, также называемых метками, ярлыками, ключевыми словами и т.п. Принцип устройства таких облаков очень простой. Поскольку каждое слово является гиперссылкой, то чем чаще оно встречается на сайте, тем больший размер принимает в облаке. Встречаются облака, в которых важность слова подчеркивается цветом. Таким образом, облако слов всегда подвижно и изменяется в размерах и по цвету по мере публикации новых материалов на сайте.

Благодаря удобству использования и внешней привлекательности облака слов часто используют в блогах и на тематических сайтах.

Первоначально облака слов выступали только как средства организации гиперссылок. Постепенно их функции видоизменялись, и сегодня область их использования гораздо шире.

Во-первых, словами, из которых формируется облако, теперь могут быть не только гиперссылки. Вы можете взять любой текст и с помощью специальных программных средств превратить его в облако слов. Во-вторых, облака слов нашли применение, помимо сайтостроения, во многих других сферах, в том числе в сфере образования.

Каким образом учитель может использовать облака слов в своей работе?

Существуют различные способы:

  • как дидактический материал на уроках (в электронном виде или распечатанный на принтере);
  • для представления информации о себе или о каком-то человеке (в портфолио, при обобщении опыта, на презентациях, на сайте и/или в блоге);
  • для создания ярких, запоминающихся продуктов (открытки, информационно-рекламные буклеты, бюллетени, презентации);
  • для акцентирования внимания на важных датах, событиях, ключевых моментах (при обобщении опыта, в аналитических материалах, в презентациях и т.п.);
  • как визуализацию критериев оценивания чего-либо;
  • для представления результатов опроса или обсуждения;
  • и много других вариантов, которые подскажут вам профессиональный опыт и творческое воображение.

Приведём несколько конкретных примеров использования облака слов учи

  • на уроках русского языка и литературы:
    • задание «Угадайте автора и название произведения» — в облако в этом случае могут быть включены слова, называющие героев произведения, место происшествия и любые другие признаки, позволяющие распознать текст;
    • задание «Соберите стишок» — слова из небольшого по размеру стихотворения, по которым учащиеся должны воссоздать полный текст;
    • задание «Словарные слова» — можно использовать различные вариации данного задания: облако из одного словарного слова; облако из словарных слов в рамках одной изученной темы; облако из слов, изученных за год, и т.д.;
    • задание «Угадайте пословицу (поговорку и т.п.)» — дается большинство слов из пословицы, несколько пропущено;
    • задание «Соберите имена героев» — учащимся предлагается самим составить облако, где будут использованы имена героев нескольких последних произведений;
  • на уроках математики:
    • задание «Устный счет» (кто быстрее решит все примеры? Кто найдет больше примеров и решит их? Решить только те примеры, которые имеют положительный ответ и т.п.);
    • задание «Составьте примеры» — облако содержит математические термины, знаки, цифры;
  • на этапе сообщения темы урока для повышения мотивации и интереса учащихся — облако содержит красочное и оригинально оформленное название темы;
  • на этапе закрепления или контроля знаний — облако слов содержит основные понятия по пройденной теме. Учащиеся выбирают термины и понятия, изученные в данной теме, и дают определение или раскрывают понятие;
  • на любом уроке и любом этапе урока — задание «Найди лишнее слово»: для повторения пройдённого материала, для ознакомления с новым материалом, для переключения внимания, в качестве разминки и т.п.;
  • во внеклассной работе — конкурс плакатов, создание логотипа команды, «Облако эмоций» и т.д.
Читайте еще:  Изюмская 37 Поликлиника Как Доехать

Open Dota Облако Слов

Сервисы для создания облака слов

1.Сервис Wordcloud.pro позволяет создавать интерактивные облака из слов. С помощью облака слов можно организовать поисковую страницу вашего сайта или же использовать «облако» в дальнейшей работе как картинку, сохранив в форме графического файла. Любой текст или просто набор слов легко превращается в облако тегов. Несомненным плюсом сервиса является его русскоязычный интерфейс.Open Dota Облако Слов

Облако тегов формируется двумя способами: 1) из заданных вами слов или текста, 2) из предложенного набора слов на сайте. Сервис позволяет создать облако тегов в форме слова или образа. Возможности ограничиваются лишь вашей фантазией.

Для начала работы регистрация не требуется

Помощь > > >

Open Dota Облако Слов2.Сервис, как и предыдущий сервис, позволяет создать облако слов из текста, введенного пользователем или с web-страницы по указанному адресу.

Облако может иметь различную форму и цветовое решение. Каждое слово облака представляет собой гиперссылку для поиска в Google.

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

Созданным облаком можно поделиться, используя ссылку, а также можно получить код для встраивания облака на страницы сайтов, блогов.

Сервис позволяет сохранить облако слов не только как растровое изображение (расширение PNG), но и как векторное (SVG). Также вы можете просто распечатать облако на принтере.

Помощь > > >

3.Сервис является бесплатным онлайн-генератором облака слов или тегов из текста, предоставленного вами. В облаке выделяются более крупно слова, которые чаще всего встречаются в исходном тексте. Вы можете настроить облако, используя различные шрифты, макеты, фоны и цветовые схемы.Open Dota Облако Слов

В сфере образования этот сервис можно использовать для подведения итогов опросов, игр, мероприятий. Можно обработать текст и определить частотность того или иного слова.

Созданные изображения можно сохранить в галерее, сохранить как картинку на жестком диске компьютера, распечатать на принтере. Также можно добавить ссылку на облако на свой сайт, блог или поделиться им с друзьями.

Вернуться

Open dota облако слов

Создавайте облако слов на русском языке легко и просто с помощью сервиса Word’s Cloud.

Размер шрифта и цвет будет зависеть от частоты появления слова в тексте. Облако слов это интересный способ сделать краткое описания текста.

Все что нужно это просто ввести текст и нажать кнопку.

Open dota облако слов

Создаем облако слов в Python

Облако слов в Python представляет собой визуализированный набор слов с наибольшей частотой использования в тексте или базе данных. Чем чаще встречается слово в источнике, тем большим размером шрифта оно написано в облаке слов. Таким образом, благодаря визуальным эффектам, читатель с первого взгляда на, казалось бы, мило перемешанную кашу из слов, способен сформировать общее представление о сути текста или содержимого базы данных. Выходит, эта «каша» — весьма полезное блюдо для анализа данных, поэтому самое время взглянуть на рецепт приготовления и сформировать облако слов в Python!

В качестве примера мы рассмотрим датасет с информацией о статьях текущего сайта. Сформируем облако слов в Python на основе текстовой информации из колонки «Title». Действовать будем поэтапно:

  1. Сначала мы загрузим датасет
  2. После этого познакомимся с основным принципом создания облака слов и сформируем стандартное прямоугольное облако на неочищенных данных.
  3. Затем, используя функции препроцессинга текста, преобразуем наши данные и выведем прямоугольное облако на подготовленных данных.
  4. И в заключение, сформируем облако слов в виде фигуры, загруженной в качестве маски из jpg-изображения. В нашем случае это будет фигура самолета.

Итак, открываем редактор, потому как пришло время покодить!

1. Загружаем датасет

Скачать файл с данными можно по ссылке: «articles.csv». Для загрузки датасета нам необходимо импортировать библиотеку pandas, после чего можно загружать данные из файла в переменную data с помощью функции open(). Так как у меня датасет находится в одной папке со скриптом, то относительный путь, передаваемый в качестве аргумента функции open(), совпадает с названием файла:

import pandas as pd
import matplotlib.pyplot as plt

data = pd.read_csv("articles.csv")
data.head()
загруженный датасет

Отлично, данные загружены, можно приступать к созданию облака слов!

2. Создаем первое облако слов в Python — знакомимся с основным принципомна сырых данных:

Сейчас мы намеренно пропустим процесс подготовки данных, чтобы посмотреть, какое облако слов сформируется из сырого текста. Единственное, что нам потребуется сделать — это объединить данные из колонки «Title» в один текст. Это легко сделать с помощью функции «join» — добавленная строка выделена подсветкой:

import pandas as pd

# Считываем содержимое файла в переменную data
data = pd.read_csv("articles.csv")
data.head()

# Объединяем данные из колонки 'Title'
text = ' '.join(data['Title'])

А теперь загрузим класс WordCloud из библиотеки wordcloud и сгенерируем облако слов с помощью функции generate(). В качестве аргумента функции generate() передадим наш текст. После этого выведем сгенерированное облако с помощью библиотеки matplotlib. Добавленные на этом этапе строки выделены в коде подсветкой:

import pandas as pd
import matplotlib.pyplot as plt
# загружаем класс WordCloud из библиотеки wordcloud
from wordcloud import WordCloud

data = pd.read_csv("articles.csv")
text = ' '.join(data['Title'])

# Генерируем облако слов и сохраняем в переменной cloud
cloud = WordCloud().generate(text)
# Выводим облако слов на экран
plt.imshow(cloud)
# Отключаем отображение осей
plt.axis('off')

В результате исполнения кода, получим:

Облако слов со стандартными настройками

3. Осуществляем предобработку текста

3.1. Удаляем стоп-слова

На первый взгляд, получилось довольно приятное облако. Однако, после второго взгляда хочется воскликнуть: «Обманули! Подменили!..» и так далее. Ведь мы на самом деле ожидали, что крупным шрифтом будут написаны основные значащие слова, а вместо этого на переднем плане оказались теряющие смысл без контекста предлоги: «как, в, на, и». Эти предлоги называются стоп-словами, и они действительно чаще всего используются в нашей речи, однако в большинстве случаев при анализе текста, являются лишним шумом. Этот фактор был учтен создателями библиотеки wordcloud, и для объекта облака слова WordCloud() был добавлен параметр stopwords. По умолчанию, значение этого параметра «None», это значит, что функция использует встроенный список стоп-слов, среди которых присутствуют английские слова, но нет русских. Поэтому при выводе облака слов на основе английского текста, не нужно менять значение параметра stopwords — предлоги, союзы и прочие артикли будут исключены автоматически. В нашем же случае, необходимо передать параметру stopwords список со стоп-словами русского языка. Этот список есть в библиотеке nltk. Давайте это сделаем! (добавленные строки выделены подсветкой):

import pandas as pd
from wordcloud import WordCloud
import matplotlib.pyplot as plt

# подгружаем библиотеку nltk со стоп-словами
from nltk.corpus import stopwords
# сохраняем список с русскими стоп-cловами в переменную stop_words
stop_words = stopwords.words('russian')

data = pd.read_csv("articles.csv")
text = ' '.join(data['Title'])

# Определяем параметр stopwords при создании объекта облака слов
cloud = WordCloud(stopwords=stop_words).generate(text)

plt.imshow(cloud)
plt.axis('off')
Облако без стоп-слов

3.2. Разбиваем текст на токены и получаем леммы

Отлично! Теперь предлоги исчезли из облака слов! Однако, выводятся слова с разными склонениями, такие как «помощи», «изображений», «файла» и т. д. Конечно, можно оставить оставить эти слова в покое, однако я предлагаю добавить немного строк кода, чтобы привести их все к основной форме до загрузки текста в функцию generate(). Для этого мы будем использовать библиотеку созданную для лемматизации русского и украинского языков под названием pymorphy2. Однако, предварительно, нам потребуется разбить текст на слова, другими словами, токенизировать текст:

import pandas as pd
from wordcloud import WordCloud
import matplotlib.pyplot as plt

# Импортируем библиотеку для лемматизации русских и украинских слов
import pymorphy2
# Импортируем метод word_tokenize из библиотеки nltk
from nltk.tokenize import word_tokenize 

from nltk.corpus import stopwords
stop_words = stopwords.words('russian')

data = pd.read_csv("articles.csv")
text = ' '.join(data['Title'])

# разбиваем текст на токены
# в результате получаем переменную типа list со списком токенов
text = word_tokenize(text)

# инициализируем лемматайзер MorphAnalyzer()
lemmatizer = pymorphy2.MorphAnalyzer()

# функция для лемматизации текста, на вхд принимает список токенов 
def lemmatize_text(tokens):
    # создаем переменную для хранения преобразованного текста
    text_new=''
    # для каждого токена в тексте
    for word in tokens:
        # с помощью лемматайзера получаем основную форму
        word = lemmatizer.parse(word)
        # добавляем полученную лемму в переменную с преобразованным текстом
        text_new = text_new + ' ' + word[0].normal_form
    # возвращаем преобразованный текст
    return text_new

# вызываем функцию лемматизации для списка токенов исходного текста
text = lemmatize_text(text)

# генерируем облако слов
cloud = WordCloud(stopwords=stop_words).generate(text)
plt.imshow(cloud)
plt.axis('off')
В код была добавлена токенизация исходного текста, а также функция для лемматизации полученного списка токенов <strong>lemmatize_text()</strong>. По завершению цикла <strong>for</strong> функция <strong>lemmatize_text()</strong> возвращает строку с преобразованным текстом, прошедшим через токенизацию и лемматизацию! Посмотрим на результат:
Облако слов после лемматизации

Отлично! Теперь содержание нашего облака на высоте, а значит, пришло время побаловаться с параметрами WordCloud и поправить обертку! Для начала я предлагаю изменить форму облака слов!

Читайте еще:  Нахлынуть Какое Спряжение

4. Меняем форму облака слов

Чтобы изменить форму облака слов, нужно:
  1. Загрузить изображение, которое будет использоваться в качестве маски при формировании облака, и преобразовать его в матрицу
  2. Передать параметру mask в качестве значения полученную матрицу
  3. По желанию добавить параметры обводки полученной фигуры: contour_width и contour_color

Реализуем задуманное: загрузим изображение «» и определим параметры в WordCloud()

import pandas as pd
from wordcloud import WordCloud
import matplotlib.pyplot as plt
import pymorphy2
import nltk
from PIL import Image
# импортируем библиотеку numpy для преобразования изображения в массив
import numpy as np
from nltk.tokenize import word_tokenize 
from nltk.corpus import stopwords
stop_words = stopwords.words('russian')

data = pd.read_csv("articles.csv")
text = ' '.join(data['Title'])

text = word_tokenize(text)
lemmatizer = pymorphy2.MorphAnalyzer()

def lemmatize_text(tokens):
    text_new=''
    for word in tokens:
        word = lemmatizer.parse(word)
        text_new = text_new + ' ' + word[0].normal_form
    return text_new
text = lemmatize_text(text)

# загружаем изображение с самолетом и преобразуем в матрицу
cake_mask = np.array(Image.open('plane.jpg'))

# генерируем облако слов
cloud = WordCloud(stopwords=stop_words, mask=cake_mask, contour_width=10, contour_color='#2e3043').generate(text)
# увеличим размер выводимой фигуры
plt.figure(figsize=(9,5))
plt.imshow(cloud)
plt.axis('off')

Посмотрим на результат:

Неплохо, однако, не мешало бы поиграться с параметрами WordCloud, изменить размеры изображения и цвета на свой вкус.

Редактируем облако слов в Python: меняем фон, цветовую схему и максимальное количество слов

У объекта WordCloud довольно много настраиваемых параметров. Описание всех параметров можно найти по ссылке в документации. Сейчас мы изменим значения лишь некоторых из них:

  • background_color — цвет фона, заданный по умолчанию черный цвет фона я хочу поменять на background-color=’#272d3b’
  • colormap — цветовая схема — это набор цветов, которыми будут раскрашены буквы в облаке слов. Полный набор цветовых схем можно посмотреть по ссылке: Цветовые схемы matplotlib. Я установлю значение colormap=’Set3′
  • Максимальное количество слов в облаке — параметр max_words. Уменьшу количество слов до 80, max_words=80

Таким образом, после внесенных изменений итоговый код имеет вид:

import pandas as pd
from wordcloud import WordCloud
import matplotlib.pyplot as plt
import pymorphy2
import nltk
from PIL import Image
# импортируем библиотеку numpy для преобразования изображения в массив
import numpy as np
from nltk.tokenize import word_tokenize 
from nltk.corpus import stopwords
stop_words = stopwords.words('russian')

data = pd.read_csv("articles.csv")
text = ' '.join(data['Title'])

text = word_tokenize(text)
lemmatizer = pymorphy2.MorphAnalyzer()

def lemmatize_text(tokens):
    text_new=''
    for word in tokens:
        word = lemmatizer.parse(word)
        text_new = text_new + ' ' + word[0].normal_form
    return text_new
text = lemmatize_text(text)

# загружаем изображение с самолетом и преобразуем в матрицу
cake_mask = np.array(Image.open('plane.jpg'))

# генерируем облако слов
cloud = WordCloud(stopwords=stop_words, mask=cake_mask, contour_width=10, contour_color='#2e3043', background_color='#272d3b', colormap='Set3', max_words=80).generate(text)

# увеличим размер выводимой фигуры
plt.figure(figsize=(9,5))
plt.imshow(cloud)
plt.axis('off')

Отлично! Теперь полученное облако слов выводится в виде симпатичного самолета:

Финальный результат

Заключение:

Поздравляю вас с успешно проделанной работой! Мы изучили основной принцип формирования облака слов в Python, подготовили русский текст для формирования корректного облака, а также научились менять цвет и форму облака слов. В итоге у нас получилось 2 вида облаков: стандартное облако в виде прямоугольника, и облако в форме самолета!

Оцените статью
( Пока оценок нет )

Андрей Шутько, журналист и репортер Anticwar.ru. Об армии он пишет более 15 лет. Несколько раз он был военным корреспондентом в Афганистане.

andreyshutko7@gmail.com