Анализ видеоконтента: различия между версиями
Нет описания правки |
Нет описания правки |
||
| Строка 1: | Строка 1: | ||
== VK Video Analytics — Анализ видеоконтента == | |||
'''Автор:''' Светлана Селиверстова | |||
'''Группа:''' АДЭУ-221 | |||
'''Дисциплина:''' Работа с API социальных сетей и облачных сервисов | |||
'''Статус проекта:''' Выполнен | |||
== Цель работы == | |||
Разработать инструмент для анализа видеоконтента из открытых источников (VK) с целью выявления актуальных тем, изучения принципов работы [[API]] и создания интерактивного веб-интерфейса для визуализации метрик. | |||
== Задачи == | |||
# Изучить документацию VK API (методы <code>video.get</code>, <code>users.get</code>, <code>groups.getById</code>, <code>utils.resolveScreenName</code>). | |||
# Получить токен доступа для работы с данными. | |||
# Написать скрипт на Python для сбора до 500 видео из сообщества с пагинацией. | |||
# Реализовать фильтрацию «лишних» слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем. | |||
# Построить графики: топ-10 видео, анализ длительности, временная активность, облако ключевых слов, вовлечённость. | |||
# Создать веб-интерфейс на Flask для отображения аналитики в браузере (localhost). | |||
# Оформить результаты в виде отчёта. | |||
== Технологии == | |||
* '''Языки:''' Python, JavaScript, HTML/CSS | |||
* '''Библиотеки Python:''' requests, pandas, matplotlib, seaborn, wordcloud, flask | |||
* '''API:''' VK API (видео, пользователи, группы, разрешение имён) | |||
* '''Визуализация:''' Matplotlib, Seaborn, WordCloud | |||
* '''Веб-фреймворк:''' Flask | |||
== Диаграмма работы приложения «VK Video Analytics» == | |||
{{#mermaid: | {{#mermaid: | ||
| Строка 57: | Строка 46: | ||
}} | }} | ||
== Структура проекта == | |||
<pre> | |||
vk_video_analytics/ | vk_video_analytics/ | ||
├── config.py # настройки: токен, ссылка, лимиты | ├── config.py # настройки: токен, ссылка, лимиты | ||
| Строка 73: | Строка 62: | ||
│ └── *.json # инсайты и тренды | │ └── *.json # инсайты и тренды | ||
└── requirements.txt # зависимости | └── requirements.txt # зависимости | ||
</pre> | |||
== Ход работы над проектом == | |||
=== Этап 1. Написание Python-скрипта для сбора данных === | |||
Установила необходимые библиотеки: | |||
<pre>pip install requests pandas matplotlib seaborn wordcloud flask</pre> | |||
Написала клиент для VK API с поддержкой: | |||
* Преобразования ссылки в ID через <code>utils.resolveScreenName</code> | |||
* Пагинации для получения до 500 видео | |||
* Сбора информации об авторах (пользователи и группы) | |||
'''Результат:''' собран DataFrame с полями: <code>title</code>, <code>views</code>, <code>duration</code>, <code>date</code>, <code>engagement</code> и др. | |||
=== Этап 2. Реализация фильтрации «лишних» слов === | |||
Создала список стоп-слов, включающий: | |||
* Местоимения (твой, мой, его, их, я, ты, мы) | |||
* Глаголы (быть, сказать, делать, хотеть, любить, идти, работать) | |||
* Вводные конструкции (кстати, наверное, конечно, по-моему) | |||
* Частицы, предлоги, союзы (в, на, и, а, но, или) | |||
* Общие слова (самый, хороший, новый, легко, сейчас) | |||
При построении облака слов и поиске трендовых тем эти слова исключаются, остаются только смысловые ключевые слова. | |||
=== Этап 3. Создание графиков и визуализации === | |||
Реализовала модуль визуализации, который строит: | |||
* '''Топ-10 видео по просмотрам''' (горизонтальная столбчатая диаграмма) | |||
* '''Анализ длительности''' — средние просмотры и распределение по категориям | |||
* '''Временной анализ''' — средние просмотры по часам и дням недели | |||
* '''Облако ключевых слов''' (только значимые слова после фильтрации) | |||
* '''Анализ вовлечённости''' — зависимость вовлечённости от просмотров и по длительности | |||
=== Этап 4. Создание веб-интерфейса на Flask === | |||
Разработала веб-приложение на Flask с маршрутами: | |||
* <code>/</code> — главная страница с аналитикой | |||
* <code>/api/insights</code> — JSON с ключевыми инсайтами | |||
* <code>/api/trending</code> — JSON с трендовыми темами | |||
* <code>/api/top_videos</code> — JSON с топ-20 видео | |||
* <code>/api/chart/<name></code> — отдача PNG-графиков | |||
* <code>/refresh</code> — принудительное обновление данных | |||
HTML-шаблон адаптивный, отображает все графики и тренды в удобной сетке. | |||
=== Этап 5. Тестирование и отладка === | |||
Провела тестирование на сообществе <code>https://vk.com/vkvideo</code>. Собрано 500 видео, построены графики. Проверила фильтрацию стоп-слов — в облаке слов и трендах остались только смысловые темы (например, «кино», «сериал», «премьера», «трейлер»). | |||
== Выводы == | |||
В ходе работы над проектом я: | |||
* Научилась работать с VK API — получать токен, делать запросы с пагинацией, обрабатывать ответы, использовать <code>resolveScreenName</code> для преобразования ссылок. | |||
* Освоила очистку текстовых данных: фильтрацию стоп-слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем. | |||
* Создала комплексную аналитику видеоконтента: топ видео, анализ длительности, временную активность, вовлечённость, облако ключевых слов. | |||
* Разработала веб-приложение на Flask с интерактивным интерфейсом и графиками. | |||
* Поняла, как устроены современные сервисы аналитики контента, собирающие данные через открытые API. | |||
== Скриншоты проекта == | |||
[[Файл:Photo 5343610813345896930 w.jpg|800px]] | [[Файл:Photo 5343610813345896930 w.jpg|800px]] | ||
| Строка 145: | Строка 123: | ||
[[Файл:Photo 5343610813345896929 w.jpg|800px]] | [[Файл:Photo 5343610813345896929 w.jpg|800px]] | ||
[[Категория:Работа с API]] | [[Категория:Работа с API]] | ||
Версия от 09:25, 27 марта 2026
VK Video Analytics — Анализ видеоконтента
Автор: Светлана Селиверстова Группа: АДЭУ-221 Дисциплина: Работа с API социальных сетей и облачных сервисов Статус проекта: Выполнен
Цель работы
Разработать инструмент для анализа видеоконтента из открытых источников (VK) с целью выявления актуальных тем, изучения принципов работы API и создания интерактивного веб-интерфейса для визуализации метрик.
Задачи
- Изучить документацию VK API (методы
video.get,users.get,groups.getById,utils.resolveScreenName). - Получить токен доступа для работы с данными.
- Написать скрипт на Python для сбора до 500 видео из сообщества с пагинацией.
- Реализовать фильтрацию «лишних» слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.
- Построить графики: топ-10 видео, анализ длительности, временная активность, облако ключевых слов, вовлечённость.
- Создать веб-интерфейс на Flask для отображения аналитики в браузере (localhost).
- Оформить результаты в виде отчёта.
Технологии
- Языки: Python, JavaScript, HTML/CSS
- Библиотеки Python: requests, pandas, matplotlib, seaborn, wordcloud, flask
- API: VK API (видео, пользователи, группы, разрешение имён)
- Визуализация: Matplotlib, Seaborn, WordCloud
- Веб-фреймворк: Flask
Диаграмма работы приложения «VK Video Analytics»
Структура проекта
vk_video_analytics/ ├── config.py # настройки: токен, ссылка, лимиты ├── vk_api_client.py # работа с VK API (пагинация, resolveScreenName) ├── analyzer.py # аналитика: DataFrame, стоп-слова, тренды ├── visualizer.py # построение графиков (matplotlib, wordcloud) ├── app.py # веб-сервер Flask ├── templates/ │ └── index.html # HTML-шаблон с графиками и трендами ├── results/ # папка с результатами (создаётся автоматически) │ ├── videos_data.csv # все собранные данные │ ├── *.png # графики │ └── *.json # инсайты и тренды └── requirements.txt # зависимости
Ход работы над проектом
Этап 1. Написание Python-скрипта для сбора данных
Установила необходимые библиотеки:
pip install requests pandas matplotlib seaborn wordcloud flask
Написала клиент для VK API с поддержкой:
- Преобразования ссылки в ID через
utils.resolveScreenName - Пагинации для получения до 500 видео
- Сбора информации об авторах (пользователи и группы)
Результат: собран DataFrame с полями: title, views, duration, date, engagement и др.
Этап 2. Реализация фильтрации «лишних» слов
Создала список стоп-слов, включающий:
- Местоимения (твой, мой, его, их, я, ты, мы)
- Глаголы (быть, сказать, делать, хотеть, любить, идти, работать)
- Вводные конструкции (кстати, наверное, конечно, по-моему)
- Частицы, предлоги, союзы (в, на, и, а, но, или)
- Общие слова (самый, хороший, новый, легко, сейчас)
При построении облака слов и поиске трендовых тем эти слова исключаются, остаются только смысловые ключевые слова.
Этап 3. Создание графиков и визуализации
Реализовала модуль визуализации, который строит:
- Топ-10 видео по просмотрам (горизонтальная столбчатая диаграмма)
- Анализ длительности — средние просмотры и распределение по категориям
- Временной анализ — средние просмотры по часам и дням недели
- Облако ключевых слов (только значимые слова после фильтрации)
- Анализ вовлечённости — зависимость вовлечённости от просмотров и по длительности
Этап 4. Создание веб-интерфейса на Flask
Разработала веб-приложение на Flask с маршрутами:
/— главная страница с аналитикой/api/insights— JSON с ключевыми инсайтами/api/trending— JSON с трендовыми темами/api/top_videos— JSON с топ-20 видео/api/chart/<name>— отдача PNG-графиков/refresh— принудительное обновление данных
HTML-шаблон адаптивный, отображает все графики и тренды в удобной сетке.
Этап 5. Тестирование и отладка
Провела тестирование на сообществе https://vk.com/vkvideo. Собрано 500 видео, построены графики. Проверила фильтрацию стоп-слов — в облаке слов и трендах остались только смысловые темы (например, «кино», «сериал», «премьера», «трейлер»).
Выводы
В ходе работы над проектом я:
- Научилась работать с VK API — получать токен, делать запросы с пагинацией, обрабатывать ответы, использовать
resolveScreenNameдля преобразования ссылок. - Освоила очистку текстовых данных: фильтрацию стоп-слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.
- Создала комплексную аналитику видеоконтента: топ видео, анализ длительности, временную активность, вовлечённость, облако ключевых слов.
- Разработала веб-приложение на Flask с интерактивным интерфейсом и графиками.
- Поняла, как устроены современные сервисы аналитики контента, собирающие данные через открытые API.
