Занятие 7
Тональность
и визуализация
Тональность текста
Визуализация результатов
анализа текстов
Сентимент-анализ
Сентимент-анализ — это оценка тональности текста. Чаще всего используется для оценки отзывов на товары и комментариев в соцсетях по какому-то инфоповоду.

Чаще всего библиотеки могут распознавать только позитив, негатив и нейтральную эмоцию.


Библиотека dostoevsky для русского языка классифицирует текст на 5 категорий:
  • Позитивное настроение;
  • Негативное настроение;
  • Нейтральное поведение;
  • Речевой акт (формальные поздравления, благодарственные и поздравительные посты);
  • Класс «пропустить» для неясных случаев.
Хэштеги и смайлики не считаются ярлыками настроения.
Выбор графика
Выбираем тип графика, отталкиваясь от цели. Что я хочу показать? Почему в этом случае картинка будет уместнее текста?

  • Все частотные слова в тексте → облако слов.
  • Частотность отдельных слов в тексте → барчарт или столбиковая.
  • Позитивные и негативные эмоции → расходящийся барчарт.
  • Распределение по тексту (дисперсия) → штрихкод.
  • Ассоциации и N-граммы → граф.
  • Соотношение MI и t-score → диаграмма рассеяния.



  • Коллокации с конкретным словом и с подробной аннотацией силы связи → схема.
  • Разница между показателями слов в двух корпусах и динамика рангов → наклонный график (slope).
  • Преобладание в коллекции одного-двух слов → пузырьковая (beeswarm).
  • Оценить эмоции, считываемые сентимент-библиотеками, по всем пяти категориям → радар.
Облако слов в Python
Цветовые схемы matplotlib

Перед созданием облака слов:
  1. Подсчитайте частоты с помощью Counter (words).most_common()
  2. Отберите нужное количество слов. Например, [:30].
  3. Соберите из списка с частотами датасет с двумя столбцами: в первом — слова (words), во втором — частоты (freq).
  4. Запустите код для создания облака, поменяв DATAFRAME на название получившегося у вас датафрейма.
import matplotlib.pyplot as plt
from wordcloud import WordCloud

d = {}
for a, x in DATAFRAME.values:
  d[a] = x

wordcloud = WordCloud (background_color = 'white', colormap = 'summer')
wordcloud.generate_from_frequencies(frequencies=d)
plt.figure()
plt.imshow (wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
wordcloud_svg = wordcloud.to_svg (embed_font=True)
f = open ('Облако слов.svg','w+')
f.write (wordcloud_svg)
f.close()
Домашнее задание
Дедлайн: 20 октября, понедельник, 18:00
Критерии оценивания
Пример работы
Часть 1: непосредственно работа с данными

1. Возьмите аудиотекст длительностью от 1 до 5 минут. Это может быть что угодно: отрывок подкаста, аудиокниги, аудио из видео, аудиогид, ваше голосовое сообщение. Много подходящих аудиогидов можно найти на портале https://izi.travel/ru

2. Расшифруйте текст с помощью любой из библиотек, которые мы рассматривали на занятии. При желании попробуйте несколько библиотек.

3. Определите тональность текста с помощью любой из библиотек, которые мы рассматривали на занятии.

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

5. Подсчитайте частотность совместной встречаемости слов в отредактированном тексте, чтобы сделать граф.

6. Составьте граф слов в Cytoscape. Можете настроить дизайн графа (порог частотности, цвет вершин и рёбер, положение кластеров и т.д.) по своему усмотрению.

Чем больше Degree у слова, тем больше размер Node (слова): параметры Size и Label Font Size.

Чем больше weight (частота совместной встречаемости) у связи между словами, тем шире ребро графа (Edge): параметры Width и по желанию Transparency.

7. Выгрузите граф как картинку и оформите в готовую карточку-инфографику. Как в предыдущем задании: добавьте заголовок, источник, ваше имя и год.
_________
Часть 2: описание результатов

8. Заведите в своей папке документ «Работа с аудио».

9. Вставьте в него ссылку на источник аудио. Если это ваше личное аудио, так и напишите: «Взято из личного архива».

10. Вставьте расшифрованный текст.

11. Выделите красным цветом места с ошибками.

12. Оцените качество расшифрованного текста: всё ли распознано корректно? Какие допущены ошибки и почему? Если вы пробовали несколько библиотек, напишите, какая из них справилась лучше.

13. Вставьте отредактированную версию текста.

14. Напишите, какая у текста тональность по версии библиотек. Расскажите, согласны ли вы с этой оценкой и почему.

15. Вставьте инфографику с получившимся графом именованных сущностей.
This site was made on Tilda — a website builder that helps to create a website without any code
Create a website