Тестировалось на Python 3.9.7, вероятно будет работать на 3.7 и выше. Установка необходимых библиотек:
pip3 install -r requirements.txt
Сначала необходимо выгрузить из ВК архив своих сообщений. Обратите внимание, что у вас должен стоять русский (не дореволюционный!) язык в ВК, иначе парсер не сможет обработать данные. Примерно через 3 часа этот архив можно будет скачать. Нужно его разархивировать.
Нужно запустить parse.py
с указанием на путь к папке messages из архива и путь, по которому будут сохранены сообщения в формате json.
Например:
python3 parse.py Archive/messages messages.json
У parse.py
есть дополнительные опции, список можно посмотреть с помощью python3 parse.py --help
Нужно запустить score.py
с указанием на путь к спарсенным сообщениям и путь для сохранения результатов сентимент анализа.
Первый запуск займет дольше остальных, потому что сначала скачается языковая модель (примерно 80 мегабайт).
python3 score.py messages.json scores.csv
У скрипта есть в основном аналогичные parse.py
опции. Но score.py
по умолчанию анализирует только ваши сообщения, чтобы проанализировать все (не рекомендуется, в данный момент визуализация не поддерживает фильтрацию по пользователю) используйте -s all
.
По умолчанию используется модель для определения позитивности, для определения токсичности (чем больше значение тем токсичнее сообщение) используйте -m toxic
.
python3 plot.py scores.csv
Можно вписать несколько csv файлов через пробел, все они отобразятся на одном графике.
У скрипта есть опция -w
, регулирующая ширину (по времени) скользящего среднего. По умолчанию -w 30D
(30 дней). Также сработают опции вида -w 10H
или -w 10S
.
Стоит поэкспериментировать с этой настройкой: при слишком большом значении теряется точность графика, при слишком маленьком теряется гладкость.
В периоды, в которые попадает небольшое количество сообщений, могут наблюдаться большие выбросы значений.