<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://digida.mgpu.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sseliverstova</id>
	<title>Поле цифровой дидактики - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="http://digida.mgpu.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sseliverstova"/>
	<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Sseliverstova"/>
	<updated>2026-05-15T19:11:56Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:Sseliverstova&amp;diff=45585</id>
		<title>Обсуждение участника:Sseliverstova</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:Sseliverstova&amp;diff=45585"/>
		<updated>2026-03-27T07:19:58Z</updated>

		<summary type="html">&lt;p&gt;Sseliverstova: /* Корректировка страницы Wiki */ новая тема&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Корректировка страницы Wiki ==&lt;br /&gt;
&lt;br /&gt;
Добавлены коды проекта&lt;/div&gt;</summary>
		<author><name>Sseliverstova</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45584</id>
		<title>Анализ видеоконтента</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45584"/>
		<updated>2026-03-27T07:18:57Z</updated>

		<summary type="html">&lt;p&gt;Sseliverstova: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== VK Video Analytics — Анализ видеоконтента ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Автор:&#039;&#039;&#039; Светлана Селиверстова&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Группа:&#039;&#039;&#039; АДЭУ-221  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дисциплина:&#039;&#039;&#039; Работа с API социальных сетей и облачных сервисов  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Цель работы ==&lt;br /&gt;
Разработать инструмент для анализа видеоконтента из открытых источников (VK) с целью выявления актуальных тем, изучения принципов работы [[API]] и создания интерактивного веб-интерфейса для визуализации метрик.&lt;br /&gt;
&lt;br /&gt;
== Задачи ==&lt;br /&gt;
# Изучить документацию VK API (методы &amp;lt;code&amp;gt;video.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;users.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;groups.getById&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;).&lt;br /&gt;
# Получить токен доступа для работы с данными.&lt;br /&gt;
# Написать скрипт на Python для сбора до 500 видео из сообщества.&lt;br /&gt;
# Реализовать фильтрацию «лишних» слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&lt;br /&gt;
# Построить графики: топ-10 видео, анализ длительности, временная активность, облако ключевых слов, вовлечённость.&lt;br /&gt;
# Создать веб-интерфейс на Flask для отображения аналитики в браузере (localhost).&lt;br /&gt;
# Оформить результаты в виде отчёта.&lt;br /&gt;
&lt;br /&gt;
== Технологии ==&lt;br /&gt;
* &#039;&#039;&#039;Языки:&#039;&#039;&#039; Python, JavaScript, HTML/CSS&lt;br /&gt;
* &#039;&#039;&#039;Библиотеки Python:&#039;&#039;&#039; requests, pandas, matplotlib, seaborn, wordcloud, flask&lt;br /&gt;
* &#039;&#039;&#039;API:&#039;&#039;&#039; VK API (видео, пользователи, группы, разрешение имён)&lt;br /&gt;
* &#039;&#039;&#039;Визуализация:&#039;&#039;&#039; Matplotlib, Seaborn, WordCloud&lt;br /&gt;
* &#039;&#039;&#039;Веб-фреймворк:&#039;&#039;&#039; Flask&lt;br /&gt;
&lt;br /&gt;
== Диаграмма работы приложения «VK Video Analytics» ==&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:&lt;br /&gt;
flowchart TB&lt;br /&gt;
    A[Пользователь вводит ссылку на сообщество] --&amp;gt; B(Flask получает COMMUNITY_INPUT)&lt;br /&gt;
    B --&amp;gt; C{VK API: utils.resolveScreenName}&lt;br /&gt;
    C --&amp;gt;|Сообщество найдено| D[Получен ID сообщества]&lt;br /&gt;
    C --&amp;gt;|Не найдено| E[Ошибка: сообщество не существует]&lt;br /&gt;
    D --&amp;gt; F[VK API: video.get с пагинацией]&lt;br /&gt;
    F --&amp;gt; G{Видео получены?}&lt;br /&gt;
    G --&amp;gt;|Нет| H[Ошибка: нет видео]&lt;br /&gt;
    G --&amp;gt;|Да| I[Сбор информации об авторах&amp;lt;br&amp;gt;users.get / groups.getById]&lt;br /&gt;
    I --&amp;gt; J[Создание DataFrame pandas&amp;lt;br&amp;gt;расчёт метрик: просмотры, вовлечённость]&lt;br /&gt;
    J --&amp;gt; K[Очистка текста названий]&lt;br /&gt;
    K --&amp;gt; L[Фильтрация стоп-слов&amp;lt;br&amp;gt;местоимения, глаголы, вводные]&lt;br /&gt;
    L --&amp;gt; M[Анализ и построение графиков]&lt;br /&gt;
    M --&amp;gt; N[Сохранение результатов&amp;lt;br&amp;gt;CSV, PNG, JSON]&lt;br /&gt;
    N --&amp;gt; O[Flask рендерит HTML-страницу]&lt;br /&gt;
    O --&amp;gt; P[Браузер отображает аналитику&amp;lt;br&amp;gt;графики + трендовые темы]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Структура проекта ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vk_video_analytics/&lt;br /&gt;
├── config.py                 # настройки: токен, ссылка, лимиты&lt;br /&gt;
├── vk_api_client.py          # работа с VK API (пагинация, resolveScreenName)&lt;br /&gt;
├── analyzer.py               # аналитика: DataFrame, стоп-слова, тренды&lt;br /&gt;
├── visualizer.py             # построение графиков (matplotlib, wordcloud)&lt;br /&gt;
├── app.py                    # веб-сервер Flask&lt;br /&gt;
├── templates/&lt;br /&gt;
│   └── index.html            # HTML-шаблон с графиками и трендами&lt;br /&gt;
├── results/                  # папка с результатами (создаётся автоматически)&lt;br /&gt;
│   ├── videos_data.csv       # все собранные данные&lt;br /&gt;
│   ├── *.png                 # графики&lt;br /&gt;
│   └── *.json                # инсайты и тренды&lt;br /&gt;
└── requirements.txt          # зависимости&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ход работы над проектом ==&lt;br /&gt;
&lt;br /&gt;
=== Этап 1. Написание Python-скрипта для сбора данных ===&lt;br /&gt;
Установила необходимые библиотеки:&lt;br /&gt;
&amp;lt;pre&amp;gt;pip install requests pandas matplotlib seaborn wordcloud flask&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Написала клиент для VK API с поддержкой:&lt;br /&gt;
* Преобразования ссылки в ID через &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;&lt;br /&gt;
* Пагинации для получения до 500 видео&lt;br /&gt;
* Сбора информации об авторах (пользователи и группы)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Результат:&#039;&#039;&#039; собран DataFrame с полями: &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;views&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;duration&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;engagement&amp;lt;/code&amp;gt; и др.&lt;br /&gt;
&lt;br /&gt;
=== Этап 2. Реализация фильтрации «лишних» слов ===&lt;br /&gt;
Создала список стоп-слов, включающий:&lt;br /&gt;
* Местоимения (твой, мой, его, их, я, ты, мы)&lt;br /&gt;
* Глаголы (быть, сказать, делать, хотеть, любить, идти, работать)&lt;br /&gt;
* Вводные конструкции (кстати, наверное, конечно, по-моему)&lt;br /&gt;
* Частицы, предлоги, союзы (в, на, и, а, но, или)&lt;br /&gt;
* Общие слова (самый, хороший, новый, легко, сейчас)&lt;br /&gt;
&lt;br /&gt;
При построении облака слов и поиске трендовых тем эти слова исключаются, остаются только смысловые ключевые слова.&lt;br /&gt;
&lt;br /&gt;
=== Этап 3. Создание графиков и визуализации ===&lt;br /&gt;
Реализовала модуль визуализации, который строит:&lt;br /&gt;
* &#039;&#039;&#039;Топ-10 видео по просмотрам&#039;&#039;&#039; (горизонтальная столбчатая диаграмма)&lt;br /&gt;
* &#039;&#039;&#039;Анализ длительности&#039;&#039;&#039; — средние просмотры и распределение по категориям&lt;br /&gt;
* &#039;&#039;&#039;Временной анализ&#039;&#039;&#039; — средние просмотры по часам и дням недели&lt;br /&gt;
* &#039;&#039;&#039;Облако ключевых слов&#039;&#039;&#039; (только значимые слова после фильтрации)&lt;br /&gt;
* &#039;&#039;&#039;Анализ вовлечённости&#039;&#039;&#039; — зависимость вовлечённости от просмотров и по длительности&lt;br /&gt;
&lt;br /&gt;
=== Этап 4. Создание веб-интерфейса на Flask ===&lt;br /&gt;
Разработала веб-приложение на Flask с маршрутами:&lt;br /&gt;
* &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; — главная страница с аналитикой&lt;br /&gt;
* &amp;lt;code&amp;gt;/api/insights&amp;lt;/code&amp;gt; — JSON с ключевыми инсайтами&lt;br /&gt;
* &amp;lt;code&amp;gt;/api/trending&amp;lt;/code&amp;gt; — JSON с трендовыми темами&lt;br /&gt;
* &amp;lt;code&amp;gt;/api/top_videos&amp;lt;/code&amp;gt; — JSON с топ-20 видео&lt;br /&gt;
* &amp;lt;code&amp;gt;/api/chart/&amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; — отдача PNG-графиков&lt;br /&gt;
* &amp;lt;code&amp;gt;/refresh&amp;lt;/code&amp;gt; — принудительное обновление данных&lt;br /&gt;
&lt;br /&gt;
HTML-шаблон адаптивный, отображает все графики и тренды в удобной сетке.&lt;br /&gt;
&lt;br /&gt;
=== Этап 5. Тестирование и отладка ===&lt;br /&gt;
Сервис доступен по адресу http://localhost:5000/&lt;br /&gt;
Провела тестирование на сообществе &amp;lt;code&amp;gt;https://vk.com/vkvideo&amp;lt;/code&amp;gt;. Собрано до 500 видео, построены графики. Проверила фильтрацию стоп-слов — в облаке слов и трендах остались только смысловые темы (например, «кино», «сериал», «премьера», «трейлер»).&lt;br /&gt;
&lt;br /&gt;
== Выводы ==&lt;br /&gt;
В ходе работы над проектом я:&lt;br /&gt;
* Научилась работать с VK API — получать токен, делать запросы с пагинацией, обрабатывать ответы, использовать &amp;lt;code&amp;gt;resolveScreenName&amp;lt;/code&amp;gt; для преобразования ссылок.&lt;br /&gt;
* Освоила очистку текстовых данных: фильтрацию стоп-слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&lt;br /&gt;
* Создала комплексную аналитику видеоконтента: топ видео, анализ длительности, временную активность, вовлечённость, облако ключевых слов.&lt;br /&gt;
* Разработала веб-приложение на Flask с интерактивным интерфейсом и графиками.&lt;br /&gt;
* Поняла, как устроены современные сервисы аналитики контента, собирающие данные через открытые API.&lt;br /&gt;
&lt;br /&gt;
== Интерфейс проекта ==&lt;br /&gt;
[[Файл:Photo 5343610813345896930 w.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Photo 5343610813345896931 w.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Photo 5343610813345896929 w.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
== Код проекта ==&lt;br /&gt;
&lt;br /&gt;
=== config.py ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# config.py - настройки проекта&lt;br /&gt;
VK_TOKEN = &amp;quot;your_token_here&amp;quot;&lt;br /&gt;
COMMUNITY_INPUT = &amp;quot;https://vk.com/vkvideo&amp;quot;&lt;br /&gt;
VIDEOS_LIMIT = 500&lt;br /&gt;
RESULTS_DIR = &amp;quot;results&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== app.py ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from flask import Flask, render_template, jsonify, send_file&lt;br /&gt;
import os&lt;br /&gt;
import json&lt;br /&gt;
from datetime import datetime&lt;br /&gt;
from config import VK_TOKEN, COMMUNITY_INPUT, VIDEOS_LIMIT, RESULTS_DIR&lt;br /&gt;
from vk_api_client import VKAPIClient&lt;br /&gt;
from analyzer import VideoAnalyzer&lt;br /&gt;
from visualizer import VideoVisualizer&lt;br /&gt;
&lt;br /&gt;
app = Flask(__name__)&lt;br /&gt;
&lt;br /&gt;
analysis_results = None&lt;br /&gt;
analyzer_instance = None&lt;br /&gt;
community_id = None&lt;br /&gt;
&lt;br /&gt;
def get_community_id():&lt;br /&gt;
    global community_id&lt;br /&gt;
    if community_id is not None:&lt;br /&gt;
        return community_id&lt;br /&gt;
    client = VKAPIClient()&lt;br /&gt;
    inp = COMMUNITY_INPUT.strip()&lt;br /&gt;
    if inp.lstrip(&#039;-&#039;).isdigit():&lt;br /&gt;
        community_id = int(inp)&lt;br /&gt;
        return community_id&lt;br /&gt;
    resolved = client.resolve_screen_name(inp)&lt;br /&gt;
    if resolved and resolved.get(&#039;type&#039;) == &#039;group&#039;:&lt;br /&gt;
        community_id = -resolved[&#039;object_id&#039;]&lt;br /&gt;
        return community_id&lt;br /&gt;
    return None&lt;br /&gt;
&lt;br /&gt;
def run_analysis():&lt;br /&gt;
    global analysis_results, analyzer_instance&lt;br /&gt;
    print(&amp;quot;📊 Запуск анализа...&amp;quot;)&lt;br /&gt;
    client = VKAPIClient()&lt;br /&gt;
    cid = get_community_id()&lt;br /&gt;
    if not cid:&lt;br /&gt;
        print(&amp;quot;❌ Сообщество не найдено&amp;quot;)&lt;br /&gt;
        return None&lt;br /&gt;
&lt;br /&gt;
    print(f&amp;quot;📹 Получение видео из сообщества {cid} (макс. {VIDEOS_LIMIT})...&amp;quot;)&lt;br /&gt;
    videos = client.get_community_videos(cid, VIDEOS_LIMIT)&lt;br /&gt;
    if not videos:&lt;br /&gt;
        print(&amp;quot;❌ Видео не получены&amp;quot;)&lt;br /&gt;
        return None&lt;br /&gt;
&lt;br /&gt;
    author_ids = list(set(abs(v[&#039;owner_id&#039;]) for v in videos))&lt;br /&gt;
    user_ids = [uid for uid in author_ids if uid &amp;gt; 0]&lt;br /&gt;
    group_ids = [uid for uid in author_ids if uid &amp;lt; 0]&lt;br /&gt;
&lt;br /&gt;
    authors_data = {}&lt;br /&gt;
    if user_ids:&lt;br /&gt;
        authors_data.update(client.get_user_info(user_ids))&lt;br /&gt;
    if group_ids:&lt;br /&gt;
        authors_data.update(client.get_group_info(group_ids))&lt;br /&gt;
&lt;br /&gt;
    analyzer = VideoAnalyzer(videos, authors_data)&lt;br /&gt;
    analyzer_instance = analyzer&lt;br /&gt;
&lt;br /&gt;
    os.makedirs(RESULTS_DIR, exist_ok=True)&lt;br /&gt;
    analyzer.df.to_csv(f&amp;quot;{RESULTS_DIR}/videos_data.csv&amp;quot;, index=False, encoding=&#039;utf-8-sig&#039;)&lt;br /&gt;
&lt;br /&gt;
    vis = VideoVisualizer(analyzer, RESULTS_DIR)&lt;br /&gt;
    vis.create_full_report()&lt;br /&gt;
&lt;br /&gt;
    insights = analyzer.get_insights()&lt;br /&gt;
    trending = analyzer.get_trending_topics(20)&lt;br /&gt;
&lt;br /&gt;
    with open(f&amp;quot;{RESULTS_DIR}/insights.json&amp;quot;, &#039;w&#039;, encoding=&#039;utf-8&#039;) as f:&lt;br /&gt;
        json.dump(insights, f, ensure_ascii=False, indent=2, default=str)&lt;br /&gt;
    with open(f&amp;quot;{RESULTS_DIR}/trending_topics.json&amp;quot;, &#039;w&#039;, encoding=&#039;utf-8&#039;) as f:&lt;br /&gt;
        json.dump(trending, f, ensure_ascii=False, indent=2)&lt;br /&gt;
&lt;br /&gt;
    analysis_results = {&lt;br /&gt;
        &#039;insights&#039;: insights,&lt;br /&gt;
        &#039;trending&#039;: trending,&lt;br /&gt;
        &#039;videos_count&#039;: len(videos),&lt;br /&gt;
        &#039;analyzed_at&#039;: datetime.now().strftime(&amp;quot;%Y-%m-%d %H:%M:%S&amp;quot;),&lt;br /&gt;
        &#039;community_input&#039;: COMMUNITY_INPUT&lt;br /&gt;
    }&lt;br /&gt;
    print(&amp;quot;✅ Анализ завершён&amp;quot;)&lt;br /&gt;
    return analysis_results&lt;br /&gt;
&lt;br /&gt;
@app.route(&#039;/&#039;)&lt;br /&gt;
def index():&lt;br /&gt;
    global analysis_results&lt;br /&gt;
    if analysis_results is None:&lt;br /&gt;
        analysis_results = run_analysis()&lt;br /&gt;
    if analysis_results is None:&lt;br /&gt;
        return &amp;quot;Ошибка: проверьте токен и ссылку на сообщество&amp;quot;, 500&lt;br /&gt;
    return render_template(&#039;index.html&#039;, results=analysis_results)&lt;br /&gt;
&lt;br /&gt;
@app.route(&#039;/api/insights&#039;)&lt;br /&gt;
def api_insights():&lt;br /&gt;
    global analysis_results&lt;br /&gt;
    if analysis_results is None:&lt;br /&gt;
        analysis_results = run_analysis()&lt;br /&gt;
    return jsonify(analysis_results.get(&#039;insights&#039;, {}))&lt;br /&gt;
&lt;br /&gt;
@app.route(&#039;/api/trending&#039;)&lt;br /&gt;
def api_trending():&lt;br /&gt;
    global analysis_results&lt;br /&gt;
    if analysis_results is None:&lt;br /&gt;
        analysis_results = run_analysis()&lt;br /&gt;
    return jsonify(analysis_results.get(&#039;trending&#039;, []))&lt;br /&gt;
&lt;br /&gt;
@app.route(&#039;/api/top_videos&#039;)&lt;br /&gt;
def api_top_videos():&lt;br /&gt;
    global analyzer_instance&lt;br /&gt;
    if analyzer_instance is None:&lt;br /&gt;
        run_analysis()&lt;br /&gt;
    top = analyzer_instance.get_top_videos(20)&lt;br /&gt;
    return jsonify(top.to_dict(&#039;records&#039;))&lt;br /&gt;
&lt;br /&gt;
@app.route(&#039;/api/chart/&amp;lt;name&amp;gt;&#039;)&lt;br /&gt;
def get_chart(name):&lt;br /&gt;
    chart_map = {&lt;br /&gt;
        &#039;views&#039;: &#039;views_distribution.png&#039;,&lt;br /&gt;
        &#039;duration&#039;: &#039;duration_analysis.png&#039;,&lt;br /&gt;
        &#039;temporal&#039;: &#039;temporal_analysis.png&#039;,&lt;br /&gt;
        &#039;trending&#039;: &#039;trending_topics.png&#039;,&lt;br /&gt;
        &#039;engagement&#039;: &#039;engagement_analysis.png&#039;&lt;br /&gt;
    }&lt;br /&gt;
    if name in chart_map:&lt;br /&gt;
        path = os.path.join(RESULTS_DIR, chart_map[name])&lt;br /&gt;
        if os.path.exists(path):&lt;br /&gt;
            return send_file(path, mimetype=&#039;image/png&#039;)&lt;br /&gt;
    return &amp;quot;Not found&amp;quot;, 404&lt;br /&gt;
&lt;br /&gt;
@app.route(&#039;/refresh&#039;)&lt;br /&gt;
def refresh():&lt;br /&gt;
    global analysis_results, analyzer_instance&lt;br /&gt;
    analysis_results = None&lt;br /&gt;
    analyzer_instance = None&lt;br /&gt;
    run_analysis()&lt;br /&gt;
    return &amp;quot;OK&amp;quot;, 200&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    print(&amp;quot;=&amp;quot;*60)&lt;br /&gt;
    print(&amp;quot;🎬 VK Video Analytics&amp;quot;)&lt;br /&gt;
    print(f&amp;quot;Ссылка на сообщество: {COMMUNITY_INPUT}&amp;quot;)&lt;br /&gt;
    print(&amp;quot;Сервер: http://localhost:5000&amp;quot;)&lt;br /&gt;
    print(&amp;quot;=&amp;quot;*60)&lt;br /&gt;
    app.run(debug=True, host=&#039;0.0.0.0&#039;, port=5000)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== analyzer.py ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import pandas as pd&lt;br /&gt;
import numpy as np&lt;br /&gt;
from datetime import datetime&lt;br /&gt;
from collections import Counter&lt;br /&gt;
import re&lt;br /&gt;
from typing import List, Dict&lt;br /&gt;
&lt;br /&gt;
class VideoAnalyzer:&lt;br /&gt;
    # Полный обновлённый список стоп-слов&lt;br /&gt;
    STOP_WORDS = {&lt;br /&gt;
        # ========== 1. Притяжательные и личные местоимения ==========&lt;br /&gt;
        &#039;твой&#039;, &#039;твоя&#039;, &#039;твоё&#039;, &#039;твои&#039;, &#039;мой&#039;, &#039;моя&#039;, &#039;моё&#039;, &#039;мои&#039;, &#039;наш&#039;, &#039;наша&#039;, &#039;наше&#039;, &#039;наши&#039;,&lt;br /&gt;
        &#039;ваш&#039;, &#039;ваша&#039;, &#039;ваше&#039;, &#039;ваши&#039;, &#039;его&#039;, &#039;её&#039;, &#039;их&#039;, &#039;свой&#039;, &#039;своя&#039;, &#039;своё&#039;, &#039;свои&#039;, &#039;я&#039;, &#039;ты&#039;,&lt;br /&gt;
        &#039;мы&#039;, &#039;вы&#039;, &#039;он&#039;, &#039;она&#039;, &#039;оно&#039;, &#039;они&#039;,&lt;br /&gt;
        &lt;br /&gt;
        # ========== 2. Глаголы (основные формы) ==========&lt;br /&gt;
        # Бытовые и вспомогательные&lt;br /&gt;
        &#039;быть&#039;, &#039;мочь&#039;, &#039;сказать&#039;, &#039;говорить&#039;, &#039;знать&#039;, &#039;делать&#039;, &#039;хотеть&#039;, &#039;любить&#039;, &#039;становиться&#039;,&lt;br /&gt;
        &#039;являться&#039;, &#039;принимать&#039;, &#039;спрашивать&#039;, &#039;думать&#039;, &#039;полагать&#039;, &#039;надеяться&#039;, &#039;понимать&#039;, &#039;видеть&#039;,&lt;br /&gt;
        &#039;слышать&#039;, &#039;помнить&#039;, &#039;считать&#039;, &#039;выглядеть&#039;, &#039;происходить&#039;, &#039;случаться&#039;, &#039;казаться&#039;, &#039;получаться&#039;,&lt;br /&gt;
        &#039;получиться&#039;, &#039;идти&#039;, &#039;приходить&#039;, &#039;уходить&#039;, &#039;ехать&#039;, &#039;приезжать&#039;, &#039;работать&#039;, &#039;жить&#039;, &#039;есть&#039;,&lt;br /&gt;
        &#039;иметь&#039;, &#039;давать&#039;, &#039;брать&#039;, &#039;получать&#039;, &#039;начинать&#039;, &#039;заканчивать&#039;, &#039;продолжать&#039;, &#039;пробовать&#039;,&lt;br /&gt;
        &#039;пытаться&#039;, &#039;стараться&#039;, &#039;успевать&#039;, &#039;успеть&#039;, &#039;ждать&#039;, &#039;смотреть&#039;, &#039;слушать&#039;,&lt;br /&gt;
        # Дополнительные частые глаголы&lt;br /&gt;
        &#039;рассказывать&#039;, &#039;показывать&#039;, &#039;объяснять&#039;, &#039;учить&#039;, &#039;учиться&#039;, &#039;играть&#039;, &#039;писать&#039;, &#039;читать&#039;,&lt;br /&gt;
        &#039;пить&#039;, &#039;спать&#039;, &#039;вставать&#039;, &#039;ложиться&#039;, &#039;сидеть&#039;, &#039;стоять&#039;, &#039;лежать&#039;, &#039;бегать&#039;, &#039;ходить&#039;,&lt;br /&gt;
        &#039;плавать&#039;, &#039;лететь&#039;, &#039;падать&#039;, &#039;садиться&#039;,&lt;br /&gt;
        # Глаголы в повелительном наклонении&lt;br /&gt;
        &#039;послушай&#039;, &#039;послушайте&#039;, &#039;посмотри&#039;, &#039;посмотрите&#039;, &#039;представь&#039;, &#039;вообрази&#039;, &#039;поверь&#039;, &#039;пойми&#039;,&lt;br /&gt;
        &#039;скажи&#039;, &#039;сделай&#039;, &#039;попробуй&#039;, &#039;давай&#039;, &#039;давайте&#039;,&lt;br /&gt;
        &lt;br /&gt;
        # ========== 3. Вводные слова и конструкции ==========&lt;br /&gt;
        # Уверенность / неуверенность&lt;br /&gt;
        &#039;конечно&#039;, &#039;разумеется&#039;, &#039;несомненно&#039;, &#039;безусловно&#039;, &#039;бесспорно&#039;, &#039;действительно&#039;, &#039;наверное&#039;,&lt;br /&gt;
        &#039;вероятно&#039;, &#039;возможно&#039;, &#039;может&#039;, &#039;должно&#039;, &#039;кажется&#039;, &#039;пожалуй&#039;, &#039;видимо&#039;, &#039;очевидно&#039;, &#039;правда&#039;,&lt;br /&gt;
        &#039;само&#039;, &#039;собой&#039;, &#039;без&#039;, &#039;сомнения&#039;, &#039;в самом деле&#039;,&lt;br /&gt;
        # Связь мыслей&lt;br /&gt;
        &#039;кстати&#039;, &#039;кстати сказать&#039;, &#039;к слову&#039;, &#039;итак&#039;, &#039;следовательно&#039;, &#039;значит&#039;, &#039;таким образом&#039;,&lt;br /&gt;
        &#039;во-первых&#039;, &#039;во-вторых&#039;, &#039;в-третьих&#039;, &#039;наконец&#039;, &#039;далее&#039;, &#039;впрочем&#039;, &#039;напротив&#039;, &#039;наоборот&#039;,&lt;br /&gt;
        &#039;в общем&#039;, &#039;в частности&#039;, &#039;кроме того&#039;, &#039;между прочим&#039;, &#039;главное&#039;, &#039;стало быть&#039;, &#039;например&#039;,&lt;br /&gt;
        &#039;к примеру&#039;,&lt;br /&gt;
        # Эмоции и оценка&lt;br /&gt;
        &#039;к счастью&#039;, &#039;к сожалению&#039;, &#039;к удивлению&#039;, &#039;к несчастью&#039;, &#039;к радости&#039;, &#039;на беду&#039;, &#039;к ужасу&#039;,&lt;br /&gt;
        &#039;к стыду&#039;, &#039;чего доброго&#039;, &#039;не дай бог&#039;, &#039;слава богу&#039;, &#039;на радость&#039;, &#039;к моему стыду&#039;,&lt;br /&gt;
        # Источник сообщения&lt;br /&gt;
        &#039;по-моему&#039;, &#039;по-твоему&#039;, &#039;по-нашему&#039;, &#039;по-вашему&#039;, &#039;говорят&#039;, &#039;по словам&#039;, &#039;по мнению&#039;,&lt;br /&gt;
        &#039;по слухам&#039;, &#039;помнится&#039;, &#039;дескать&#039;, &#039;мол&#039;, &#039;как известно&#039;, &#039;слышно&#039;, &#039;сообщают&#039;,&lt;br /&gt;
        # Оформление мыслей&lt;br /&gt;
        &#039;словом&#039;, &#039;одним словом&#039;, &#039;иными словами&#039;, &#039;так сказать&#039;, &#039;собственно говоря&#039;, &#039;вообще говоря&#039;,&lt;br /&gt;
        &#039;вернее сказать&#039;, &#039;мягко выражаясь&#039;, &#039;видите ли&#039;, &#039;знаешь ли&#039;, &#039;понимаешь ли&#039;, &#039;поверьте&#039;,&lt;br /&gt;
        &#039;вообразите&#039;, &#039;представьте&#039;, &#039;согласитесь&#039;, &#039;пожалуйста&#039;,&lt;br /&gt;
        # Другие вводные&lt;br /&gt;
        &#039;в конце концов&#039;, &#039;в общем-то&#039;, &#039;на самом деле&#039;, &#039;в то же время&#039;, &#039;между тем&#039;, &#039;фактически&#039;,&lt;br /&gt;
        &#039;буквально&#039;, &#039;обычно&#039;, &#039;как правило&#039;, &#039;по обыкновению&#039;, &#039;бывало&#039;, &#039;однажды&#039;,&lt;br /&gt;
        &lt;br /&gt;
        # ========== 4. Частицы, предлоги, союзы, прочая «вода» ==========&lt;br /&gt;
        # Частицы и усилители&lt;br /&gt;
        &#039;как&#039;, &#039;что&#039;, &#039;это&#039;, &#039;вот&#039;, &#039;же&#039;, &#039;ли&#039;, &#039;не&#039;, &#039;ни&#039;, &#039;бы&#039;, &#039;ведь&#039;, &#039;уже&#039;, &#039;еще&#039;, &#039;только&#039;,&lt;br /&gt;
        &#039;просто&#039;, &#039;прямо&#039;, &#039;именно&#039;, &#039;вовсе&#039;, &#039;совсем&#039;, &#039;очень&#039;, &#039;довольно&#039;, &#039;почти&#039;, &#039;примерно&#039;,&lt;br /&gt;
        &#039;точно&#039;, &#039;реально&#039;, &#039;вообще&#039;, &#039;здесь&#039;, &#039;тут&#039;, &#039;там&#039;, &#039;этот&#039;, &#039;эта&#039;, &#039;эти&#039;, &#039;тот&#039;, &#039;та&#039;, &#039;то&#039;,&lt;br /&gt;
        &#039;те&#039;, &#039;такой&#039;, &#039;такая&#039;, &#039;такое&#039;, &#039;такие&#039;, &#039;один&#039;, &#039;одна&#039;, &#039;одно&#039;, &#039;одни&#039;, &#039;какой&#039;, &#039;какая&#039;,&lt;br /&gt;
        &#039;какое&#039;, &#039;какие&#039;, &#039;который&#039;, &#039;которая&#039;, &#039;которое&#039;, &#039;которые&#039;, &#039;весь&#039;, &#039;вся&#039;, &#039;всё&#039;, &#039;все&#039;,&lt;br /&gt;
        &#039;любой&#039;, &#039;любая&#039;, &#039;любое&#039;, &#039;любые&#039;, &#039;некоторый&#039;, &#039;некоторая&#039;, &#039;некоторое&#039;, &#039;некоторые&#039;,&lt;br /&gt;
        &#039;самый&#039;, &#039;самая&#039;, &#039;самое&#039;, &#039;самые&#039;, &#039;лучший&#039;, &#039;лучшая&#039;, &#039;лучшее&#039;, &#039;лучшие&#039;, &#039;хороший&#039;,&lt;br /&gt;
        &#039;хорошая&#039;, &#039;хорошее&#039;, &#039;хорошие&#039;, &#039;новый&#039;, &#039;новая&#039;, &#039;новое&#039;, &#039;новые&#039;, &#039;легко&#039;, &#039;быстро&#039;,&lt;br /&gt;
        &#039;бесплатно&#039;, &#039;сейчас&#039;, &#039;сегодня&#039;, &#039;завтра&#039;, &#039;всегда&#039;, &#039;никогда&#039;, &#039;можно&#039;, &#039;нужно&#039;, &#039;должен&#039;,&lt;br /&gt;
        &#039;должна&#039;, &#039;должны&#039;,&lt;br /&gt;
        # Предлоги и союзы&lt;br /&gt;
        &#039;в&#039;, &#039;во&#039;, &#039;на&#039;, &#039;по&#039;, &#039;из&#039;, &#039;от&#039;, &#039;до&#039;, &#039;для&#039;, &#039;за&#039;, &#039;под&#039;, &#039;над&#039;, &#039;перед&#039;, &#039;при&#039;, &#039;о&#039;, &#039;об&#039;,&lt;br /&gt;
        &#039;про&#039;, &#039;через&#039;, &#039;у&#039;, &#039;с&#039;, &#039;со&#039;, &#039;без&#039;, &#039;и&#039;, &#039;а&#039;, &#039;но&#039;, &#039;или&#039;, &#039;если&#039;, &#039;когда&#039;, &#039;то&#039;, &#039;тогда&#039;,&lt;br /&gt;
        &#039;чтобы&#039;, &#039;потому&#039;, &#039;что&#039;, &#039;так&#039;, &#039;как&#039;, &#039;потому что&#039;, &#039;так как&#039;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    def __init__(self, videos_data: List[Dict], authors_data: Dict):&lt;br /&gt;
        self.videos_data = videos_data&lt;br /&gt;
        self.authors_data = authors_data&lt;br /&gt;
        self.df = self._create_dataframe()&lt;br /&gt;
&lt;br /&gt;
    def _create_dataframe(self) -&amp;gt; pd.DataFrame:&lt;br /&gt;
        rows = []&lt;br /&gt;
        for video in self.videos_data:&lt;br /&gt;
            title = video.get(&#039;title&#039;, &#039;&#039;)&lt;br /&gt;
            hashtags = [w.lower() for w in title.split() if w.startswith(&#039;#&#039;)]&lt;br /&gt;
            owner_id = video.get(&#039;owner_id&#039;, 0)&lt;br /&gt;
            author_id = abs(owner_id)&lt;br /&gt;
            author_info = self.authors_data.get(author_id, {})&lt;br /&gt;
            likes = video.get(&#039;likes&#039;, {})&lt;br /&gt;
            likes_count = likes.get(&#039;count&#039;, 0) if isinstance(likes, dict) else int(likes) if likes else 0&lt;br /&gt;
            reposts = video.get(&#039;reposts&#039;, {})&lt;br /&gt;
            reposts_count = reposts.get(&#039;count&#039;, 0) if isinstance(reposts, dict) else int(reposts) if reposts else 0&lt;br /&gt;
&lt;br /&gt;
            row = {&lt;br /&gt;
                &#039;video_id&#039;: video.get(&#039;id&#039;),&lt;br /&gt;
                &#039;title&#039;: title,&lt;br /&gt;
                &#039;title_clean&#039;: re.sub(r&#039;[#\W]+&#039;, &#039; &#039;, title).strip().lower(),&lt;br /&gt;
                &#039;hashtags&#039;: hashtags,&lt;br /&gt;
                &#039;duration&#039;: video.get(&#039;duration&#039;, 0),&lt;br /&gt;
                &#039;views&#039;: video.get(&#039;views&#039;, 0),&lt;br /&gt;
                &#039;comments&#039;: video.get(&#039;comments&#039;, 0),&lt;br /&gt;
                &#039;likes&#039;: likes_count,&lt;br /&gt;
                &#039;reposts&#039;: reposts_count,&lt;br /&gt;
                &#039;date&#039;: datetime.fromtimestamp(video.get(&#039;date&#039;, 0)),&lt;br /&gt;
                &#039;owner_id&#039;: owner_id,&lt;br /&gt;
                &#039;author_id&#039;: author_id,&lt;br /&gt;
                &#039;author_name&#039;: author_info.get(&#039;name&#039;, author_info.get(&#039;first_name&#039;, str(author_id))),&lt;br /&gt;
                &#039;author_followers&#039;: author_info.get(&#039;followers_count&#039;, author_info.get(&#039;members_count&#039;, 0)),&lt;br /&gt;
            }&lt;br /&gt;
            row[&#039;engagement&#039;] = row[&#039;likes&#039;] + row[&#039;comments&#039;] + row[&#039;reposts&#039;]&lt;br /&gt;
            row[&#039;engagement_rate&#039;] = row[&#039;engagement&#039;] / max(row[&#039;views&#039;], 1)&lt;br /&gt;
            rows.append(row)&lt;br /&gt;
&lt;br /&gt;
        df = pd.DataFrame(rows)&lt;br /&gt;
        df[&#039;duration_category&#039;] = pd.cut(&lt;br /&gt;
            df[&#039;duration&#039;],&lt;br /&gt;
            bins=[0, 60, 300, 1800, float(&#039;inf&#039;)],&lt;br /&gt;
            labels=[&#039;short (0-1 min)&#039;, &#039;medium (1-5 min)&#039;, &#039;long (5-30 min)&#039;, &#039;very long (&amp;gt;30 min)&#039;]&lt;br /&gt;
        )&lt;br /&gt;
        return df&lt;br /&gt;
&lt;br /&gt;
    def analyze_by_duration(self) -&amp;gt; pd.DataFrame:&lt;br /&gt;
        return self.df.groupby(&#039;duration_category&#039;).agg(&lt;br /&gt;
            avg_views=(&#039;views&#039;, &#039;mean&#039;),&lt;br /&gt;
            videos_count=(&#039;video_id&#039;, &#039;count&#039;)&lt;br /&gt;
        )&lt;br /&gt;
&lt;br /&gt;
    def get_trending_topics(self, limit=10) -&amp;gt; List[Dict]:&lt;br /&gt;
        # Собираем слова из названий (очищенных от хэштегов и пунктуации)&lt;br /&gt;
        words = []&lt;br /&gt;
        for title in self.df[&#039;title_clean&#039;]:&lt;br /&gt;
            for w in title.split():&lt;br /&gt;
                # удаляем стоп-слова и короткие слова&lt;br /&gt;
                if len(w) &amp;gt; 3 and w not in self.STOP_WORDS:&lt;br /&gt;
                    words.append(w)&lt;br /&gt;
        word_count = Counter(words)&lt;br /&gt;
&lt;br /&gt;
        trending = []&lt;br /&gt;
        for word, cnt in word_count.most_common(50):&lt;br /&gt;
            videos = self.df[self.df[&#039;title_clean&#039;].str.contains(word, na=False)]&lt;br /&gt;
            if len(videos) &amp;gt; 2:&lt;br /&gt;
                avg_views = videos[&#039;views&#039;].mean()&lt;br /&gt;
                # трендовый балл = 30% частоты + 70% нормализованных просмотров&lt;br /&gt;
                score = (cnt * 0.3) + (avg_views / self.df[&#039;views&#039;].max() * 0.7)&lt;br /&gt;
                trending.append({&lt;br /&gt;
                    &#039;topic&#039;: word,&lt;br /&gt;
                    &#039;type&#039;: &#039;word&#039;,&lt;br /&gt;
                    &#039;frequency&#039;: cnt,&lt;br /&gt;
                    &#039;avg_views&#039;: int(avg_views),&lt;br /&gt;
                    &#039;trending_score&#039;: round(score, 3),&lt;br /&gt;
                    &#039;videos_with_topic&#039;: len(videos)&lt;br /&gt;
                })&lt;br /&gt;
&lt;br /&gt;
        trending.sort(key=lambda x: x[&#039;trending_score&#039;], reverse=True)&lt;br /&gt;
        return trending[:limit]&lt;br /&gt;
&lt;br /&gt;
    def get_temporal_analysis(self) -&amp;gt; Dict:&lt;br /&gt;
        df = self.df.copy()&lt;br /&gt;
        df[&#039;hour&#039;] = df[&#039;date&#039;].dt.hour&lt;br /&gt;
        df[&#039;weekday&#039;] = df[&#039;date&#039;].dt.day_name()&lt;br /&gt;
        hourly = df.groupby(&#039;hour&#039;)[&#039;views&#039;].mean().round(0)&lt;br /&gt;
        weekday_order = [&#039;Monday&#039;, &#039;Tuesday&#039;, &#039;Wednesday&#039;, &#039;Thursday&#039;, &#039;Friday&#039;, &#039;Saturday&#039;, &#039;Sunday&#039;]&lt;br /&gt;
        weekday = df.groupby(&#039;weekday&#039;)[&#039;views&#039;].mean().reindex(weekday_order).round(0)&lt;br /&gt;
        return {&#039;hourly&#039;: hourly, &#039;weekday&#039;: weekday}&lt;br /&gt;
&lt;br /&gt;
    def get_top_videos(self, limit=10) -&amp;gt; pd.DataFrame:&lt;br /&gt;
        return self.df.nlargest(limit, &#039;views&#039;)[[&#039;title&#039;, &#039;views&#039;, &#039;engagement&#039;, &#039;duration_category&#039;, &#039;date&#039;]]&lt;br /&gt;
&lt;br /&gt;
    def get_insights(self) -&amp;gt; Dict:&lt;br /&gt;
        insights = {&lt;br /&gt;
            &#039;total_videos&#039;: len(self.df),&lt;br /&gt;
            &#039;total_views&#039;: int(self.df[&#039;views&#039;].sum()),&lt;br /&gt;
            &#039;avg_views&#039;: int(self.df[&#039;views&#039;].mean()),&lt;br /&gt;
            &#039;max_views&#039;: int(self.df[&#039;views&#039;].max()),&lt;br /&gt;
            &#039;best_duration&#039;: self.df.groupby(&#039;duration_category&#039;)[&#039;views&#039;].mean().idxmax(),&lt;br /&gt;
            &#039;best_hour&#039;: int(self.df.groupby(self.df[&#039;date&#039;].dt.hour)[&#039;views&#039;].mean().idxmax()),&lt;br /&gt;
            &#039;best_weekday&#039;: self.df.groupby(self.df[&#039;date&#039;].dt.day_name())[&#039;views&#039;].mean().idxmax(),&lt;br /&gt;
        }&lt;br /&gt;
        return insights&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:Работа с API]]&lt;/div&gt;</summary>
		<author><name>Sseliverstova</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45568</id>
		<title>Анализ видеоконтента</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45568"/>
		<updated>2026-03-27T06:53:56Z</updated>

		<summary type="html">&lt;p&gt;Sseliverstova: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== VK Video Analytics — Анализ видеоконтента ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Автор:&#039;&#039;&#039; Светлана Селиверстова&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Группа:&#039;&#039;&#039; АДЭУ-221  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дисциплина:&#039;&#039;&#039; Работа с API социальных сетей и облачных сервисов  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Цель работы ==&lt;br /&gt;
Разработать инструмент для анализа видеоконтента из открытых источников (VK) с целью выявления актуальных тем, изучения принципов работы [[API]] и создания интерактивного веб-интерфейса для визуализации метрик.&lt;br /&gt;
&lt;br /&gt;
== Задачи ==&lt;br /&gt;
# Изучить документацию VK API (методы &amp;lt;code&amp;gt;video.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;users.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;groups.getById&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;).&lt;br /&gt;
# Получить токен доступа для работы с данными.&lt;br /&gt;
# Написать скрипт на Python для сбора до 500 видео из сообщества.&lt;br /&gt;
# Реализовать фильтрацию «лишних» слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&lt;br /&gt;
# Построить графики: топ-10 видео, анализ длительности, временная активность, облако ключевых слов, вовлечённость.&lt;br /&gt;
# Создать веб-интерфейс на Flask для отображения аналитики в браузере (localhost).&lt;br /&gt;
# Оформить результаты в виде отчёта.&lt;br /&gt;
&lt;br /&gt;
== Технологии ==&lt;br /&gt;
* &#039;&#039;&#039;Языки:&#039;&#039;&#039; Python, JavaScript, HTML/CSS&lt;br /&gt;
* &#039;&#039;&#039;Библиотеки Python:&#039;&#039;&#039; requests, pandas, matplotlib, seaborn, wordcloud, flask&lt;br /&gt;
* &#039;&#039;&#039;API:&#039;&#039;&#039; VK API (видео, пользователи, группы, разрешение имён)&lt;br /&gt;
* &#039;&#039;&#039;Визуализация:&#039;&#039;&#039; Matplotlib, Seaborn, WordCloud&lt;br /&gt;
* &#039;&#039;&#039;Веб-фреймворк:&#039;&#039;&#039; Flask&lt;br /&gt;
&lt;br /&gt;
== Диаграмма работы приложения «VK Video Analytics» ==&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:&lt;br /&gt;
flowchart TB&lt;br /&gt;
    A[Пользователь вводит ссылку на сообщество] --&amp;gt; B(Flask получает COMMUNITY_INPUT)&lt;br /&gt;
    B --&amp;gt; C{VK API: utils.resolveScreenName}&lt;br /&gt;
    C --&amp;gt;|Сообщество найдено| D[Получен ID сообщества]&lt;br /&gt;
    C --&amp;gt;|Не найдено| E[Ошибка: сообщество не существует]&lt;br /&gt;
    D --&amp;gt; F[VK API: video.get с пагинацией]&lt;br /&gt;
    F --&amp;gt; G{Видео получены?}&lt;br /&gt;
    G --&amp;gt;|Нет| H[Ошибка: нет видео]&lt;br /&gt;
    G --&amp;gt;|Да| I[Сбор информации об авторах&amp;lt;br&amp;gt;users.get / groups.getById]&lt;br /&gt;
    I --&amp;gt; J[Создание DataFrame pandas&amp;lt;br&amp;gt;расчёт метрик: просмотры, вовлечённость]&lt;br /&gt;
    J --&amp;gt; K[Очистка текста названий]&lt;br /&gt;
    K --&amp;gt; L[Фильтрация стоп-слов&amp;lt;br&amp;gt;местоимения, глаголы, вводные]&lt;br /&gt;
    L --&amp;gt; M[Анализ и построение графиков]&lt;br /&gt;
    M --&amp;gt; N[Сохранение результатов&amp;lt;br&amp;gt;CSV, PNG, JSON]&lt;br /&gt;
    N --&amp;gt; O[Flask рендерит HTML-страницу]&lt;br /&gt;
    O --&amp;gt; P[Браузер отображает аналитику&amp;lt;br&amp;gt;графики + трендовые темы]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Структура проекта ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vk_video_analytics/&lt;br /&gt;
├── config.py                 # настройки: токен, ссылка, лимиты&lt;br /&gt;
├── vk_api_client.py          # работа с VK API (пагинация, resolveScreenName)&lt;br /&gt;
├── analyzer.py               # аналитика: DataFrame, стоп-слова, тренды&lt;br /&gt;
├── visualizer.py             # построение графиков (matplotlib, wordcloud)&lt;br /&gt;
├── app.py                    # веб-сервер Flask&lt;br /&gt;
├── templates/&lt;br /&gt;
│   └── index.html            # HTML-шаблон с графиками и трендами&lt;br /&gt;
├── results/                  # папка с результатами (создаётся автоматически)&lt;br /&gt;
│   ├── videos_data.csv       # все собранные данные&lt;br /&gt;
│   ├── *.png                 # графики&lt;br /&gt;
│   └── *.json                # инсайты и тренды&lt;br /&gt;
└── requirements.txt          # зависимости&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ход работы над проектом ==&lt;br /&gt;
&lt;br /&gt;
=== Этап 1. Написание Python-скрипта для сбора данных ===&lt;br /&gt;
Установила необходимые библиотеки:&lt;br /&gt;
&amp;lt;pre&amp;gt;pip install requests pandas matplotlib seaborn wordcloud flask&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Написала клиент для VK API с поддержкой:&lt;br /&gt;
* Преобразования ссылки в ID через &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;&lt;br /&gt;
* Пагинации для получения до 500 видео&lt;br /&gt;
* Сбора информации об авторах (пользователи и группы)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Результат:&#039;&#039;&#039; собран DataFrame с полями: &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;views&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;duration&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;engagement&amp;lt;/code&amp;gt; и др.&lt;br /&gt;
&lt;br /&gt;
=== Этап 2. Реализация фильтрации «лишних» слов ===&lt;br /&gt;
Создала список стоп-слов, включающий:&lt;br /&gt;
* Местоимения (твой, мой, его, их, я, ты, мы)&lt;br /&gt;
* Глаголы (быть, сказать, делать, хотеть, любить, идти, работать)&lt;br /&gt;
* Вводные конструкции (кстати, наверное, конечно, по-моему)&lt;br /&gt;
* Частицы, предлоги, союзы (в, на, и, а, но, или)&lt;br /&gt;
* Общие слова (самый, хороший, новый, легко, сейчас)&lt;br /&gt;
&lt;br /&gt;
При построении облака слов и поиске трендовых тем эти слова исключаются, остаются только смысловые ключевые слова.&lt;br /&gt;
&lt;br /&gt;
=== Этап 3. Создание графиков и визуализации ===&lt;br /&gt;
Реализовала модуль визуализации, который строит:&lt;br /&gt;
* &#039;&#039;&#039;Топ-10 видео по просмотрам&#039;&#039;&#039; (горизонтальная столбчатая диаграмма)&lt;br /&gt;
* &#039;&#039;&#039;Анализ длительности&#039;&#039;&#039; — средние просмотры и распределение по категориям&lt;br /&gt;
* &#039;&#039;&#039;Временной анализ&#039;&#039;&#039; — средние просмотры по часам и дням недели&lt;br /&gt;
* &#039;&#039;&#039;Облако ключевых слов&#039;&#039;&#039; (только значимые слова после фильтрации)&lt;br /&gt;
* &#039;&#039;&#039;Анализ вовлечённости&#039;&#039;&#039; — зависимость вовлечённости от просмотров и по длительности&lt;br /&gt;
&lt;br /&gt;
=== Этап 4. Создание веб-интерфейса на Flask ===&lt;br /&gt;
Разработала веб-приложение на Flask с маршрутами:&lt;br /&gt;
* &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; — главная страница с аналитикой&lt;br /&gt;
* &amp;lt;code&amp;gt;/api/insights&amp;lt;/code&amp;gt; — JSON с ключевыми инсайтами&lt;br /&gt;
* &amp;lt;code&amp;gt;/api/trending&amp;lt;/code&amp;gt; — JSON с трендовыми темами&lt;br /&gt;
* &amp;lt;code&amp;gt;/api/top_videos&amp;lt;/code&amp;gt; — JSON с топ-20 видео&lt;br /&gt;
* &amp;lt;code&amp;gt;/api/chart/&amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; — отдача PNG-графиков&lt;br /&gt;
* &amp;lt;code&amp;gt;/refresh&amp;lt;/code&amp;gt; — принудительное обновление данных&lt;br /&gt;
&lt;br /&gt;
HTML-шаблон адаптивный, отображает все графики и тренды в удобной сетке.&lt;br /&gt;
&lt;br /&gt;
=== Этап 5. Тестирование и отладка ===&lt;br /&gt;
Сервис доступен по адресу http://localhost:5000/&lt;br /&gt;
Провела тестирование на сообществе &amp;lt;code&amp;gt;https://vk.com/vkvideo&amp;lt;/code&amp;gt;. Собрано до 500 видео, построены графики. Проверила фильтрацию стоп-слов — в облаке слов и трендах остались только смысловые темы (например, «кино», «сериал», «премьера», «трейлер»).&lt;br /&gt;
&lt;br /&gt;
== Выводы ==&lt;br /&gt;
В ходе работы над проектом я:&lt;br /&gt;
* Научилась работать с VK API — получать токен, делать запросы с пагинацией, обрабатывать ответы, использовать &amp;lt;code&amp;gt;resolveScreenName&amp;lt;/code&amp;gt; для преобразования ссылок.&lt;br /&gt;
* Освоила очистку текстовых данных: фильтрацию стоп-слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&lt;br /&gt;
* Создала комплексную аналитику видеоконтента: топ видео, анализ длительности, временную активность, вовлечённость, облако ключевых слов.&lt;br /&gt;
* Разработала веб-приложение на Flask с интерактивным интерфейсом и графиками.&lt;br /&gt;
* Поняла, как устроены современные сервисы аналитики контента, собирающие данные через открытые API.&lt;br /&gt;
&lt;br /&gt;
== Интерфейс проекта ==&lt;br /&gt;
[[Файл:Photo 5343610813345896930 w.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Photo 5343610813345896931 w.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Photo 5343610813345896929 w.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Работа с API]]&lt;/div&gt;</summary>
		<author><name>Sseliverstova</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45552</id>
		<title>Анализ видеоконтента</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45552"/>
		<updated>2026-03-27T06:34:20Z</updated>

		<summary type="html">&lt;p&gt;Sseliverstova: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== VK Video Analytics — Анализ видеоконтента ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Автор:&#039;&#039;&#039; Светлана Селиверстова&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Группа:&#039;&#039;&#039; АДЭУ-221  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дисциплина:&#039;&#039;&#039; Работа с API социальных сетей и облачных сервисов  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Цель работы ==&lt;br /&gt;
Разработать инструмент для анализа видеоконтента из открытых источников (VK) с целью выявления актуальных тем, изучения принципов работы [[API]] и создания интерактивного веб-интерфейса для визуализации метрик.&lt;br /&gt;
&lt;br /&gt;
== Задачи ==&lt;br /&gt;
# Изучить документацию VK API (методы &amp;lt;code&amp;gt;video.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;users.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;groups.getById&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;).&lt;br /&gt;
# Получить токен доступа для работы с данными.&lt;br /&gt;
# Написать скрипт на Python для сбора до 500 видео из сообщества.&lt;br /&gt;
# Реализовать фильтрацию «лишних» слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&lt;br /&gt;
# Построить графики: топ-10 видео, анализ длительности, временная активность, облако ключевых слов, вовлечённость.&lt;br /&gt;
# Создать веб-интерфейс на Flask для отображения аналитики в браузере (localhost).&lt;br /&gt;
# Оформить результаты в виде отчёта.&lt;br /&gt;
&lt;br /&gt;
== Технологии ==&lt;br /&gt;
* &#039;&#039;&#039;Языки:&#039;&#039;&#039; Python, JavaScript, HTML/CSS&lt;br /&gt;
* &#039;&#039;&#039;Библиотеки Python:&#039;&#039;&#039; requests, pandas, matplotlib, seaborn, wordcloud, flask&lt;br /&gt;
* &#039;&#039;&#039;API:&#039;&#039;&#039; VK API (видео, пользователи, группы, разрешение имён)&lt;br /&gt;
* &#039;&#039;&#039;Визуализация:&#039;&#039;&#039; Matplotlib, Seaborn, WordCloud&lt;br /&gt;
* &#039;&#039;&#039;Веб-фреймворк:&#039;&#039;&#039; Flask&lt;br /&gt;
&lt;br /&gt;
== Диаграмма работы приложения «VK Video Analytics» ==&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:&lt;br /&gt;
flowchart TB&lt;br /&gt;
    A[Пользователь вводит ссылку на сообщество] --&amp;gt; B(Flask получает COMMUNITY_INPUT)&lt;br /&gt;
    B --&amp;gt; C{VK API: utils.resolveScreenName}&lt;br /&gt;
    C --&amp;gt;|Сообщество найдено| D[Получен ID сообщества]&lt;br /&gt;
    C --&amp;gt;|Не найдено| E[Ошибка: сообщество не существует]&lt;br /&gt;
    D --&amp;gt; F[VK API: video.get с пагинацией]&lt;br /&gt;
    F --&amp;gt; G{Видео получены?}&lt;br /&gt;
    G --&amp;gt;|Нет| H[Ошибка: нет видео]&lt;br /&gt;
    G --&amp;gt;|Да| I[Сбор информации об авторах&amp;lt;br&amp;gt;users.get / groups.getById]&lt;br /&gt;
    I --&amp;gt; J[Создание DataFrame pandas&amp;lt;br&amp;gt;расчёт метрик: просмотры, вовлечённость]&lt;br /&gt;
    J --&amp;gt; K[Очистка текста названий]&lt;br /&gt;
    K --&amp;gt; L[Фильтрация стоп-слов&amp;lt;br&amp;gt;местоимения, глаголы, вводные]&lt;br /&gt;
    L --&amp;gt; M[Анализ и построение графиков]&lt;br /&gt;
    M --&amp;gt; N[Сохранение результатов&amp;lt;br&amp;gt;CSV, PNG, JSON]&lt;br /&gt;
    N --&amp;gt; O[Flask рендерит HTML-страницу]&lt;br /&gt;
    O --&amp;gt; P[Браузер отображает аналитику&amp;lt;br&amp;gt;графики + трендовые темы]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Структура проекта ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vk_video_analytics/&lt;br /&gt;
├── config.py                 # настройки: токен, ссылка, лимиты&lt;br /&gt;
├── vk_api_client.py          # работа с VK API (пагинация, resolveScreenName)&lt;br /&gt;
├── analyzer.py               # аналитика: DataFrame, стоп-слова, тренды&lt;br /&gt;
├── visualizer.py             # построение графиков (matplotlib, wordcloud)&lt;br /&gt;
├── app.py                    # веб-сервер Flask&lt;br /&gt;
├── templates/&lt;br /&gt;
│   └── index.html            # HTML-шаблон с графиками и трендами&lt;br /&gt;
├── results/                  # папка с результатами (создаётся автоматически)&lt;br /&gt;
│   ├── videos_data.csv       # все собранные данные&lt;br /&gt;
│   ├── *.png                 # графики&lt;br /&gt;
│   └── *.json                # инсайты и тренды&lt;br /&gt;
└── requirements.txt          # зависимости&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ход работы над проектом ==&lt;br /&gt;
&lt;br /&gt;
=== Этап 1. Написание Python-скрипта для сбора данных ===&lt;br /&gt;
Установила необходимые библиотеки:&lt;br /&gt;
&amp;lt;pre&amp;gt;pip install requests pandas matplotlib seaborn wordcloud flask&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Написала клиент для VK API с поддержкой:&lt;br /&gt;
* Преобразования ссылки в ID через &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;&lt;br /&gt;
* Пагинации для получения до 500 видео&lt;br /&gt;
* Сбора информации об авторах (пользователи и группы)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Результат:&#039;&#039;&#039; собран DataFrame с полями: &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;views&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;duration&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;engagement&amp;lt;/code&amp;gt; и др.&lt;br /&gt;
&lt;br /&gt;
=== Этап 2. Реализация фильтрации «лишних» слов ===&lt;br /&gt;
Создала список стоп-слов, включающий:&lt;br /&gt;
* Местоимения (твой, мой, его, их, я, ты, мы)&lt;br /&gt;
* Глаголы (быть, сказать, делать, хотеть, любить, идти, работать)&lt;br /&gt;
* Вводные конструкции (кстати, наверное, конечно, по-моему)&lt;br /&gt;
* Частицы, предлоги, союзы (в, на, и, а, но, или)&lt;br /&gt;
* Общие слова (самый, хороший, новый, легко, сейчас)&lt;br /&gt;
&lt;br /&gt;
При построении облака слов и поиске трендовых тем эти слова исключаются, остаются только смысловые ключевые слова.&lt;br /&gt;
&lt;br /&gt;
=== Этап 3. Создание графиков и визуализации ===&lt;br /&gt;
Реализовала модуль визуализации, который строит:&lt;br /&gt;
* &#039;&#039;&#039;Топ-10 видео по просмотрам&#039;&#039;&#039; (горизонтальная столбчатая диаграмма)&lt;br /&gt;
* &#039;&#039;&#039;Анализ длительности&#039;&#039;&#039; — средние просмотры и распределение по категориям&lt;br /&gt;
* &#039;&#039;&#039;Временной анализ&#039;&#039;&#039; — средние просмотры по часам и дням недели&lt;br /&gt;
* &#039;&#039;&#039;Облако ключевых слов&#039;&#039;&#039; (только значимые слова после фильтрации)&lt;br /&gt;
* &#039;&#039;&#039;Анализ вовлечённости&#039;&#039;&#039; — зависимость вовлечённости от просмотров и по длительности&lt;br /&gt;
&lt;br /&gt;
=== Этап 4. Создание веб-интерфейса на Flask ===&lt;br /&gt;
Разработала веб-приложение на Flask с маршрутами:&lt;br /&gt;
* &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; — главная страница с аналитикой&lt;br /&gt;
* &amp;lt;code&amp;gt;/api/insights&amp;lt;/code&amp;gt; — JSON с ключевыми инсайтами&lt;br /&gt;
* &amp;lt;code&amp;gt;/api/trending&amp;lt;/code&amp;gt; — JSON с трендовыми темами&lt;br /&gt;
* &amp;lt;code&amp;gt;/api/top_videos&amp;lt;/code&amp;gt; — JSON с топ-20 видео&lt;br /&gt;
* &amp;lt;code&amp;gt;/api/chart/&amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; — отдача PNG-графиков&lt;br /&gt;
* &amp;lt;code&amp;gt;/refresh&amp;lt;/code&amp;gt; — принудительное обновление данных&lt;br /&gt;
&lt;br /&gt;
HTML-шаблон адаптивный, отображает все графики и тренды в удобной сетке.&lt;br /&gt;
&lt;br /&gt;
=== Этап 5. Тестирование и отладка ===&lt;br /&gt;
Сервис доступен по адресу http://localhost:5000/&lt;br /&gt;
Провела тестирование на сообществе &amp;lt;code&amp;gt;https://vk.com/vkvideo&amp;lt;/code&amp;gt;. Собрано до 500 видео, построены графики. Проверила фильтрацию стоп-слов — в облаке слов и трендах остались только смысловые темы (например, «кино», «сериал», «премьера», «трейлер»).&lt;br /&gt;
&lt;br /&gt;
== Выводы ==&lt;br /&gt;
В ходе работы над проектом я:&lt;br /&gt;
* Научилась работать с VK API — получать токен, делать запросы с пагинацией, обрабатывать ответы, использовать &amp;lt;code&amp;gt;resolveScreenName&amp;lt;/code&amp;gt; для преобразования ссылок.&lt;br /&gt;
* Освоила очистку текстовых данных: фильтрацию стоп-слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&lt;br /&gt;
* Создала комплексную аналитику видеоконтента: топ видео, анализ длительности, временную активность, вовлечённость, облако ключевых слов.&lt;br /&gt;
* Разработала веб-приложение на Flask с интерактивным интерфейсом и графиками.&lt;br /&gt;
* Поняла, как устроены современные сервисы аналитики контента, собирающие данные через открытые API.&lt;br /&gt;
&lt;br /&gt;
== Скриншоты проекта ==&lt;br /&gt;
[[Файл:Photo 5343610813345896930 w.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Photo 5343610813345896931 w.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Photo 5343610813345896929 w.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Работа с API]]&lt;/div&gt;</summary>
		<author><name>Sseliverstova</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45544</id>
		<title>Анализ видеоконтента</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45544"/>
		<updated>2026-03-27T06:30:01Z</updated>

		<summary type="html">&lt;p&gt;Sseliverstova: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== VK Video Analytics — Анализ видеоконтента ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Автор:&#039;&#039;&#039; Светлана Селиверстова&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Группа:&#039;&#039;&#039; АДЭУ-221  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дисциплина:&#039;&#039;&#039; Работа с API социальных сетей и облачных сервисов  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Цель работы ==&lt;br /&gt;
Разработать инструмент для анализа видеоконтента из открытых источников (VK) с целью выявления актуальных тем, изучения принципов работы [[API]] и создания интерактивного веб-интерфейса для визуализации метрик.&lt;br /&gt;
&lt;br /&gt;
== Задачи ==&lt;br /&gt;
# Изучить документацию VK API (методы &amp;lt;code&amp;gt;video.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;users.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;groups.getById&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;).&lt;br /&gt;
# Получить токен доступа для работы с данными.&lt;br /&gt;
# Написать скрипт на Python для сбора до 500 видео из сообщества.&lt;br /&gt;
# Реализовать фильтрацию «лишних» слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&lt;br /&gt;
# Построить графики: топ-10 видео, анализ длительности, временная активность, облако ключевых слов, вовлечённость.&lt;br /&gt;
# Создать веб-интерфейс на Flask для отображения аналитики в браузере (localhost).&lt;br /&gt;
# Оформить результаты в виде отчёта.&lt;br /&gt;
&lt;br /&gt;
== Технологии ==&lt;br /&gt;
* &#039;&#039;&#039;Языки:&#039;&#039;&#039; Python, JavaScript, HTML/CSS&lt;br /&gt;
* &#039;&#039;&#039;Библиотеки Python:&#039;&#039;&#039; requests, pandas, matplotlib, seaborn, wordcloud, flask&lt;br /&gt;
* &#039;&#039;&#039;API:&#039;&#039;&#039; VK API (видео, пользователи, группы, разрешение имён)&lt;br /&gt;
* &#039;&#039;&#039;Визуализация:&#039;&#039;&#039; Matplotlib, Seaborn, WordCloud&lt;br /&gt;
* &#039;&#039;&#039;Веб-фреймворк:&#039;&#039;&#039; Flask&lt;br /&gt;
&lt;br /&gt;
== Диаграмма работы приложения «VK Video Analytics» ==&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:&lt;br /&gt;
flowchart TB&lt;br /&gt;
    A[Пользователь вводит ссылку на сообщество] --&amp;gt; B(Flask получает COMMUNITY_INPUT)&lt;br /&gt;
    B --&amp;gt; C{VK API: utils.resolveScreenName}&lt;br /&gt;
    C --&amp;gt;|Сообщество найдено| D[Получен ID сообщества]&lt;br /&gt;
    C --&amp;gt;|Не найдено| E[Ошибка: сообщество не существует]&lt;br /&gt;
    D --&amp;gt; F[VK API: video.get с пагинацией]&lt;br /&gt;
    F --&amp;gt; G{Видео получены?}&lt;br /&gt;
    G --&amp;gt;|Нет| H[Ошибка: нет видео]&lt;br /&gt;
    G --&amp;gt;|Да| I[Сбор информации об авторах&amp;lt;br&amp;gt;users.get / groups.getById]&lt;br /&gt;
    I --&amp;gt; J[Создание DataFrame pandas&amp;lt;br&amp;gt;расчёт метрик: просмотры, вовлечённость]&lt;br /&gt;
    J --&amp;gt; K[Очистка текста названий]&lt;br /&gt;
    K --&amp;gt; L[Фильтрация стоп-слов&amp;lt;br&amp;gt;местоимения, глаголы, вводные]&lt;br /&gt;
    L --&amp;gt; M[Анализ и построение графиков]&lt;br /&gt;
    M --&amp;gt; N[Сохранение результатов&amp;lt;br&amp;gt;CSV, PNG, JSON]&lt;br /&gt;
    N --&amp;gt; O[Flask рендерит HTML-страницу]&lt;br /&gt;
    O --&amp;gt; P[Браузер отображает аналитику&amp;lt;br&amp;gt;графики + трендовые темы]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Структура проекта ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vk_video_analytics/&lt;br /&gt;
├── config.py                 # настройки: токен, ссылка, лимиты&lt;br /&gt;
├── vk_api_client.py          # работа с VK API (пагинация, resolveScreenName)&lt;br /&gt;
├── analyzer.py               # аналитика: DataFrame, стоп-слова, тренды&lt;br /&gt;
├── visualizer.py             # построение графиков (matplotlib, wordcloud)&lt;br /&gt;
├── app.py                    # веб-сервер Flask&lt;br /&gt;
├── templates/&lt;br /&gt;
│   └── index.html            # HTML-шаблон с графиками и трендами&lt;br /&gt;
├── results/                  # папка с результатами (создаётся автоматически)&lt;br /&gt;
│   ├── videos_data.csv       # все собранные данные&lt;br /&gt;
│   ├── *.png                 # графики&lt;br /&gt;
│   └── *.json                # инсайты и тренды&lt;br /&gt;
└── requirements.txt          # зависимости&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ход работы над проектом ==&lt;br /&gt;
&lt;br /&gt;
=== Этап 1. Написание Python-скрипта для сбора данных ===&lt;br /&gt;
Установила необходимые библиотеки:&lt;br /&gt;
&amp;lt;pre&amp;gt;pip install requests pandas matplotlib seaborn wordcloud flask&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Написала клиент для VK API с поддержкой:&lt;br /&gt;
* Преобразования ссылки в ID через &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;&lt;br /&gt;
* Пагинации для получения до 500 видео&lt;br /&gt;
* Сбора информации об авторах (пользователи и группы)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Результат:&#039;&#039;&#039; собран DataFrame с полями: &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;views&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;duration&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;engagement&amp;lt;/code&amp;gt; и др.&lt;br /&gt;
&lt;br /&gt;
=== Этап 2. Реализация фильтрации «лишних» слов ===&lt;br /&gt;
Создала список стоп-слов, включающий:&lt;br /&gt;
* Местоимения (твой, мой, его, их, я, ты, мы)&lt;br /&gt;
* Глаголы (быть, сказать, делать, хотеть, любить, идти, работать)&lt;br /&gt;
* Вводные конструкции (кстати, наверное, конечно, по-моему)&lt;br /&gt;
* Частицы, предлоги, союзы (в, на, и, а, но, или)&lt;br /&gt;
* Общие слова (самый, хороший, новый, легко, сейчас)&lt;br /&gt;
&lt;br /&gt;
При построении облака слов и поиске трендовых тем эти слова исключаются, остаются только смысловые ключевые слова.&lt;br /&gt;
&lt;br /&gt;
=== Этап 3. Создание графиков и визуализации ===&lt;br /&gt;
Реализовала модуль визуализации, который строит:&lt;br /&gt;
* &#039;&#039;&#039;Топ-10 видео по просмотрам&#039;&#039;&#039; (горизонтальная столбчатая диаграмма)&lt;br /&gt;
* &#039;&#039;&#039;Анализ длительности&#039;&#039;&#039; — средние просмотры и распределение по категориям&lt;br /&gt;
* &#039;&#039;&#039;Временной анализ&#039;&#039;&#039; — средние просмотры по часам и дням недели&lt;br /&gt;
* &#039;&#039;&#039;Облако ключевых слов&#039;&#039;&#039; (только значимые слова после фильтрации)&lt;br /&gt;
* &#039;&#039;&#039;Анализ вовлечённости&#039;&#039;&#039; — зависимость вовлечённости от просмотров и по длительности&lt;br /&gt;
&lt;br /&gt;
=== Этап 4. Создание веб-интерфейса на Flask ===&lt;br /&gt;
Разработала веб-приложение на Flask с маршрутами:&lt;br /&gt;
* &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; — главная страница с аналитикой&lt;br /&gt;
* &amp;lt;code&amp;gt;/api/insights&amp;lt;/code&amp;gt; — JSON с ключевыми инсайтами&lt;br /&gt;
* &amp;lt;code&amp;gt;/api/trending&amp;lt;/code&amp;gt; — JSON с трендовыми темами&lt;br /&gt;
* &amp;lt;code&amp;gt;/api/top_videos&amp;lt;/code&amp;gt; — JSON с топ-20 видео&lt;br /&gt;
* &amp;lt;code&amp;gt;/api/chart/&amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; — отдача PNG-графиков&lt;br /&gt;
* &amp;lt;code&amp;gt;/refresh&amp;lt;/code&amp;gt; — принудительное обновление данных&lt;br /&gt;
&lt;br /&gt;
HTML-шаблон адаптивный, отображает все графики и тренды в удобной сетке.&lt;br /&gt;
&lt;br /&gt;
=== Этап 5. Тестирование и отладка ===&lt;br /&gt;
Провела тестирование на сообществе &amp;lt;code&amp;gt;https://vk.com/vkvideo&amp;lt;/code&amp;gt;. Собрано 500 видео, построены графики. Проверила фильтрацию стоп-слов — в облаке слов и трендах остались только смысловые темы (например, «кино», «сериал», «премьера», «трейлер»).&lt;br /&gt;
&lt;br /&gt;
== Выводы ==&lt;br /&gt;
В ходе работы над проектом я:&lt;br /&gt;
* Научилась работать с VK API — получать токен, делать запросы с пагинацией, обрабатывать ответы, использовать &amp;lt;code&amp;gt;resolveScreenName&amp;lt;/code&amp;gt; для преобразования ссылок.&lt;br /&gt;
* Освоила очистку текстовых данных: фильтрацию стоп-слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&lt;br /&gt;
* Создала комплексную аналитику видеоконтента: топ видео, анализ длительности, временную активность, вовлечённость, облако ключевых слов.&lt;br /&gt;
* Разработала веб-приложение на Flask с интерактивным интерфейсом и графиками.&lt;br /&gt;
* Поняла, как устроены современные сервисы аналитики контента, собирающие данные через открытые API.&lt;br /&gt;
&lt;br /&gt;
== Скриншоты проекта ==&lt;br /&gt;
[[Файл:Photo 5343610813345896930 w.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Photo 5343610813345896931 w.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Photo 5343610813345896929 w.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Работа с API]]&lt;/div&gt;</summary>
		<author><name>Sseliverstova</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45541</id>
		<title>Анализ видеоконтента</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45541"/>
		<updated>2026-03-27T06:28:05Z</updated>

		<summary type="html">&lt;p&gt;Sseliverstova: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== VK Video Analytics — Анализ видеоконтента ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Автор:&#039;&#039;&#039; Светлана Селиверстова&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Группа:&#039;&#039;&#039; АДЭУ-221  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дисциплина:&#039;&#039;&#039; Работа с API социальных сетей и облачных сервисов  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Цель работы ==&lt;br /&gt;
Разработать инструмент для анализа видеоконтента из открытых источников (VK) с целью выявления актуальных тем, изучения принципов работы [[API]] и создания интерактивного веб-интерфейса для визуализации метрик.&lt;br /&gt;
&lt;br /&gt;
== Задачи ==&lt;br /&gt;
# Изучить документацию VK API (методы &amp;lt;code&amp;gt;video.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;users.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;groups.getById&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;).&lt;br /&gt;
# Получить токен доступа для работы с данными.&lt;br /&gt;
# Написать скрипт на Python для сбора до 500 видео из сообщества.&lt;br /&gt;
# Реализовать фильтрацию «лишних» слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&lt;br /&gt;
# Построить графики: топ-10 видео, анализ длительности, временная активность, облако ключевых слов, вовлечённость.&lt;br /&gt;
# Создать веб-интерфейс на Flask для отображения аналитики в браузере (localhost).&lt;br /&gt;
# Оформить результаты в виде отчёта.&lt;br /&gt;
&lt;br /&gt;
== Технологии ==&lt;br /&gt;
* &#039;&#039;&#039;Языки:&#039;&#039;&#039; Python, JavaScript, HTML/CSS&lt;br /&gt;
* &#039;&#039;&#039;Библиотеки Python:&#039;&#039;&#039; requests, pandas, matplotlib, seaborn, wordcloud, flask&lt;br /&gt;
* &#039;&#039;&#039;API:&#039;&#039;&#039; VK API (видео, пользователи, группы, разрешение имён)&lt;br /&gt;
* &#039;&#039;&#039;Визуализация:&#039;&#039;&#039; Matplotlib, Seaborn, WordCloud&lt;br /&gt;
* &#039;&#039;&#039;Веб-фреймворк:&#039;&#039;&#039; Flask&lt;br /&gt;
&lt;br /&gt;
== Диаграмма работы приложения «VK Video Analytics» ==&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:&lt;br /&gt;
flowchart TB&lt;br /&gt;
    A[Пользователь вводит ссылку на сообщество] --&amp;gt; B(Flask получает COMMUNITY_INPUT)&lt;br /&gt;
    B --&amp;gt; C{VK API: utils.resolveScreenName}&lt;br /&gt;
    C --&amp;gt;|Сообщество найдено| D[Получен числовой ID сообщества]&lt;br /&gt;
    C --&amp;gt;|Не найдено| E[Ошибка: сообщество не существует]&lt;br /&gt;
    D --&amp;gt; F[VK API: video.get с пагинацией]&lt;br /&gt;
    F --&amp;gt; G{Видео получены?}&lt;br /&gt;
    G --&amp;gt;|Нет| H[Ошибка: нет видео]&lt;br /&gt;
    G --&amp;gt;|Да| I[Сбор информации об авторах&amp;lt;br&amp;gt;users.get / groups.getById]&lt;br /&gt;
    I --&amp;gt; J[Создание DataFrame pandas&amp;lt;br&amp;gt;расчёт метрик: просмотры, вовлечённость]&lt;br /&gt;
    J --&amp;gt; K[Очистка текста названий]&lt;br /&gt;
    K --&amp;gt; L[Фильтрация стоп-слов&amp;lt;br&amp;gt;местоимения, глаголы, вводные]&lt;br /&gt;
    L --&amp;gt; M[Анализ и построение графиков]&lt;br /&gt;
    M --&amp;gt; N[Сохранение результатов&amp;lt;br&amp;gt;CSV, PNG, JSON]&lt;br /&gt;
    N --&amp;gt; O[Flask рендерит HTML-страницу]&lt;br /&gt;
    O --&amp;gt; P[Браузер отображает аналитику&amp;lt;br&amp;gt;графики + трендовые темы]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Структура проекта ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vk_video_analytics/&lt;br /&gt;
├── config.py                 # настройки: токен, ссылка, лимиты&lt;br /&gt;
├── vk_api_client.py          # работа с VK API (пагинация, resolveScreenName)&lt;br /&gt;
├── analyzer.py               # аналитика: DataFrame, стоп-слова, тренды&lt;br /&gt;
├── visualizer.py             # построение графиков (matplotlib, wordcloud)&lt;br /&gt;
├── app.py                    # веб-сервер Flask&lt;br /&gt;
├── templates/&lt;br /&gt;
│   └── index.html            # HTML-шаблон с графиками и трендами&lt;br /&gt;
├── results/                  # папка с результатами (создаётся автоматически)&lt;br /&gt;
│   ├── videos_data.csv       # все собранные данные&lt;br /&gt;
│   ├── *.png                 # графики&lt;br /&gt;
│   └── *.json                # инсайты и тренды&lt;br /&gt;
└── requirements.txt          # зависимости&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ход работы над проектом ==&lt;br /&gt;
&lt;br /&gt;
=== Этап 1. Написание Python-скрипта для сбора данных ===&lt;br /&gt;
Установила необходимые библиотеки:&lt;br /&gt;
&amp;lt;pre&amp;gt;pip install requests pandas matplotlib seaborn wordcloud flask&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Написала клиент для VK API с поддержкой:&lt;br /&gt;
* Преобразования ссылки в ID через &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;&lt;br /&gt;
* Пагинации для получения до 500 видео&lt;br /&gt;
* Сбора информации об авторах (пользователи и группы)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Результат:&#039;&#039;&#039; собран DataFrame с полями: &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;views&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;duration&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;engagement&amp;lt;/code&amp;gt; и др.&lt;br /&gt;
&lt;br /&gt;
=== Этап 2. Реализация фильтрации «лишних» слов ===&lt;br /&gt;
Создала список стоп-слов, включающий:&lt;br /&gt;
* Местоимения (твой, мой, его, их, я, ты, мы)&lt;br /&gt;
* Глаголы (быть, сказать, делать, хотеть, любить, идти, работать)&lt;br /&gt;
* Вводные конструкции (кстати, наверное, конечно, по-моему)&lt;br /&gt;
* Частицы, предлоги, союзы (в, на, и, а, но, или)&lt;br /&gt;
* Общие слова (самый, хороший, новый, легко, сейчас)&lt;br /&gt;
&lt;br /&gt;
При построении облака слов и поиске трендовых тем эти слова исключаются, остаются только смысловые ключевые слова.&lt;br /&gt;
&lt;br /&gt;
=== Этап 3. Создание графиков и визуализации ===&lt;br /&gt;
Реализовала модуль визуализации, который строит:&lt;br /&gt;
* &#039;&#039;&#039;Топ-10 видео по просмотрам&#039;&#039;&#039; (горизонтальная столбчатая диаграмма)&lt;br /&gt;
* &#039;&#039;&#039;Анализ длительности&#039;&#039;&#039; — средние просмотры и распределение по категориям&lt;br /&gt;
* &#039;&#039;&#039;Временной анализ&#039;&#039;&#039; — средние просмотры по часам и дням недели&lt;br /&gt;
* &#039;&#039;&#039;Облако ключевых слов&#039;&#039;&#039; (только значимые слова после фильтрации)&lt;br /&gt;
* &#039;&#039;&#039;Анализ вовлечённости&#039;&#039;&#039; — зависимость вовлечённости от просмотров и по длительности&lt;br /&gt;
&lt;br /&gt;
=== Этап 4. Создание веб-интерфейса на Flask ===&lt;br /&gt;
Разработала веб-приложение на Flask с маршрутами:&lt;br /&gt;
* &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; — главная страница с аналитикой&lt;br /&gt;
* &amp;lt;code&amp;gt;/api/insights&amp;lt;/code&amp;gt; — JSON с ключевыми инсайтами&lt;br /&gt;
* &amp;lt;code&amp;gt;/api/trending&amp;lt;/code&amp;gt; — JSON с трендовыми темами&lt;br /&gt;
* &amp;lt;code&amp;gt;/api/top_videos&amp;lt;/code&amp;gt; — JSON с топ-20 видео&lt;br /&gt;
* &amp;lt;code&amp;gt;/api/chart/&amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; — отдача PNG-графиков&lt;br /&gt;
* &amp;lt;code&amp;gt;/refresh&amp;lt;/code&amp;gt; — принудительное обновление данных&lt;br /&gt;
&lt;br /&gt;
HTML-шаблон адаптивный, отображает все графики и тренды в удобной сетке.&lt;br /&gt;
&lt;br /&gt;
=== Этап 5. Тестирование и отладка ===&lt;br /&gt;
Провела тестирование на сообществе &amp;lt;code&amp;gt;https://vk.com/vkvideo&amp;lt;/code&amp;gt;. Собрано 500 видео, построены графики. Проверила фильтрацию стоп-слов — в облаке слов и трендах остались только смысловые темы (например, «кино», «сериал», «премьера», «трейлер»).&lt;br /&gt;
&lt;br /&gt;
== Выводы ==&lt;br /&gt;
В ходе работы над проектом я:&lt;br /&gt;
* Научилась работать с VK API — получать токен, делать запросы с пагинацией, обрабатывать ответы, использовать &amp;lt;code&amp;gt;resolveScreenName&amp;lt;/code&amp;gt; для преобразования ссылок.&lt;br /&gt;
* Освоила очистку текстовых данных: фильтрацию стоп-слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&lt;br /&gt;
* Создала комплексную аналитику видеоконтента: топ видео, анализ длительности, временную активность, вовлечённость, облако ключевых слов.&lt;br /&gt;
* Разработала веб-приложение на Flask с интерактивным интерфейсом и графиками.&lt;br /&gt;
* Поняла, как устроены современные сервисы аналитики контента, собирающие данные через открытые API.&lt;br /&gt;
&lt;br /&gt;
== Скриншоты проекта ==&lt;br /&gt;
[[Файл:Photo 5343610813345896930 w.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Photo 5343610813345896931 w.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Photo 5343610813345896929 w.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Работа с API]]&lt;/div&gt;</summary>
		<author><name>Sseliverstova</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45539</id>
		<title>Анализ видеоконтента</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45539"/>
		<updated>2026-03-27T06:26:32Z</updated>

		<summary type="html">&lt;p&gt;Sseliverstova: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== VK Video Analytics — Анализ видеоконтента ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Автор:&#039;&#039;&#039; Светлана Селиверстова&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Группа:&#039;&#039;&#039; АДЭУ-221  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Дисциплина:&#039;&#039;&#039; Работа с API социальных сетей и облачных сервисов  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Статус проекта:&#039;&#039;&#039; Выполнен&lt;br /&gt;
&lt;br /&gt;
== Цель работы ==&lt;br /&gt;
Разработать инструмент для анализа видеоконтента из открытых источников (VK) с целью выявления актуальных тем, изучения принципов работы [[API]] и создания интерактивного веб-интерфейса для визуализации метрик.&lt;br /&gt;
&lt;br /&gt;
== Задачи ==&lt;br /&gt;
# Изучить документацию VK API (методы &amp;lt;code&amp;gt;video.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;users.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;groups.getById&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;).&lt;br /&gt;
# Получить токен доступа для работы с данными.&lt;br /&gt;
# Написать скрипт на Python для сбора до 500 видео из сообщества с пагинацией.&lt;br /&gt;
# Реализовать фильтрацию «лишних» слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&lt;br /&gt;
# Построить графики: топ-10 видео, анализ длительности, временная активность, облако ключевых слов, вовлечённость.&lt;br /&gt;
# Создать веб-интерфейс на Flask для отображения аналитики в браузере (localhost).&lt;br /&gt;
# Оформить результаты в виде отчёта.&lt;br /&gt;
&lt;br /&gt;
== Технологии ==&lt;br /&gt;
* &#039;&#039;&#039;Языки:&#039;&#039;&#039; Python, JavaScript, HTML/CSS&lt;br /&gt;
* &#039;&#039;&#039;Библиотеки Python:&#039;&#039;&#039; requests, pandas, matplotlib, seaborn, wordcloud, flask&lt;br /&gt;
* &#039;&#039;&#039;API:&#039;&#039;&#039; VK API (видео, пользователи, группы, разрешение имён)&lt;br /&gt;
* &#039;&#039;&#039;Визуализация:&#039;&#039;&#039; Matplotlib, Seaborn, WordCloud&lt;br /&gt;
* &#039;&#039;&#039;Веб-фреймворк:&#039;&#039;&#039; Flask&lt;br /&gt;
&lt;br /&gt;
== Диаграмма работы приложения «VK Video Analytics» ==&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:&lt;br /&gt;
flowchart TB&lt;br /&gt;
    A[Пользователь вводит ссылку на сообщество] --&amp;gt; B(Flask получает COMMUNITY_INPUT)&lt;br /&gt;
    B --&amp;gt; C{VK API: utils.resolveScreenName}&lt;br /&gt;
    C --&amp;gt;|Сообщество найдено| D[Получен числовой ID сообщества]&lt;br /&gt;
    C --&amp;gt;|Не найдено| E[Ошибка: сообщество не существует]&lt;br /&gt;
    D --&amp;gt; F[VK API: video.get с пагинацией]&lt;br /&gt;
    F --&amp;gt; G{Видео получены?}&lt;br /&gt;
    G --&amp;gt;|Нет| H[Ошибка: нет видео]&lt;br /&gt;
    G --&amp;gt;|Да| I[Сбор информации об авторах&amp;lt;br&amp;gt;users.get / groups.getById]&lt;br /&gt;
    I --&amp;gt; J[Создание DataFrame pandas&amp;lt;br&amp;gt;расчёт метрик: просмотры, вовлечённость]&lt;br /&gt;
    J --&amp;gt; K[Очистка текста названий]&lt;br /&gt;
    K --&amp;gt; L[Фильтрация стоп-слов&amp;lt;br&amp;gt;местоимения, глаголы, вводные]&lt;br /&gt;
    L --&amp;gt; M[Анализ и построение графиков]&lt;br /&gt;
    M --&amp;gt; N[Сохранение результатов&amp;lt;br&amp;gt;CSV, PNG, JSON]&lt;br /&gt;
    N --&amp;gt; O[Flask рендерит HTML-страницу]&lt;br /&gt;
    O --&amp;gt; P[Браузер отображает аналитику&amp;lt;br&amp;gt;графики + трендовые темы]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Структура проекта ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vk_video_analytics/&lt;br /&gt;
├── config.py                 # настройки: токен, ссылка, лимиты&lt;br /&gt;
├── vk_api_client.py          # работа с VK API (пагинация, resolveScreenName)&lt;br /&gt;
├── analyzer.py               # аналитика: DataFrame, стоп-слова, тренды&lt;br /&gt;
├── visualizer.py             # построение графиков (matplotlib, wordcloud)&lt;br /&gt;
├── app.py                    # веб-сервер Flask&lt;br /&gt;
├── templates/&lt;br /&gt;
│   └── index.html            # HTML-шаблон с графиками и трендами&lt;br /&gt;
├── results/                  # папка с результатами (создаётся автоматически)&lt;br /&gt;
│   ├── videos_data.csv       # все собранные данные&lt;br /&gt;
│   ├── *.png                 # графики&lt;br /&gt;
│   └── *.json                # инсайты и тренды&lt;br /&gt;
└── requirements.txt          # зависимости&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ход работы над проектом ==&lt;br /&gt;
&lt;br /&gt;
=== Этап 1. Написание Python-скрипта для сбора данных ===&lt;br /&gt;
Установила необходимые библиотеки:&lt;br /&gt;
&amp;lt;pre&amp;gt;pip install requests pandas matplotlib seaborn wordcloud flask&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Написала клиент для VK API с поддержкой:&lt;br /&gt;
* Преобразования ссылки в ID через &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;&lt;br /&gt;
* Пагинации для получения до 500 видео&lt;br /&gt;
* Сбора информации об авторах (пользователи и группы)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Результат:&#039;&#039;&#039; собран DataFrame с полями: &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;views&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;duration&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;engagement&amp;lt;/code&amp;gt; и др.&lt;br /&gt;
&lt;br /&gt;
=== Этап 2. Реализация фильтрации «лишних» слов ===&lt;br /&gt;
Создала список стоп-слов, включающий:&lt;br /&gt;
* Местоимения (твой, мой, его, их, я, ты, мы)&lt;br /&gt;
* Глаголы (быть, сказать, делать, хотеть, любить, идти, работать)&lt;br /&gt;
* Вводные конструкции (кстати, наверное, конечно, по-моему)&lt;br /&gt;
* Частицы, предлоги, союзы (в, на, и, а, но, или)&lt;br /&gt;
* Общие слова (самый, хороший, новый, легко, сейчас)&lt;br /&gt;
&lt;br /&gt;
При построении облака слов и поиске трендовых тем эти слова исключаются, остаются только смысловые ключевые слова.&lt;br /&gt;
&lt;br /&gt;
=== Этап 3. Создание графиков и визуализации ===&lt;br /&gt;
Реализовала модуль визуализации, который строит:&lt;br /&gt;
* &#039;&#039;&#039;Топ-10 видео по просмотрам&#039;&#039;&#039; (горизонтальная столбчатая диаграмма)&lt;br /&gt;
* &#039;&#039;&#039;Анализ длительности&#039;&#039;&#039; — средние просмотры и распределение по категориям&lt;br /&gt;
* &#039;&#039;&#039;Временной анализ&#039;&#039;&#039; — средние просмотры по часам и дням недели&lt;br /&gt;
* &#039;&#039;&#039;Облако ключевых слов&#039;&#039;&#039; (только значимые слова после фильтрации)&lt;br /&gt;
* &#039;&#039;&#039;Анализ вовлечённости&#039;&#039;&#039; — зависимость вовлечённости от просмотров и по длительности&lt;br /&gt;
&lt;br /&gt;
=== Этап 4. Создание веб-интерфейса на Flask ===&lt;br /&gt;
Разработала веб-приложение на Flask с маршрутами:&lt;br /&gt;
* &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; — главная страница с аналитикой&lt;br /&gt;
* &amp;lt;code&amp;gt;/api/insights&amp;lt;/code&amp;gt; — JSON с ключевыми инсайтами&lt;br /&gt;
* &amp;lt;code&amp;gt;/api/trending&amp;lt;/code&amp;gt; — JSON с трендовыми темами&lt;br /&gt;
* &amp;lt;code&amp;gt;/api/top_videos&amp;lt;/code&amp;gt; — JSON с топ-20 видео&lt;br /&gt;
* &amp;lt;code&amp;gt;/api/chart/&amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; — отдача PNG-графиков&lt;br /&gt;
* &amp;lt;code&amp;gt;/refresh&amp;lt;/code&amp;gt; — принудительное обновление данных&lt;br /&gt;
&lt;br /&gt;
HTML-шаблон адаптивный, отображает все графики и тренды в удобной сетке.&lt;br /&gt;
&lt;br /&gt;
=== Этап 5. Тестирование и отладка ===&lt;br /&gt;
Провела тестирование на сообществе &amp;lt;code&amp;gt;https://vk.com/vkvideo&amp;lt;/code&amp;gt;. Собрано 500 видео, построены графики. Проверила фильтрацию стоп-слов — в облаке слов и трендах остались только смысловые темы (например, «кино», «сериал», «премьера», «трейлер»).&lt;br /&gt;
&lt;br /&gt;
== Выводы ==&lt;br /&gt;
В ходе работы над проектом я:&lt;br /&gt;
* Научилась работать с VK API — получать токен, делать запросы с пагинацией, обрабатывать ответы, использовать &amp;lt;code&amp;gt;resolveScreenName&amp;lt;/code&amp;gt; для преобразования ссылок.&lt;br /&gt;
* Освоила очистку текстовых данных: фильтрацию стоп-слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&lt;br /&gt;
* Создала комплексную аналитику видеоконтента: топ видео, анализ длительности, временную активность, вовлечённость, облако ключевых слов.&lt;br /&gt;
* Разработала веб-приложение на Flask с интерактивным интерфейсом и графиками.&lt;br /&gt;
* Поняла, как устроены современные сервисы аналитики контента, собирающие данные через открытые API.&lt;br /&gt;
&lt;br /&gt;
== Скриншоты проекта ==&lt;br /&gt;
[[Файл:Photo 5343610813345896930 w.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Photo 5343610813345896931 w.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Photo 5343610813345896929 w.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Работа с API]]&lt;/div&gt;</summary>
		<author><name>Sseliverstova</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45538</id>
		<title>Анализ видеоконтента</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45538"/>
		<updated>2026-03-27T06:25:51Z</updated>

		<summary type="html">&lt;p&gt;Sseliverstova: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== VK Video Analytics — Анализ видеоконтента ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Автор:&#039;&#039;&#039; Светлана Селиверстова  &lt;br /&gt;
&#039;&#039;&#039;Группа:&#039;&#039;&#039; АДЭУ-221  &lt;br /&gt;
&#039;&#039;&#039;Дисциплина:&#039;&#039;&#039; Работа с API социальных сетей и облачных сервисов  &lt;br /&gt;
&#039;&#039;&#039;Статус проекта:&#039;&#039;&#039; Выполнен&lt;br /&gt;
&lt;br /&gt;
== Цель работы ==&lt;br /&gt;
Разработать инструмент для анализа видеоконтента из открытых источников (VK) с целью выявления актуальных тем, изучения принципов работы [[API]] и создания интерактивного веб-интерфейса для визуализации метрик.&lt;br /&gt;
&lt;br /&gt;
== Задачи ==&lt;br /&gt;
# Изучить документацию VK API (методы &amp;lt;code&amp;gt;video.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;users.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;groups.getById&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;).&lt;br /&gt;
# Получить токен доступа для работы с данными.&lt;br /&gt;
# Написать скрипт на Python для сбора до 500 видео из сообщества с пагинацией.&lt;br /&gt;
# Реализовать фильтрацию «лишних» слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&lt;br /&gt;
# Построить графики: топ-10 видео, анализ длительности, временная активность, облако ключевых слов, вовлечённость.&lt;br /&gt;
# Создать веб-интерфейс на Flask для отображения аналитики в браузере (localhost).&lt;br /&gt;
# Оформить результаты в виде отчёта.&lt;br /&gt;
&lt;br /&gt;
== Технологии ==&lt;br /&gt;
* &#039;&#039;&#039;Языки:&#039;&#039;&#039; Python, JavaScript, HTML/CSS&lt;br /&gt;
* &#039;&#039;&#039;Библиотеки Python:&#039;&#039;&#039; requests, pandas, matplotlib, seaborn, wordcloud, flask&lt;br /&gt;
* &#039;&#039;&#039;API:&#039;&#039;&#039; VK API (видео, пользователи, группы, разрешение имён)&lt;br /&gt;
* &#039;&#039;&#039;Визуализация:&#039;&#039;&#039; Matplotlib, Seaborn, WordCloud&lt;br /&gt;
* &#039;&#039;&#039;Веб-фреймворк:&#039;&#039;&#039; Flask&lt;br /&gt;
&lt;br /&gt;
== Диаграмма работы приложения «VK Video Analytics» ==&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:&lt;br /&gt;
flowchart TB&lt;br /&gt;
    A[Пользователь вводит ссылку на сообщество] --&amp;gt; B(Flask получает COMMUNITY_INPUT)&lt;br /&gt;
    B --&amp;gt; C{VK API: utils.resolveScreenName}&lt;br /&gt;
    C --&amp;gt;|Сообщество найдено| D[Получен числовой ID сообщества]&lt;br /&gt;
    C --&amp;gt;|Не найдено| E[Ошибка: сообщество не существует]&lt;br /&gt;
    D --&amp;gt; F[VK API: video.get с пагинацией]&lt;br /&gt;
    F --&amp;gt; G{Видео получены?}&lt;br /&gt;
    G --&amp;gt;|Нет| H[Ошибка: нет видео]&lt;br /&gt;
    G --&amp;gt;|Да| I[Сбор информации об авторах&amp;lt;br&amp;gt;users.get / groups.getById]&lt;br /&gt;
    I --&amp;gt; J[Создание DataFrame pandas&amp;lt;br&amp;gt;расчёт метрик: просмотры, вовлечённость]&lt;br /&gt;
    J --&amp;gt; K[Очистка текста названий]&lt;br /&gt;
    K --&amp;gt; L[Фильтрация стоп-слов&amp;lt;br&amp;gt;местоимения, глаголы, вводные]&lt;br /&gt;
    L --&amp;gt; M[Анализ и построение графиков]&lt;br /&gt;
    M --&amp;gt; N[Сохранение результатов&amp;lt;br&amp;gt;CSV, PNG, JSON]&lt;br /&gt;
    N --&amp;gt; O[Flask рендерит HTML-страницу]&lt;br /&gt;
    O --&amp;gt; P[Браузер отображает аналитику&amp;lt;br&amp;gt;графики + трендовые темы]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Структура проекта ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vk_video_analytics/&lt;br /&gt;
├── config.py                 # настройки: токен, ссылка, лимиты&lt;br /&gt;
├── vk_api_client.py          # работа с VK API (пагинация, resolveScreenName)&lt;br /&gt;
├── analyzer.py               # аналитика: DataFrame, стоп-слова, тренды&lt;br /&gt;
├── visualizer.py             # построение графиков (matplotlib, wordcloud)&lt;br /&gt;
├── app.py                    # веб-сервер Flask&lt;br /&gt;
├── templates/&lt;br /&gt;
│   └── index.html            # HTML-шаблон с графиками и трендами&lt;br /&gt;
├── results/                  # папка с результатами (создаётся автоматически)&lt;br /&gt;
│   ├── videos_data.csv       # все собранные данные&lt;br /&gt;
│   ├── *.png                 # графики&lt;br /&gt;
│   └── *.json                # инсайты и тренды&lt;br /&gt;
└── requirements.txt          # зависимости&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ход работы над проектом ==&lt;br /&gt;
&lt;br /&gt;
=== Этап 1. Написание Python-скрипта для сбора данных ===&lt;br /&gt;
Установила необходимые библиотеки:&lt;br /&gt;
&amp;lt;pre&amp;gt;pip install requests pandas matplotlib seaborn wordcloud flask&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Написала клиент для VK API с поддержкой:&lt;br /&gt;
* Преобразования ссылки в ID через &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;&lt;br /&gt;
* Пагинации для получения до 500 видео&lt;br /&gt;
* Сбора информации об авторах (пользователи и группы)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Результат:&#039;&#039;&#039; собран DataFrame с полями: &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;views&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;duration&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;engagement&amp;lt;/code&amp;gt; и др.&lt;br /&gt;
&lt;br /&gt;
=== Этап 2. Реализация фильтрации «лишних» слов ===&lt;br /&gt;
Создала список стоп-слов, включающий:&lt;br /&gt;
* Местоимения (твой, мой, его, их, я, ты, мы)&lt;br /&gt;
* Глаголы (быть, сказать, делать, хотеть, любить, идти, работать)&lt;br /&gt;
* Вводные конструкции (кстати, наверное, конечно, по-моему)&lt;br /&gt;
* Частицы, предлоги, союзы (в, на, и, а, но, или)&lt;br /&gt;
* Общие слова (самый, хороший, новый, легко, сейчас)&lt;br /&gt;
&lt;br /&gt;
При построении облака слов и поиске трендовых тем эти слова исключаются, остаются только смысловые ключевые слова.&lt;br /&gt;
&lt;br /&gt;
=== Этап 3. Создание графиков и визуализации ===&lt;br /&gt;
Реализовала модуль визуализации, который строит:&lt;br /&gt;
* &#039;&#039;&#039;Топ-10 видео по просмотрам&#039;&#039;&#039; (горизонтальная столбчатая диаграмма)&lt;br /&gt;
* &#039;&#039;&#039;Анализ длительности&#039;&#039;&#039; — средние просмотры и распределение по категориям&lt;br /&gt;
* &#039;&#039;&#039;Временной анализ&#039;&#039;&#039; — средние просмотры по часам и дням недели&lt;br /&gt;
* &#039;&#039;&#039;Облако ключевых слов&#039;&#039;&#039; (только значимые слова после фильтрации)&lt;br /&gt;
* &#039;&#039;&#039;Анализ вовлечённости&#039;&#039;&#039; — зависимость вовлечённости от просмотров и по длительности&lt;br /&gt;
&lt;br /&gt;
=== Этап 4. Создание веб-интерфейса на Flask ===&lt;br /&gt;
Разработала веб-приложение на Flask с маршрутами:&lt;br /&gt;
* &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; — главная страница с аналитикой&lt;br /&gt;
* &amp;lt;code&amp;gt;/api/insights&amp;lt;/code&amp;gt; — JSON с ключевыми инсайтами&lt;br /&gt;
* &amp;lt;code&amp;gt;/api/trending&amp;lt;/code&amp;gt; — JSON с трендовыми темами&lt;br /&gt;
* &amp;lt;code&amp;gt;/api/top_videos&amp;lt;/code&amp;gt; — JSON с топ-20 видео&lt;br /&gt;
* &amp;lt;code&amp;gt;/api/chart/&amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; — отдача PNG-графиков&lt;br /&gt;
* &amp;lt;code&amp;gt;/refresh&amp;lt;/code&amp;gt; — принудительное обновление данных&lt;br /&gt;
&lt;br /&gt;
HTML-шаблон адаптивный, отображает все графики и тренды в удобной сетке.&lt;br /&gt;
&lt;br /&gt;
=== Этап 5. Тестирование и отладка ===&lt;br /&gt;
Провела тестирование на сообществе &amp;lt;code&amp;gt;https://vk.com/vkvideo&amp;lt;/code&amp;gt;. Собрано 500 видео, построены графики. Проверила фильтрацию стоп-слов — в облаке слов и трендах остались только смысловые темы (например, «кино», «сериал», «премьера», «трейлер»).&lt;br /&gt;
&lt;br /&gt;
== Выводы ==&lt;br /&gt;
В ходе работы над проектом я:&lt;br /&gt;
* Научилась работать с VK API — получать токен, делать запросы с пагинацией, обрабатывать ответы, использовать &amp;lt;code&amp;gt;resolveScreenName&amp;lt;/code&amp;gt; для преобразования ссылок.&lt;br /&gt;
* Освоила очистку текстовых данных: фильтрацию стоп-слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&lt;br /&gt;
* Создала комплексную аналитику видеоконтента: топ видео, анализ длительности, временную активность, вовлечённость, облако ключевых слов.&lt;br /&gt;
* Разработала веб-приложение на Flask с интерактивным интерфейсом и графиками.&lt;br /&gt;
* Поняла, как устроены современные сервисы аналитики контента, собирающие данные через открытые API.&lt;br /&gt;
&lt;br /&gt;
== Скриншоты проекта ==&lt;br /&gt;
[[Файл:Photo 5343610813345896930 w.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Photo 5343610813345896931 w.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Photo 5343610813345896929 w.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Работа с API]]&lt;/div&gt;</summary>
		<author><name>Sseliverstova</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45534</id>
		<title>Анализ видеоконтента</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45534"/>
		<updated>2026-03-27T06:21:57Z</updated>

		<summary type="html">&lt;p&gt;Sseliverstova: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
    &amp;lt;!-- Карточка проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #f0f8ff; padding: 15px; border-radius: 10px; margin-bottom: 25px;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h2 style=&amp;quot;color: #2c3e50; border-bottom: 2px solid #3498db; padding-bottom: 8px;&amp;quot;&amp;gt;🎬 VK Video Analytics — Анализ видеоконтента&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Автор:&amp;lt;/b&amp;gt; Светлана Селиверстова &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Группа:&amp;lt;/b&amp;gt; АДЭУ-221&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Дисциплина:&amp;lt;/b&amp;gt; Работа с API социальных сетей и облачных сервисов&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Статус проекта:&amp;lt;/b&amp;gt; Выполнен&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Цель проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Цель работы&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Разработать инструмент для анализа видеоконтента из открытых источников (VK) с целью выявления актуальных тем, изучения принципов работы [[API]] и создания интерактивного веб-интерфейса для визуализации метрик.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Задачи --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Задачи&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;ol&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Изучить документацию VK API (методы &amp;lt;code&amp;gt;video.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;users.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;groups.getById&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;).&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Получить токен доступа для работы с данными.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Написать скрипт на Python для сбора до 500 видео из сообщества с пагинацией.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Реализовать фильтрацию «лишних» слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Построить графики: топ-10 видео, анализ длительности, временная активность, облако ключевых слов, вовлечённость.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Создать веб-интерфейс на Flask для отображения аналитики в браузере (localhost).&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Оформить результаты в виде отчёта.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Планируемый стек технологий --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Технологии&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Языки:&amp;lt;/b&amp;gt; Python, JavaScript, HTML/CSS&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Библиотеки Python:&amp;lt;/b&amp;gt; requests, pandas, matplotlib, seaborn, wordcloud, flask&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;API:&amp;lt;/b&amp;gt; VK API (видео, пользователи, группы, разрешение имён)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Визуализация:&amp;lt;/b&amp;gt; Matplotlib, Seaborn, WordCloud&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Веб-фреймворк:&amp;lt;/b&amp;gt; Flask&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Диаграмма работы приложения --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Диаграмма работы приложения «VK Video Analytics»&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:&lt;br /&gt;
flowchart TB&lt;br /&gt;
    A[Пользователь вводит ссылку на сообщество] --&amp;gt; B(Flask получает COMMUNITY_INPUT)&lt;br /&gt;
    B --&amp;gt; C{VK API: utils.resolveScreenName}&lt;br /&gt;
    C --&amp;gt;|Сообщество найдено| D[Получен числовой ID сообщества]&lt;br /&gt;
    C --&amp;gt;|Не найдено| E[Ошибка: сообщество не существует]&lt;br /&gt;
    D --&amp;gt; F[VK API: video.get с пагинацией]&lt;br /&gt;
    F --&amp;gt; G{Видео получены?}&lt;br /&gt;
    G --&amp;gt;|Нет| H[Ошибка: нет видео]&lt;br /&gt;
    G --&amp;gt;|Да| I[Сбор информации об авторах&amp;lt;br&amp;gt;users.get / groups.getById]&lt;br /&gt;
    I --&amp;gt; J[Создание DataFrame pandas&amp;lt;br&amp;gt;расчёт метрик: просмотры, вовлечённость]&lt;br /&gt;
    J --&amp;gt; K[Очистка текста названий]&lt;br /&gt;
    K --&amp;gt; L[Фильтрация стоп-слов&amp;lt;br&amp;gt;местоимения, глаголы, вводные]&lt;br /&gt;
    L --&amp;gt; M[Анализ и построение графиков]&lt;br /&gt;
    M --&amp;gt; N[Сохранение результатов&amp;lt;br&amp;gt;CSV, PNG, JSON]&lt;br /&gt;
    N --&amp;gt; O[Flask рендерит HTML-страницу]&lt;br /&gt;
    O --&amp;gt; P[Браузер отображает аналитику&amp;lt;br&amp;gt;графики + трендовые темы]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Структура проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Структура проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;pre style=&amp;quot;background: #2d2d2d; color: #f8f8f2; padding: 15px; border-radius: 10px; overflow-x: auto;&amp;quot;&amp;gt;&lt;br /&gt;
vk_video_analytics/&lt;br /&gt;
├── config.py                 # настройки: токен, ссылка, лимиты&lt;br /&gt;
├── vk_api_client.py          # работа с VK API (пагинация, resolveScreenName)&lt;br /&gt;
├── analyzer.py               # аналитика: DataFrame, стоп-слова, тренды&lt;br /&gt;
├── visualizer.py             # построение графиков (matplotlib, wordcloud)&lt;br /&gt;
├── app.py                    # веб-сервер Flask&lt;br /&gt;
├── templates/&lt;br /&gt;
│   └── index.html            # HTML-шаблон с графиками и трендами&lt;br /&gt;
├── results/                  # папка с результатами (создаётся автоматически)&lt;br /&gt;
│   ├── videos_data.csv       # все собранные данные&lt;br /&gt;
│   ├── *.png                 # графики&lt;br /&gt;
│   └── *.json                # инсайты и тренды&lt;br /&gt;
└── requirements.txt          # зависимости&lt;br /&gt;
    &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Ход работы над проектом --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Ход работы над проектом&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #f9f9f9; border-radius: 10px; padding: 20px; margin: 20px 0;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 1. Написание Python-скрипта для сбора данных&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Установила необходимые библиотеки:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;pre style=&amp;quot;background: #2d2d2d; color: #f8f8f2; padding: 10px; border-radius: 5px;&amp;quot;&amp;gt;pip install requests pandas matplotlib seaborn wordcloud flask&amp;lt;/pre&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Написала клиент для VK API с поддержкой:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Преобразования ссылки в ID через &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Пагинации для получения до 500 видео&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Сбора информации об авторах (пользователи и группы)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Результат:&amp;lt;/b&amp;gt; собран DataFrame с полями: &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;views&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;duration&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;engagement&amp;lt;/code&amp;gt; и др.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 2. Реализация фильтрации «лишних» слов&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Создала список стоп-слов, включающий:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Местоимения (твой, мой, его, их, я, ты, мы)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Глаголы (быть, сказать, делать, хотеть, любить, идти, работать)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Вводные конструкции (кстати, наверное, конечно, по-моему)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Частицы, предлоги, союзы (в, на, и, а, но, или)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Общие слова (самый, хороший, новый, легко, сейчас)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;При построении облака слов и поиске трендовых тем эти слова исключаются, остаются только смысловые ключевые слова.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 3. Создание графиков и визуализации&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Реализовала модуль визуализации, который строит:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Топ-10 видео по просмотрам&amp;lt;/b&amp;gt; (горизонтальная столбчатая диаграмма)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Анализ длительности&amp;lt;/b&amp;gt; — средние просмотры и распределение по категориям&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Временной анализ&amp;lt;/b&amp;gt; — средние просмотры по часам и дням недели&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Облако ключевых слов&amp;lt;/b&amp;gt; (только значимые слова после фильтрации)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Анализ вовлечённости&amp;lt;/b&amp;gt; — зависимость вовлечённости от просмотров и по длительности&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 4. Создание веб-интерфейса на Flask&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Разработала веб-приложение на Flask с маршрутами:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; — главная страница с аналитикой&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/insights&amp;lt;/code&amp;gt; — JSON с ключевыми инсайтами&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/trending&amp;lt;/code&amp;gt; — JSON с трендовыми темами&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/top_videos&amp;lt;/code&amp;gt; — JSON с топ-20 видео&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/chart/&amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; — отдача PNG-графиков&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/refresh&amp;lt;/code&amp;gt; — принудительное обновление данных&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;HTML-шаблон адаптивный, отображает все графики и тренды в удобной сетке.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 5. Тестирование и отладка&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Провела тестирование на сообществе &amp;lt;code&amp;gt;https://vk.com/vkvideo&amp;lt;/code&amp;gt;. Собрано 500 видео, построены графики. Проверила фильтрацию стоп-слов — в облаке слов и трендах остались только смысловые темы (например, «кино», «сериал», «премьера», «трейлер»).&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- ВЫВОДЫ --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Выводы&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;В ходе работы над проектом я:&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Научилась работать с VK API — получать токен, делать запросы с пагинацией, обрабатывать ответы, использовать &amp;lt;code&amp;gt;resolveScreenName&amp;lt;/code&amp;gt; для преобразования ссылок.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Освоила очистку текстовых данных: фильтрацию стоп-слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Создала комплексную аналитику видеоконтента: топ видео, анализ длительности, временную активность, вовлечённость, облако ключевых слов.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Разработала веб-приложение на Flask с интерактивным интерфейсом и графиками.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Поняла, как устроены современные сервисы аналитики контента, собирающие данные через открытые API.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Скриншоты проекта--&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Скриншоты проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
[[Файл:Photo 5343610813345896930 w.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Photo 5343610813345896931 w.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Photo 5343610813345896929 w.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:Работа с API]]&lt;/div&gt;</summary>
		<author><name>Sseliverstova</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45451</id>
		<title>Анализ видеоконтента</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45451"/>
		<updated>2026-03-26T20:51:30Z</updated>

		<summary type="html">&lt;p&gt;Sseliverstova: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
    &amp;lt;!-- Карточка проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #f0f8ff; padding: 15px; border-radius: 10px; margin-bottom: 25px;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h2 style=&amp;quot;color: #2c3e50; border-bottom: 2px solid #3498db; padding-bottom: 8px;&amp;quot;&amp;gt;🎬 VK Video Analytics — Анализ видеоконтента&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Автор:&amp;lt;/b&amp;gt; Светлана Селиверстова &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Группа:&amp;lt;/b&amp;gt; АДЭУ-221&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Дисциплина:&amp;lt;/b&amp;gt; Работа с API социальных сетей и облачных сервисов&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Статус проекта:&amp;lt;/b&amp;gt; Выполнен&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Цель проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Цель работы&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Разработать инструмент для анализа видеоконтента из открытых источников (VK) с целью выявления актуальных тем, изучения принципов работы [[API]] и создания интерактивного веб-интерфейса для визуализации метрик.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Задачи --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Задачи&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;ol&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Изучить документацию VK API (методы &amp;lt;code&amp;gt;video.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;users.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;groups.getById&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;).&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Получить токен доступа для работы с данными.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Написать скрипт на Python для сбора до 500 видео из сообщества с пагинацией.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Реализовать фильтрацию «лишних» слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Построить графики: топ-10 видео, анализ длительности, временная активность, облако ключевых слов, вовлечённость.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Создать веб-интерфейс на Flask для отображения аналитики в браузере (localhost).&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Оформить результаты в виде отчёта.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Планируемый стек технологий --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Технологии&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Языки:&amp;lt;/b&amp;gt; Python, JavaScript, HTML/CSS&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Библиотеки Python:&amp;lt;/b&amp;gt; requests, pandas, matplotlib, seaborn, wordcloud, flask&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;API:&amp;lt;/b&amp;gt; VK API (видео, пользователи, группы, разрешение имён)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Визуализация:&amp;lt;/b&amp;gt; Matplotlib, Seaborn, WordCloud&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Веб-фреймворк:&amp;lt;/b&amp;gt; Flask&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Диаграмма работы приложения --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Диаграмма работы приложения «VK Video Analytics»&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:&lt;br /&gt;
flowchart TB&lt;br /&gt;
    A[Пользователь вводит ссылку на сообщество] --&amp;gt; B(Flask получает COMMUNITY_INPUT)&lt;br /&gt;
    B --&amp;gt; C{VK API: utils.resolveScreenName}&lt;br /&gt;
    C --&amp;gt;|Сообщество найдено| D[Получен числовой ID сообщества]&lt;br /&gt;
    C --&amp;gt;|Не найдено| E[Ошибка: сообщество не существует]&lt;br /&gt;
    D --&amp;gt; F[VK API: video.get с пагинацией]&lt;br /&gt;
    F --&amp;gt; G{Видео получены?}&lt;br /&gt;
    G --&amp;gt;|Нет| H[Ошибка: нет видео]&lt;br /&gt;
    G --&amp;gt;|Да| I[Сбор информации об авторах&amp;lt;br&amp;gt;users.get / groups.getById]&lt;br /&gt;
    I --&amp;gt; J[Создание DataFrame pandas&amp;lt;br&amp;gt;расчёт метрик: просмотры, вовлечённость]&lt;br /&gt;
    J --&amp;gt; K[Очистка текста названий]&lt;br /&gt;
    K --&amp;gt; L[Фильтрация стоп-слов&amp;lt;br&amp;gt;местоимения, глаголы, вводные]&lt;br /&gt;
    L --&amp;gt; M[Анализ и построение графиков]&lt;br /&gt;
    M --&amp;gt; N[Сохранение результатов&amp;lt;br&amp;gt;CSV, PNG, JSON]&lt;br /&gt;
    N --&amp;gt; O[Flask рендерит HTML-страницу]&lt;br /&gt;
    O --&amp;gt; P[Браузер отображает аналитику&amp;lt;br&amp;gt;графики + трендовые темы]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Структура проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Структура проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;pre style=&amp;quot;background: #2d2d2d; color: #f8f8f2; padding: 15px; border-radius: 10px; overflow-x: auto;&amp;quot;&amp;gt;&lt;br /&gt;
vk_video_analytics/&lt;br /&gt;
├── config.py                 # настройки: токен, ссылка, лимиты&lt;br /&gt;
├── vk_api_client.py          # работа с VK API (пагинация, resolveScreenName)&lt;br /&gt;
├── analyzer.py               # аналитика: DataFrame, стоп-слова, тренды&lt;br /&gt;
├── visualizer.py             # построение графиков (matplotlib, wordcloud)&lt;br /&gt;
├── app.py                    # веб-сервер Flask&lt;br /&gt;
├── templates/&lt;br /&gt;
│   └── index.html            # HTML-шаблон с графиками и трендами&lt;br /&gt;
├── results/                  # папка с результатами (создаётся автоматически)&lt;br /&gt;
│   ├── videos_data.csv       # все собранные данные&lt;br /&gt;
│   ├── *.png                 # графики&lt;br /&gt;
│   └── *.json                # инсайты и тренды&lt;br /&gt;
└── requirements.txt          # зависимости&lt;br /&gt;
    &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Ход работы над проектом --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Ход работы над проектом&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #f9f9f9; border-radius: 10px; padding: 20px; margin: 20px 0;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 1. Написание Python-скрипта для сбора данных&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Установила необходимые библиотеки:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;pre style=&amp;quot;background: #2d2d2d; color: #f8f8f2; padding: 10px; border-radius: 5px;&amp;quot;&amp;gt;pip install requests pandas matplotlib seaborn wordcloud flask&amp;lt;/pre&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Написала клиент для VK API с поддержкой:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Преобразования ссылки в ID через &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Пагинации для получения до 500 видео&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Сбора информации об авторах (пользователи и группы)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Результат:&amp;lt;/b&amp;gt; собран DataFrame с полями: &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;views&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;duration&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;engagement&amp;lt;/code&amp;gt; и др.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 2. Реализация фильтрации «лишних» слов&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Создала список стоп-слов, включающий:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Местоимения (твой, мой, его, их, я, ты, мы)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Глаголы (быть, сказать, делать, хотеть, любить, идти, работать)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Вводные конструкции (кстати, наверное, конечно, по-моему)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Частицы, предлоги, союзы (в, на, и, а, но, или)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Общие слова (самый, хороший, новый, легко, сейчас)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;При построении облака слов и поиске трендовых тем эти слова исключаются, остаются только смысловые ключевые слова.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 3. Создание графиков и визуализации&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Реализовала модуль визуализации, который строит:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Топ-10 видео по просмотрам&amp;lt;/b&amp;gt; (горизонтальная столбчатая диаграмма)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Анализ длительности&amp;lt;/b&amp;gt; — средние просмотры и распределение по категориям&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Временной анализ&amp;lt;/b&amp;gt; — средние просмотры по часам и дням недели&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Облако ключевых слов&amp;lt;/b&amp;gt; (только значимые слова после фильтрации)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Анализ вовлечённости&amp;lt;/b&amp;gt; — зависимость вовлечённости от просмотров и по длительности&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 4. Создание веб-интерфейса на Flask&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Разработала веб-приложение на Flask с маршрутами:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; — главная страница с аналитикой&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/insights&amp;lt;/code&amp;gt; — JSON с ключевыми инсайтами&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/trending&amp;lt;/code&amp;gt; — JSON с трендовыми темами&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/top_videos&amp;lt;/code&amp;gt; — JSON с топ-20 видео&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/chart/&amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; — отдача PNG-графиков&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/refresh&amp;lt;/code&amp;gt; — принудительное обновление данных&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;HTML-шаблон адаптивный, отображает все графики и тренды в удобной сетке.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 5. Тестирование и отладка&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Провела тестирование на сообществе &amp;lt;code&amp;gt;https://vk.com/vkvideo&amp;lt;/code&amp;gt;. Собрано 500 видео, построены графики. Проверила фильтрацию стоп-слов — в облаке слов и трендах остались только смысловые темы (например, «кино», «сериал», «премьера», «трейлер»).&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- ИТОГОВЫЙ РЕЗУЛЬТАТ --&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #eef2f5; padding: 20px; border-radius: 15px; margin: 30px 0; text-align: center; border-left: 4px solid #3498db;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h3 style=&amp;quot;color: black;&amp;quot;&amp;gt;Итог проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
        &amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;Создан работающий инструмент для анализа видеоконтента ВКонтакте с веб-интерфейсом&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;До 500 видео анализируется &amp;amp;nbsp;|&amp;amp;nbsp; 5 типов графиков &amp;amp;nbsp;|&amp;amp;nbsp; 425 стоп-слов для фильтрации &amp;amp;nbsp;|&amp;amp;nbsp; Автоматическое определение сообщества по ссылке&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;Проект выполнен в рамках дисциплины «Работа с API социальных сетей и облачных сервисов»&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- ВЫВОДЫ --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Выводы&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;В ходе работы над проектом я:&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Научилась работать с VK API — получать токен, делать запросы с пагинацией, обрабатывать ответы, использовать &amp;lt;code&amp;gt;resolveScreenName&amp;lt;/code&amp;gt; для преобразования ссылок.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Освоила очистку текстовых данных: фильтрацию стоп-слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Создала комплексную аналитику видеоконтента: топ видео, анализ длительности, временную активность, вовлечённость, облако ключевых слов.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Разработала веб-приложение на Flask с интерактивным интерфейсом и графиками.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Поняла, как устроены современные сервисы аналитики контента, собирающие данные через открытые API.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Скриншоты проекта--&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Скриншоты проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
[[Файл:Photo 5343610813345896930 w.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Photo 5343610813345896931 w.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Photo 5343610813345896929 w.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:Работа с API]]&lt;/div&gt;</summary>
		<author><name>Sseliverstova</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45450</id>
		<title>Анализ видеоконтента</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45450"/>
		<updated>2026-03-26T20:50:51Z</updated>

		<summary type="html">&lt;p&gt;Sseliverstova: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
    &amp;lt;!-- Карточка проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #f0f8ff; padding: 15px; border-radius: 10px; margin-bottom: 25px;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h2 style=&amp;quot;color: #2c3e50; border-bottom: 2px solid #3498db; padding-bottom: 8px;&amp;quot;&amp;gt;🎬 VK Video Analytics — Анализ видеоконтента&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Автор:&amp;lt;/b&amp;gt; Светлана Селиверстова &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Группа:&amp;lt;/b&amp;gt; АДЭУ-221&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Дисциплина:&amp;lt;/b&amp;gt; Работа с API социальных сетей и облачных сервисов&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Статус проекта:&amp;lt;/b&amp;gt; Выполнен&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Цель проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Цель работы&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Разработать инструмент для анализа видеоконтента из открытых источников (VK) с целью выявления актуальных тем, изучения принципов работы [[API]] и создания интерактивного веб-интерфейса для визуализации метрик.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Задачи --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Задачи&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;ol&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Изучить документацию VK API (методы &amp;lt;code&amp;gt;video.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;users.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;groups.getById&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;).&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Получить токен доступа для работы с данными.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Написать скрипт на Python для сбора до 500 видео из сообщества с пагинацией.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Реализовать фильтрацию «лишних» слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Построить графики: топ-10 видео, анализ длительности, временная активность, облако ключевых слов, вовлечённость.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Создать веб-интерфейс на Flask для отображения аналитики в браузере (localhost).&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Оформить результаты в виде отчёта.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Планируемый стек технологий --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Технологии&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Языки:&amp;lt;/b&amp;gt; Python, JavaScript, HTML/CSS&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Библиотеки Python:&amp;lt;/b&amp;gt; requests, pandas, matplotlib, seaborn, wordcloud, flask&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;API:&amp;lt;/b&amp;gt; VK API (видео, пользователи, группы, разрешение имён)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Визуализация:&amp;lt;/b&amp;gt; Matplotlib, Seaborn, WordCloud&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Веб-фреймворк:&amp;lt;/b&amp;gt; Flask&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Диаграмма работы приложения --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Диаграмма работы приложения «VK Video Analytics»&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:&lt;br /&gt;
flowchart TB&lt;br /&gt;
    A[Пользователь вводит ссылку на сообщество] --&amp;gt; B(Flask получает COMMUNITY_INPUT)&lt;br /&gt;
    B --&amp;gt; C{VK API: utils.resolveScreenName}&lt;br /&gt;
    C --&amp;gt;|Сообщество найдено| D[Получен числовой ID сообщества]&lt;br /&gt;
    C --&amp;gt;|Не найдено| E[Ошибка: сообщество не существует]&lt;br /&gt;
    D --&amp;gt; F[VK API: video.get с пагинацией]&lt;br /&gt;
    F --&amp;gt; G{Видео получены?}&lt;br /&gt;
    G --&amp;gt;|Нет| H[Ошибка: нет видео]&lt;br /&gt;
    G --&amp;gt;|Да| I[Сбор информации об авторах&amp;lt;br&amp;gt;users.get / groups.getById]&lt;br /&gt;
    I --&amp;gt; J[Создание DataFrame pandas&amp;lt;br&amp;gt;расчёт метрик: просмотры, вовлечённость]&lt;br /&gt;
    J --&amp;gt; K[Очистка текста названий]&lt;br /&gt;
    K --&amp;gt; L[Фильтрация стоп-слов&amp;lt;br&amp;gt;местоимения, глаголы, вводные]&lt;br /&gt;
    L --&amp;gt; M[Анализ и построение графиков]&lt;br /&gt;
    M --&amp;gt; N[Сохранение результатов&amp;lt;br&amp;gt;CSV, PNG, JSON]&lt;br /&gt;
    N --&amp;gt; O[Flask рендерит HTML-страницу]&lt;br /&gt;
    O --&amp;gt; P[Браузер отображает аналитику&amp;lt;br&amp;gt;графики + трендовые темы]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Структура проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Структура проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;pre style=&amp;quot;background: #2d2d2d; color: #f8f8f2; padding: 15px; border-radius: 10px; overflow-x: auto;&amp;quot;&amp;gt;&lt;br /&gt;
vk_video_analytics/&lt;br /&gt;
├── config.py                 # настройки: токен, ссылка, лимиты&lt;br /&gt;
├── vk_api_client.py          # работа с VK API (пагинация, resolveScreenName)&lt;br /&gt;
├── analyzer.py               # аналитика: DataFrame, стоп-слова, тренды&lt;br /&gt;
├── visualizer.py             # построение графиков (matplotlib, wordcloud)&lt;br /&gt;
├── app.py                    # веб-сервер Flask&lt;br /&gt;
├── templates/&lt;br /&gt;
│   └── index.html            # HTML-шаблон с графиками и трендами&lt;br /&gt;
├── results/                  # папка с результатами (создаётся автоматически)&lt;br /&gt;
│   ├── videos_data.csv       # все собранные данные&lt;br /&gt;
│   ├── *.png                 # графики&lt;br /&gt;
│   └── *.json                # инсайты и тренды&lt;br /&gt;
└── requirements.txt          # зависимости&lt;br /&gt;
    &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Ход работы над проектом --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Ход работы над проектом&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #f9f9f9; border-radius: 10px; padding: 20px; margin: 20px 0;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 1. Написание Python-скрипта для сбора данных&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Установила необходимые библиотеки:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;pre style=&amp;quot;background: #2d2d2d; color: #f8f8f2; padding: 10px; border-radius: 5px;&amp;quot;&amp;gt;pip install requests pandas matplotlib seaborn wordcloud flask&amp;lt;/pre&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Написала клиент для VK API с поддержкой:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Преобразования ссылки в ID через &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Пагинации для получения до 500 видео&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Сбора информации об авторах (пользователи и группы)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Результат:&amp;lt;/b&amp;gt; собран DataFrame с полями: &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;views&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;duration&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;engagement&amp;lt;/code&amp;gt; и др.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 2. Реализация фильтрации «лишних» слов&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Создала список стоп-слов, включающий:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Местоимения (твой, мой, его, их, я, ты, мы)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Глаголы (быть, сказать, делать, хотеть, любить, идти, работать)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Вводные конструкции (кстати, наверное, конечно, по-моему)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Частицы, предлоги, союзы (в, на, и, а, но, или)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Общие слова (самый, хороший, новый, легко, сейчас)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;При построении облака слов и поиске трендовых тем эти слова исключаются, остаются только смысловые ключевые слова.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 3. Создание графиков и визуализации&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Реализовала модуль визуализации, который строит:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Топ-10 видео по просмотрам&amp;lt;/b&amp;gt; (горизонтальная столбчатая диаграмма)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Анализ длительности&amp;lt;/b&amp;gt; — средние просмотры и распределение по категориям&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Временной анализ&amp;lt;/b&amp;gt; — средние просмотры по часам и дням недели&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Облако ключевых слов&amp;lt;/b&amp;gt; (только значимые слова после фильтрации)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Анализ вовлечённости&amp;lt;/b&amp;gt; — зависимость вовлечённости от просмотров и по длительности&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 4. Создание веб-интерфейса на Flask&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Разработала веб-приложение на Flask с маршрутами:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; — главная страница с аналитикой&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/insights&amp;lt;/code&amp;gt; — JSON с ключевыми инсайтами&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/trending&amp;lt;/code&amp;gt; — JSON с трендовыми темами&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/top_videos&amp;lt;/code&amp;gt; — JSON с топ-20 видео&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/chart/&amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; — отдача PNG-графиков&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/refresh&amp;lt;/code&amp;gt; — принудительное обновление данных&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;HTML-шаблон адаптивный, отображает все графики и тренды в удобной сетке.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 5. Тестирование и отладка&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Провела тестирование на сообществе &amp;lt;code&amp;gt;https://vk.com/vkvideo&amp;lt;/code&amp;gt;. Собрано 500 видео, построены графики. Проверила фильтрацию стоп-слов — в облаке слов и трендах остались только смысловые темы (например, «кино», «сериал», «премьера», «трейлер»).&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- ИТОГОВЫЙ РЕЗУЛЬТАТ --&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #eef2f5; padding: 20px; border-radius: 15px; margin: 30px 0; text-align: center; border-left: 4px solid #3498db;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h3 style=&amp;quot;color: black;&amp;quot;&amp;gt;Итог проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
        &amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;Создан работающий инструмент для анализа видеоконтента ВКонтакте с веб-интерфейсом&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;До 500 видео анализируется &amp;amp;nbsp;|&amp;amp;nbsp; 5 типов графиков &amp;amp;nbsp;|&amp;amp;nbsp; 425 стоп-слов для фильтрации &amp;amp;nbsp;|&amp;amp;nbsp; Автоматическое определение сообщества по ссылке&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;Проект выполнен в рамках дисциплины «Работа с API социальных сетей и облачных сервисов»&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- ВЫВОДЫ --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Выводы&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;В ходе работы над проектом я:&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Научилась работать с VK API — получать токен, делать запросы с пагинацией, обрабатывать ответы, использовать &amp;lt;code&amp;gt;resolveScreenName&amp;lt;/code&amp;gt; для преобразования ссылок.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Освоила очистку текстовых данных: фильтрацию стоп-слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Создала комплексную аналитику видеоконтента: топ видео, анализ длительности, временную активность, вовлечённость, облако ключевых слов.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Разработала веб-приложение на Flask с интерактивным интерфейсом и графиками.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Поняла, как устроены современные сервисы аналитики контента, собирающие данные через открытые API.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Скриншоты проекта--&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Скриншоты проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
[[Файл:Photo 5343610813345896930 w.jpg|500px]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Photo 5343610813345896931 w.jpg|500px]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Photo 5343610813345896929 w.jpg|500px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:Работа с API]]&lt;/div&gt;</summary>
		<author><name>Sseliverstova</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45449</id>
		<title>Анализ видеоконтента</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45449"/>
		<updated>2026-03-26T20:49:17Z</updated>

		<summary type="html">&lt;p&gt;Sseliverstova: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
    &amp;lt;!-- Карточка проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #f0f8ff; padding: 15px; border-radius: 10px; margin-bottom: 25px;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h2 style=&amp;quot;color: #2c3e50; border-bottom: 2px solid #3498db; padding-bottom: 8px;&amp;quot;&amp;gt;🎬 VK Video Analytics — Анализ видеоконтента&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Автор:&amp;lt;/b&amp;gt; Светлана Селиверстова &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Группа:&amp;lt;/b&amp;gt; АДЭУ-221&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Дисциплина:&amp;lt;/b&amp;gt; Работа с API социальных сетей и облачных сервисов&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Статус проекта:&amp;lt;/b&amp;gt; Выполнен&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Цель проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Цель работы&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Разработать инструмент для анализа видеоконтента из открытых источников (VK) с целью выявления актуальных тем, изучения принципов работы [[API]] и создания интерактивного веб-интерфейса для визуализации метрик.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Задачи --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Задачи&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;ol&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Изучить документацию VK API (методы &amp;lt;code&amp;gt;video.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;users.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;groups.getById&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;).&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Получить токен доступа для работы с данными.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Написать скрипт на Python для сбора до 500 видео из сообщества с пагинацией.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Реализовать фильтрацию «лишних» слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Построить графики: топ-10 видео, анализ длительности, временная активность, облако ключевых слов, вовлечённость.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Создать веб-интерфейс на Flask для отображения аналитики в браузере (localhost).&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Оформить результаты в виде отчёта.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Планируемый стек технологий --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Технологии&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Языки:&amp;lt;/b&amp;gt; Python, JavaScript, HTML/CSS&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Библиотеки Python:&amp;lt;/b&amp;gt; requests, pandas, matplotlib, seaborn, wordcloud, flask&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;API:&amp;lt;/b&amp;gt; VK API (видео, пользователи, группы, разрешение имён)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Визуализация:&amp;lt;/b&amp;gt; Matplotlib, Seaborn, WordCloud&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Веб-фреймворк:&amp;lt;/b&amp;gt; Flask&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Диаграмма работы приложения --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Диаграмма работы приложения «VK Video Analytics»&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:&lt;br /&gt;
flowchart TB&lt;br /&gt;
    A[Пользователь вводит ссылку на сообщество] --&amp;gt; B(Flask получает COMMUNITY_INPUT)&lt;br /&gt;
    B --&amp;gt; C{VK API: utils.resolveScreenName}&lt;br /&gt;
    C --&amp;gt;|Сообщество найдено| D[Получен числовой ID сообщества]&lt;br /&gt;
    C --&amp;gt;|Не найдено| E[Ошибка: сообщество не существует]&lt;br /&gt;
    D --&amp;gt; F[VK API: video.get с пагинацией]&lt;br /&gt;
    F --&amp;gt; G{Видео получены?}&lt;br /&gt;
    G --&amp;gt;|Нет| H[Ошибка: нет видео]&lt;br /&gt;
    G --&amp;gt;|Да| I[Сбор информации об авторах&amp;lt;br&amp;gt;users.get / groups.getById]&lt;br /&gt;
    I --&amp;gt; J[Создание DataFrame pandas&amp;lt;br&amp;gt;расчёт метрик: просмотры, вовлечённость]&lt;br /&gt;
    J --&amp;gt; K[Очистка текста названий]&lt;br /&gt;
    K --&amp;gt; L[Фильтрация стоп-слов&amp;lt;br&amp;gt;местоимения, глаголы, вводные]&lt;br /&gt;
    L --&amp;gt; M[Анализ и построение графиков]&lt;br /&gt;
    M --&amp;gt; N[Сохранение результатов&amp;lt;br&amp;gt;CSV, PNG, JSON]&lt;br /&gt;
    N --&amp;gt; O[Flask рендерит HTML-страницу]&lt;br /&gt;
    O --&amp;gt; P[Браузер отображает аналитику&amp;lt;br&amp;gt;графики + трендовые темы]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Структура проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Структура проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;pre style=&amp;quot;background: #2d2d2d; color: #f8f8f2; padding: 15px; border-radius: 10px; overflow-x: auto;&amp;quot;&amp;gt;&lt;br /&gt;
vk_video_analytics/&lt;br /&gt;
├── config.py                 # настройки: токен, ссылка, лимиты&lt;br /&gt;
├── vk_api_client.py          # работа с VK API (пагинация, resolveScreenName)&lt;br /&gt;
├── analyzer.py               # аналитика: DataFrame, стоп-слова, тренды&lt;br /&gt;
├── visualizer.py             # построение графиков (matplotlib, wordcloud)&lt;br /&gt;
├── app.py                    # веб-сервер Flask&lt;br /&gt;
├── templates/&lt;br /&gt;
│   └── index.html            # HTML-шаблон с графиками и трендами&lt;br /&gt;
├── results/                  # папка с результатами (создаётся автоматически)&lt;br /&gt;
│   ├── videos_data.csv       # все собранные данные&lt;br /&gt;
│   ├── *.png                 # графики&lt;br /&gt;
│   └── *.json                # инсайты и тренды&lt;br /&gt;
└── requirements.txt          # зависимости&lt;br /&gt;
    &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Ход работы над проектом --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Ход работы над проектом&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #f9f9f9; border-radius: 10px; padding: 20px; margin: 20px 0;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 1. Написание Python-скрипта для сбора данных&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Установила необходимые библиотеки:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;pre style=&amp;quot;background: #2d2d2d; color: #f8f8f2; padding: 10px; border-radius: 5px;&amp;quot;&amp;gt;pip install requests pandas matplotlib seaborn wordcloud flask&amp;lt;/pre&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Написала клиент для VK API с поддержкой:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Преобразования ссылки в ID через &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Пагинации для получения до 500 видео&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Сбора информации об авторах (пользователи и группы)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Результат:&amp;lt;/b&amp;gt; собран DataFrame с полями: &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;views&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;duration&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;engagement&amp;lt;/code&amp;gt; и др.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 2. Реализация фильтрации «лишних» слов&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Создала список стоп-слов, включающий:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Местоимения (твой, мой, его, их, я, ты, мы)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Глаголы (быть, сказать, делать, хотеть, любить, идти, работать)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Вводные конструкции (кстати, наверное, конечно, по-моему)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Частицы, предлоги, союзы (в, на, и, а, но, или)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Общие слова (самый, хороший, новый, легко, сейчас)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;При построении облака слов и поиске трендовых тем эти слова исключаются, остаются только смысловые ключевые слова.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 3. Создание графиков и визуализации&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Реализовала модуль визуализации, который строит:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Топ-10 видео по просмотрам&amp;lt;/b&amp;gt; (горизонтальная столбчатая диаграмма)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Анализ длительности&amp;lt;/b&amp;gt; — средние просмотры и распределение по категориям&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Временной анализ&amp;lt;/b&amp;gt; — средние просмотры по часам и дням недели&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Облако ключевых слов&amp;lt;/b&amp;gt; (только значимые слова после фильтрации)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Анализ вовлечённости&amp;lt;/b&amp;gt; — зависимость вовлечённости от просмотров и по длительности&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 4. Создание веб-интерфейса на Flask&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Разработала веб-приложение на Flask с маршрутами:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; — главная страница с аналитикой&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/insights&amp;lt;/code&amp;gt; — JSON с ключевыми инсайтами&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/trending&amp;lt;/code&amp;gt; — JSON с трендовыми темами&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/top_videos&amp;lt;/code&amp;gt; — JSON с топ-20 видео&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/chart/&amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; — отдача PNG-графиков&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/refresh&amp;lt;/code&amp;gt; — принудительное обновление данных&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;HTML-шаблон адаптивный, отображает все графики и тренды в удобной сетке.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 5. Тестирование и отладка&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Провела тестирование на сообществе &amp;lt;code&amp;gt;https://vk.com/vkvideo&amp;lt;/code&amp;gt;. Собрано 500 видео, построены графики. Проверила фильтрацию стоп-слов — в облаке слов и трендах остались только смысловые темы (например, «кино», «сериал», «премьера», «трейлер»).&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- ИТОГОВЫЙ РЕЗУЛЬТАТ --&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #eef2f5; padding: 20px; border-radius: 15px; margin: 30px 0; text-align: center; border-left: 4px solid #3498db;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h3 style=&amp;quot;color: black;&amp;quot;&amp;gt;Итог проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
        &amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;Создан работающий инструмент для анализа видеоконтента ВКонтакте с веб-интерфейсом&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;До 500 видео анализируется &amp;amp;nbsp;|&amp;amp;nbsp; 5 типов графиков &amp;amp;nbsp;|&amp;amp;nbsp; 425 стоп-слов для фильтрации &amp;amp;nbsp;|&amp;amp;nbsp; Автоматическое определение сообщества по ссылке&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;Проект выполнен в рамках дисциплины «Работа с API социальных сетей и облачных сервисов»&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- ВЫВОДЫ --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Выводы&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;В ходе работы над проектом я:&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Научилась работать с VK API — получать токен, делать запросы с пагинацией, обрабатывать ответы, использовать &amp;lt;code&amp;gt;resolveScreenName&amp;lt;/code&amp;gt; для преобразования ссылок.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Освоила очистку текстовых данных: фильтрацию стоп-слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Создала комплексную аналитику видеоконтента: топ видео, анализ длительности, временную активность, вовлечённость, облако ключевых слов.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Разработала веб-приложение на Flask с интерактивным интерфейсом и графиками.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Поняла, как устроены современные сервисы аналитики контента, собирающие данные через открытые API.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Скриншоты проекта--&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Скриншоты проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
[[Файл:Photo 5343610813345896930 w.jpg|мини]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Photo 5343610813345896931 w.jpg|мини]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Photo 5343610813345896929 w.jpg|мини]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:Работа с API]]&lt;/div&gt;</summary>
		<author><name>Sseliverstova</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Photo_5343610813345896929_w.jpg&amp;diff=45448</id>
		<title>Файл:Photo 5343610813345896929 w.jpg</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Photo_5343610813345896929_w.jpg&amp;diff=45448"/>
		<updated>2026-03-26T20:49:07Z</updated>

		<summary type="html">&lt;p&gt;Sseliverstova: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1&lt;/div&gt;</summary>
		<author><name>Sseliverstova</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Photo_5343610813345896931_w.jpg&amp;diff=45447</id>
		<title>Файл:Photo 5343610813345896931 w.jpg</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Photo_5343610813345896931_w.jpg&amp;diff=45447"/>
		<updated>2026-03-26T20:48:50Z</updated>

		<summary type="html">&lt;p&gt;Sseliverstova: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1&lt;/div&gt;</summary>
		<author><name>Sseliverstova</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Photo_5343610813345896930_w.jpg&amp;diff=45445</id>
		<title>Файл:Photo 5343610813345896930 w.jpg</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Photo_5343610813345896930_w.jpg&amp;diff=45445"/>
		<updated>2026-03-26T20:48:31Z</updated>

		<summary type="html">&lt;p&gt;Sseliverstova: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1&lt;/div&gt;</summary>
		<author><name>Sseliverstova</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45442</id>
		<title>Анализ видеоконтента</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45442"/>
		<updated>2026-03-26T20:42:39Z</updated>

		<summary type="html">&lt;p&gt;Sseliverstova: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
    &amp;lt;!-- Карточка проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #f0f8ff; padding: 15px; border-radius: 10px; margin-bottom: 25px;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h2 style=&amp;quot;color: #2c3e50; border-bottom: 2px solid #3498db; padding-bottom: 8px;&amp;quot;&amp;gt;🎬 VK Video Analytics — Анализ видеоконтента&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Автор:&amp;lt;/b&amp;gt; Светлана Селиверстова &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Группа:&amp;lt;/b&amp;gt; АДЭУ-221&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Дисциплина:&amp;lt;/b&amp;gt; Работа с API социальных сетей и облачных сервисов&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Статус проекта:&amp;lt;/b&amp;gt; Выполнен&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Цель проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Цель работы&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Разработать инструмент для анализа видеоконтента из открытых источников (VK) с целью выявления актуальных тем, изучения принципов работы [[API]] и создания интерактивного веб-интерфейса для визуализации метрик.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Задачи --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Задачи&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;ol&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Изучить документацию VK API (методы &amp;lt;code&amp;gt;video.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;users.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;groups.getById&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;).&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Получить токен доступа для работы с данными.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Написать скрипт на Python для сбора до 500 видео из сообщества с пагинацией.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Реализовать фильтрацию «лишних» слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Построить графики: топ-10 видео, анализ длительности, временная активность, облако ключевых слов, вовлечённость.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Создать веб-интерфейс на Flask для отображения аналитики в браузере (localhost).&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Оформить результаты в виде отчёта.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Планируемый стек технологий --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Технологии&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Языки:&amp;lt;/b&amp;gt; Python, JavaScript, HTML/CSS&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Библиотеки Python:&amp;lt;/b&amp;gt; requests, pandas, matplotlib, seaborn, wordcloud, flask&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;API:&amp;lt;/b&amp;gt; VK API (видео, пользователи, группы, разрешение имён)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Визуализация:&amp;lt;/b&amp;gt; Matplotlib, Seaborn, WordCloud&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Веб-фреймворк:&amp;lt;/b&amp;gt; Flask&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Диаграмма работы приложения --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Диаграмма работы приложения «VK Video Analytics»&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:&lt;br /&gt;
flowchart TB&lt;br /&gt;
    A[Пользователь вводит ссылку на сообщество] --&amp;gt; B(Flask получает COMMUNITY_INPUT)&lt;br /&gt;
    B --&amp;gt; C{VK API: utils.resolveScreenName}&lt;br /&gt;
    C --&amp;gt;|Сообщество найдено| D[Получен числовой ID сообщества]&lt;br /&gt;
    C --&amp;gt;|Не найдено| E[Ошибка: сообщество не существует]&lt;br /&gt;
    D --&amp;gt; F[VK API: video.get с пагинацией]&lt;br /&gt;
    F --&amp;gt; G{Видео получены?}&lt;br /&gt;
    G --&amp;gt;|Нет| H[Ошибка: нет видео]&lt;br /&gt;
    G --&amp;gt;|Да| I[Сбор информации об авторах&amp;lt;br&amp;gt;users.get / groups.getById]&lt;br /&gt;
    I --&amp;gt; J[Создание DataFrame pandas&amp;lt;br&amp;gt;расчёт метрик: просмотры, вовлечённость]&lt;br /&gt;
    J --&amp;gt; K[Очистка текста названий]&lt;br /&gt;
    K --&amp;gt; L[Фильтрация стоп-слов&amp;lt;br&amp;gt;местоимения, глаголы, вводные]&lt;br /&gt;
    L --&amp;gt; M[Анализ и построение графиков]&lt;br /&gt;
    M --&amp;gt; N[Сохранение результатов&amp;lt;br&amp;gt;CSV, PNG, JSON]&lt;br /&gt;
    N --&amp;gt; O[Flask рендерит HTML-страницу]&lt;br /&gt;
    O --&amp;gt; P[Браузер отображает аналитику&amp;lt;br&amp;gt;графики + трендовые темы]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Структура проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Структура проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;pre style=&amp;quot;background: #2d2d2d; color: #f8f8f2; padding: 15px; border-radius: 10px; overflow-x: auto;&amp;quot;&amp;gt;&lt;br /&gt;
vk_video_analytics/&lt;br /&gt;
├── config.py                 # настройки: токен, ссылка, лимиты&lt;br /&gt;
├── vk_api_client.py          # работа с VK API (пагинация, resolveScreenName)&lt;br /&gt;
├── analyzer.py               # аналитика: DataFrame, стоп-слова, тренды&lt;br /&gt;
├── visualizer.py             # построение графиков (matplotlib, wordcloud)&lt;br /&gt;
├── app.py                    # веб-сервер Flask&lt;br /&gt;
├── templates/&lt;br /&gt;
│   └── index.html            # HTML-шаблон с графиками и трендами&lt;br /&gt;
├── results/                  # папка с результатами (создаётся автоматически)&lt;br /&gt;
│   ├── videos_data.csv       # все собранные данные&lt;br /&gt;
│   ├── *.png                 # графики&lt;br /&gt;
│   └── *.json                # инсайты и тренды&lt;br /&gt;
└── requirements.txt          # зависимости&lt;br /&gt;
    &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Ход работы над проектом --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Ход работы над проектом&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #f9f9f9; border-radius: 10px; padding: 20px; margin: 20px 0;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 1. Написание Python-скрипта для сбора данных&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Установила необходимые библиотеки:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;pre style=&amp;quot;background: #2d2d2d; color: #f8f8f2; padding: 10px; border-radius: 5px;&amp;quot;&amp;gt;pip install requests pandas matplotlib seaborn wordcloud flask&amp;lt;/pre&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Написала клиент для VK API с поддержкой:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Преобразования ссылки в ID через &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Пагинации для получения до 500 видео&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Сбора информации об авторах (пользователи и группы)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Результат:&amp;lt;/b&amp;gt; собран DataFrame с полями: &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;views&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;duration&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;engagement&amp;lt;/code&amp;gt; и др.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 2. Реализация фильтрации «лишних» слов&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Создала список стоп-слов, включающий:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Местоимения (твой, мой, его, их, я, ты, мы)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Глаголы (быть, сказать, делать, хотеть, любить, идти, работать)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Вводные конструкции (кстати, наверное, конечно, по-моему)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Частицы, предлоги, союзы (в, на, и, а, но, или)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Общие слова (самый, хороший, новый, легко, сейчас)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;При построении облака слов и поиске трендовых тем эти слова исключаются, остаются только смысловые ключевые слова.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 3. Создание графиков и визуализации&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Реализовала модуль визуализации, который строит:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Топ-10 видео по просмотрам&amp;lt;/b&amp;gt; (горизонтальная столбчатая диаграмма)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Анализ длительности&amp;lt;/b&amp;gt; — средние просмотры и распределение по категориям&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Временной анализ&amp;lt;/b&amp;gt; — средние просмотры по часам и дням недели&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Облако ключевых слов&amp;lt;/b&amp;gt; (только значимые слова после фильтрации)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Анализ вовлечённости&amp;lt;/b&amp;gt; — зависимость вовлечённости от просмотров и по длительности&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 4. Создание веб-интерфейса на Flask&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Разработала веб-приложение на Flask с маршрутами:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; — главная страница с аналитикой&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/insights&amp;lt;/code&amp;gt; — JSON с ключевыми инсайтами&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/trending&amp;lt;/code&amp;gt; — JSON с трендовыми темами&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/top_videos&amp;lt;/code&amp;gt; — JSON с топ-20 видео&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/chart/&amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; — отдача PNG-графиков&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/refresh&amp;lt;/code&amp;gt; — принудительное обновление данных&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;HTML-шаблон адаптивный, отображает все графики и тренды в удобной сетке.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 5. Тестирование и отладка&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Провела тестирование на сообществе &amp;lt;code&amp;gt;https://vk.com/vkvideo&amp;lt;/code&amp;gt;. Собрано 500 видео, построены графики. Проверила фильтрацию стоп-слов — в облаке слов и трендах остались только смысловые темы (например, «кино», «сериал», «премьера», «трейлер»).&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- ИТОГОВЫЙ РЕЗУЛЬТАТ --&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #eef2f5; padding: 20px; border-radius: 15px; margin: 30px 0; text-align: center; border-left: 4px solid #3498db;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h3 style=&amp;quot;color: black;&amp;quot;&amp;gt;Итог проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
        &amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;Создан работающий инструмент для анализа видеоконтента ВКонтакте с веб-интерфейсом&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;До 500 видео анализируется &amp;amp;nbsp;|&amp;amp;nbsp; 5 типов графиков &amp;amp;nbsp;|&amp;amp;nbsp; 425 стоп-слов для фильтрации &amp;amp;nbsp;|&amp;amp;nbsp; Автоматическое определение сообщества по ссылке&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;Проект выполнен в рамках дисциплины «Работа с API социальных сетей и облачных сервисов»&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- ВЫВОДЫ --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Выводы&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;В ходе работы над проектом я:&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Научилась работать с VK API — получать токен, делать запросы с пагинацией, обрабатывать ответы, использовать &amp;lt;code&amp;gt;resolveScreenName&amp;lt;/code&amp;gt; для преобразования ссылок.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Освоила очистку текстовых данных: фильтрацию стоп-слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Создала комплексную аналитику видеоконтента: топ видео, анализ длительности, временную активность, вовлечённость, облако ключевых слов.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Разработала веб-приложение на Flask с интерактивным интерфейсом и графиками.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Поняла, как устроены современные сервисы аналитики контента, собирающие данные через открытые API.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Скриншоты проекта--&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Скриншоты проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:Работа с API]]&lt;/div&gt;</summary>
		<author><name>Sseliverstova</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:%D0%A4%D0%B0%D0%B9%D0%BB3.jpeg&amp;diff=45441</id>
		<title>Файл:Файл3.jpeg</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:%D0%A4%D0%B0%D0%B9%D0%BB3.jpeg&amp;diff=45441"/>
		<updated>2026-03-26T20:39:56Z</updated>

		<summary type="html">&lt;p&gt;Sseliverstova: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sseliverstova</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:%D0%A4%D0%B0%D0%B9%D0%BB2.jpeg&amp;diff=45440</id>
		<title>Файл:Файл2.jpeg</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:%D0%A4%D0%B0%D0%B9%D0%BB2.jpeg&amp;diff=45440"/>
		<updated>2026-03-26T20:39:37Z</updated>

		<summary type="html">&lt;p&gt;Sseliverstova: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sseliverstova</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Photo_5343610813345896916_y.jpg&amp;diff=45438</id>
		<title>Файл:Photo 5343610813345896916 y.jpg</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Photo_5343610813345896916_y.jpg&amp;diff=45438"/>
		<updated>2026-03-26T20:39:09Z</updated>

		<summary type="html">&lt;p&gt;Sseliverstova: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sseliverstova</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45437</id>
		<title>Анализ видеоконтента</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45437"/>
		<updated>2026-03-26T20:37:55Z</updated>

		<summary type="html">&lt;p&gt;Sseliverstova: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
    &amp;lt;!-- Карточка проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #f0f8ff; padding: 15px; border-radius: 10px; margin-bottom: 25px;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h2 style=&amp;quot;color: #2c3e50; border-bottom: 2px solid #3498db; padding-bottom: 8px;&amp;quot;&amp;gt;🎬 VK Video Analytics — Анализ видеоконтента&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Автор:&amp;lt;/b&amp;gt; Светлана Селиверстова &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Группа:&amp;lt;/b&amp;gt; АДЭУ-221&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Дисциплина:&amp;lt;/b&amp;gt; Работа с API социальных сетей и облачных сервисов&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Статус проекта:&amp;lt;/b&amp;gt; Выполнен&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Цель проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Цель работы&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Разработать инструмент для анализа видеоконтента из открытых источников (VK) с целью выявления актуальных тем, изучения принципов работы [[API]] и создания интерактивного веб-интерфейса для визуализации метрик.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Задачи --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Задачи&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;ol&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Изучить документацию VK API (методы &amp;lt;code&amp;gt;video.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;users.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;groups.getById&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;).&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Получить токен доступа для работы с данными.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Написать скрипт на Python для сбора до 500 видео из сообщества с пагинацией.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Реализовать фильтрацию «лишних» слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Построить графики: топ-10 видео, анализ длительности, временная активность, облако ключевых слов, вовлечённость.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Создать веб-интерфейс на Flask для отображения аналитики в браузере (localhost).&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Оформить результаты в виде отчёта.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Планируемый стек технологий --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Технологии&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Языки:&amp;lt;/b&amp;gt; Python, JavaScript, HTML/CSS&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Библиотеки Python:&amp;lt;/b&amp;gt; requests, pandas, matplotlib, seaborn, wordcloud, flask&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;API:&amp;lt;/b&amp;gt; VK API (видео, пользователи, группы, разрешение имён)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Визуализация:&amp;lt;/b&amp;gt; Matplotlib, Seaborn, WordCloud&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Веб-фреймворк:&amp;lt;/b&amp;gt; Flask&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Диаграмма работы приложения --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Диаграмма работы приложения «VK Video Analytics»&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:&lt;br /&gt;
flowchart TB&lt;br /&gt;
    A[Пользователь вводит ссылку на сообщество] --&amp;gt; B(Flask получает COMMUNITY_INPUT)&lt;br /&gt;
    B --&amp;gt; C{VK API: utils.resolveScreenName}&lt;br /&gt;
    C --&amp;gt;|Сообщество найдено| D[Получен числовой ID сообщества]&lt;br /&gt;
    C --&amp;gt;|Не найдено| E[Ошибка: сообщество не существует]&lt;br /&gt;
    D --&amp;gt; F[VK API: video.get с пагинацией]&lt;br /&gt;
    F --&amp;gt; G{Видео получены?}&lt;br /&gt;
    G --&amp;gt;|Нет| H[Ошибка: нет видео]&lt;br /&gt;
    G --&amp;gt;|Да| I[Сбор информации об авторах&amp;lt;br&amp;gt;users.get / groups.getById]&lt;br /&gt;
    I --&amp;gt; J[Создание DataFrame pandas&amp;lt;br&amp;gt;расчёт метрик: просмотры, вовлечённость]&lt;br /&gt;
    J --&amp;gt; K[Очистка текста названий]&lt;br /&gt;
    K --&amp;gt; L[Фильтрация стоп-слов&amp;lt;br&amp;gt;местоимения, глаголы, вводные]&lt;br /&gt;
    L --&amp;gt; M[Анализ и построение графиков]&lt;br /&gt;
    M --&amp;gt; N[Сохранение результатов&amp;lt;br&amp;gt;CSV, PNG, JSON]&lt;br /&gt;
    N --&amp;gt; O[Flask рендерит HTML-страницу]&lt;br /&gt;
    O --&amp;gt; P[Браузер отображает аналитику&amp;lt;br&amp;gt;графики + трендовые темы]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Структура проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Структура проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;pre style=&amp;quot;background: #2d2d2d; color: #f8f8f2; padding: 15px; border-radius: 10px; overflow-x: auto;&amp;quot;&amp;gt;&lt;br /&gt;
vk_video_analytics/&lt;br /&gt;
├── config.py                 # настройки: токен, ссылка, лимиты&lt;br /&gt;
├── vk_api_client.py          # работа с VK API (пагинация, resolveScreenName)&lt;br /&gt;
├── analyzer.py               # аналитика: DataFrame, стоп-слова, тренды&lt;br /&gt;
├── visualizer.py             # построение графиков (matplotlib, wordcloud)&lt;br /&gt;
├── app.py                    # веб-сервер Flask&lt;br /&gt;
├── templates/&lt;br /&gt;
│   └── index.html            # HTML-шаблон с графиками и трендами&lt;br /&gt;
├── results/                  # папка с результатами (создаётся автоматически)&lt;br /&gt;
│   ├── videos_data.csv       # все собранные данные&lt;br /&gt;
│   ├── *.png                 # графики&lt;br /&gt;
│   └── *.json                # инсайты и тренды&lt;br /&gt;
└── requirements.txt          # зависимости&lt;br /&gt;
    &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Ход работы над проектом --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Ход работы над проектом&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #f9f9f9; border-radius: 10px; padding: 20px; margin: 20px 0;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 1. Написание Python-скрипта для сбора данных&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Установила необходимые библиотеки:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;pre style=&amp;quot;background: #2d2d2d; color: #f8f8f2; padding: 10px; border-radius: 5px;&amp;quot;&amp;gt;pip install requests pandas matplotlib seaborn wordcloud flask&amp;lt;/pre&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Написала клиент для VK API с поддержкой:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Преобразования ссылки в ID через &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Пагинации для получения до 500 видео&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Сбора информации об авторах (пользователи и группы)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Результат:&amp;lt;/b&amp;gt; собран DataFrame с полями: &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;views&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;duration&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;engagement&amp;lt;/code&amp;gt; и др.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 2. Реализация фильтрации «лишних» слов&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Создала список стоп-слов, включающий:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Местоимения (твой, мой, его, их, я, ты, мы)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Глаголы (быть, сказать, делать, хотеть, любить, идти, работать)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Вводные конструкции (кстати, наверное, конечно, по-моему)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Частицы, предлоги, союзы (в, на, и, а, но, или)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Общие слова (самый, хороший, новый, легко, сейчас)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;При построении облака слов и поиске трендовых тем эти слова исключаются, остаются только смысловые ключевые слова.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 3. Создание графиков и визуализации&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Реализовала модуль визуализации, который строит:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Топ-10 видео по просмотрам&amp;lt;/b&amp;gt; (горизонтальная столбчатая диаграмма)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Анализ длительности&amp;lt;/b&amp;gt; — средние просмотры и распределение по категориям&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Временной анализ&amp;lt;/b&amp;gt; — средние просмотры по часам и дням недели&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Облако ключевых слов&amp;lt;/b&amp;gt; (только значимые слова после фильтрации)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Анализ вовлечённости&amp;lt;/b&amp;gt; — зависимость вовлечённости от просмотров и по длительности&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 4. Создание веб-интерфейса на Flask&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Разработала веб-приложение на Flask с маршрутами:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; — главная страница с аналитикой&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/insights&amp;lt;/code&amp;gt; — JSON с ключевыми инсайтами&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/trending&amp;lt;/code&amp;gt; — JSON с трендовыми темами&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/top_videos&amp;lt;/code&amp;gt; — JSON с топ-20 видео&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/chart/&amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; — отдача PNG-графиков&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/refresh&amp;lt;/code&amp;gt; — принудительное обновление данных&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;HTML-шаблон адаптивный, отображает все графики и тренды в удобной сетке.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 5. Тестирование и отладка&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Провела тестирование на сообществе &amp;lt;code&amp;gt;https://vk.com/vkvideo&amp;lt;/code&amp;gt;. Собрано 500 видео, построены графики. Проверила фильтрацию стоп-слов — в облаке слов и трендах остались только смысловые темы (например, «кино», «сериал», «премьера», «трейлер»).&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- ИТОГОВЫЙ РЕЗУЛЬТАТ --&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #eef2f5; padding: 20px; border-radius: 15px; margin: 30px 0; text-align: center; border-left: 4px solid #3498db;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h3 style=&amp;quot;color: black;&amp;quot;&amp;gt;Итог проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
        &amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;Создан работающий инструмент для анализа видеоконтента ВКонтакте с веб-интерфейсом&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;До 500 видео анализируется &amp;amp;nbsp;|&amp;amp;nbsp; 5 типов графиков &amp;amp;nbsp;|&amp;amp;nbsp; 425 стоп-слов для фильтрации &amp;amp;nbsp;|&amp;amp;nbsp; Автоматическое определение сообщества по ссылке&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;Проект выполнен в рамках дисциплины «Работа с API социальных сетей и облачных сервисов»&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- ВЫВОДЫ --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Выводы&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;В ходе работы над проектом я:&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Научилась работать с VK API — получать токен, делать запросы с пагинацией, обрабатывать ответы, использовать &amp;lt;code&amp;gt;resolveScreenName&amp;lt;/code&amp;gt; для преобразования ссылок.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Освоила очистку текстовых данных: фильтрацию стоп-слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Создала комплексную аналитику видеоконтента: топ видео, анализ длительности, временную активность, вовлечённость, облако ключевых слов.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Разработала веб-приложение на Flask с интерактивным интерфейсом и графиками.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Поняла, как устроены современные сервисы аналитики контента, собирающие данные через открытые API.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Скриншоты проекта--&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Скриншоты проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:Работа с API]]&lt;/div&gt;</summary>
		<author><name>Sseliverstova</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45423</id>
		<title>Анализ видеоконтента</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45423"/>
		<updated>2026-03-26T20:24:23Z</updated>

		<summary type="html">&lt;p&gt;Sseliverstova: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
    &amp;lt;!-- Карточка проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #f0f8ff; padding: 15px; border-radius: 10px; margin-bottom: 25px;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h2 style=&amp;quot;color: #2c3e50; border-bottom: 2px solid #3498db; padding-bottom: 8px;&amp;quot;&amp;gt;🎬 VK Video Analytics — Анализ видеоконтента&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Автор:&amp;lt;/b&amp;gt; Светлана Селиверстова &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Группа:&amp;lt;/b&amp;gt; АДЭУ-221&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Дисциплина:&amp;lt;/b&amp;gt; Работа с API социальных сетей и облачных сервисов&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Статус проекта:&amp;lt;/b&amp;gt; Выполнен&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Цель проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Цель работы&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Разработать инструмент для анализа видеоконтента из открытых источников (VK) с целью выявления актуальных тем, изучения принципов работы [[API]] и создания интерактивного веб-интерфейса для визуализации метрик.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Задачи --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Задачи&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;ol&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Изучить документацию VK API (методы &amp;lt;code&amp;gt;video.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;users.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;groups.getById&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;).&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Получить токен доступа для работы с данными.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Написать скрипт на Python для сбора до 500 видео из сообщества с пагинацией.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Реализовать фильтрацию «лишних» слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Построить графики: топ-10 видео, анализ длительности, временная активность, облако ключевых слов, вовлечённость.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Создать веб-интерфейс на Flask для отображения аналитики в браузере (localhost).&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Оформить результаты в виде отчёта.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Планируемый стек технологий --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Технологии&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Языки:&amp;lt;/b&amp;gt; Python, JavaScript, HTML/CSS&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Библиотеки Python:&amp;lt;/b&amp;gt; requests, pandas, matplotlib, seaborn, wordcloud, flask&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;API:&amp;lt;/b&amp;gt; VK API (видео, пользователи, группы, разрешение имён)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Визуализация:&amp;lt;/b&amp;gt; Matplotlib, Seaborn, WordCloud&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Веб-фреймворк:&amp;lt;/b&amp;gt; Flask&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Диаграмма работы приложения --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Диаграмма работы приложения «VK Video Analytics»&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:&lt;br /&gt;
flowchart TB&lt;br /&gt;
    A[Пользователь вводит ссылку на сообщество] --&amp;gt; B(Flask получает COMMUNITY_INPUT)&lt;br /&gt;
    B --&amp;gt; C{VK API: utils.resolveScreenName}&lt;br /&gt;
    C --&amp;gt;|Сообщество найдено| D[Получен числовой ID сообщества]&lt;br /&gt;
    C --&amp;gt;|Не найдено| E[Ошибка: сообщество не существует]&lt;br /&gt;
    D --&amp;gt; F[VK API: video.get с пагинацией]&lt;br /&gt;
    F --&amp;gt; G{Видео получены?}&lt;br /&gt;
    G --&amp;gt;|Нет| H[Ошибка: нет видео]&lt;br /&gt;
    G --&amp;gt;|Да| I[Сбор информации об авторах&amp;lt;br&amp;gt;users.get / groups.getById]&lt;br /&gt;
    I --&amp;gt; J[Создание DataFrame pandas&amp;lt;br&amp;gt;расчёт метрик: просмотры, вовлечённость]&lt;br /&gt;
    J --&amp;gt; K[Очистка текста названий]&lt;br /&gt;
    K --&amp;gt; L[Фильтрация стоп-слов&amp;lt;br&amp;gt;местоимения, глаголы, вводные]&lt;br /&gt;
    L --&amp;gt; M[Анализ и построение графиков]&lt;br /&gt;
    M --&amp;gt; N[Сохранение результатов&amp;lt;br&amp;gt;CSV, PNG, JSON]&lt;br /&gt;
    N --&amp;gt; O[Flask рендерит HTML-страницу]&lt;br /&gt;
    O --&amp;gt; P[Браузер отображает аналитику&amp;lt;br&amp;gt;графики + трендовые темы]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Структура проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Структура проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;pre style=&amp;quot;background: #2d2d2d; color: #f8f8f2; padding: 15px; border-radius: 10px; overflow-x: auto;&amp;quot;&amp;gt;&lt;br /&gt;
vk_video_analytics/&lt;br /&gt;
├── config.py                 # настройки: токен, ссылка, лимиты&lt;br /&gt;
├── vk_api_client.py          # работа с VK API (пагинация, resolveScreenName)&lt;br /&gt;
├── analyzer.py               # аналитика: DataFrame, стоп-слова, тренды&lt;br /&gt;
├── visualizer.py             # построение графиков (matplotlib, wordcloud)&lt;br /&gt;
├── app.py                    # веб-сервер Flask&lt;br /&gt;
├── templates/&lt;br /&gt;
│   └── index.html            # HTML-шаблон с графиками и трендами&lt;br /&gt;
├── results/                  # папка с результатами (создаётся автоматически)&lt;br /&gt;
│   ├── videos_data.csv       # все собранные данные&lt;br /&gt;
│   ├── *.png                 # графики&lt;br /&gt;
│   └── *.json                # инсайты и тренды&lt;br /&gt;
└── requirements.txt          # зависимости&lt;br /&gt;
    &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Ход работы над проектом --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Ход работы над проектом&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #f9f9f9; border-radius: 10px; padding: 20px; margin: 20px 0;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 1. Написание Python-скрипта для сбора данных&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Установила необходимые библиотеки:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;pre style=&amp;quot;background: #2d2d2d; color: #f8f8f2; padding: 10px; border-radius: 5px;&amp;quot;&amp;gt;pip install requests pandas matplotlib seaborn wordcloud flask&amp;lt;/pre&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Написала клиент для VK API с поддержкой:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Преобразования ссылки в ID через &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Пагинации для получения до 500 видео&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Сбора информации об авторах (пользователи и группы)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Результат:&amp;lt;/b&amp;gt; собран DataFrame с полями: &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;views&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;duration&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;engagement&amp;lt;/code&amp;gt; и др.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 2. Реализация фильтрации «лишних» слов&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Создала список стоп-слов, включающий:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Местоимения (твой, мой, его, их, я, ты, мы)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Глаголы (быть, сказать, делать, хотеть, любить, идти, работать)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Вводные конструкции (кстати, наверное, конечно, по-моему)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Частицы, предлоги, союзы (в, на, и, а, но, или)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Общие слова (самый, хороший, новый, легко, сейчас)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;При построении облака слов и поиске трендовых тем эти слова исключаются, остаются только смысловые ключевые слова.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 3. Создание графиков и визуализации&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Реализовала модуль визуализации, который строит:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Топ-10 видео по просмотрам&amp;lt;/b&amp;gt; (горизонтальная столбчатая диаграмма)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Анализ длительности&amp;lt;/b&amp;gt; — средние просмотры и распределение по категориям&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Временной анализ&amp;lt;/b&amp;gt; — средние просмотры по часам и дням недели&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Облако ключевых слов&amp;lt;/b&amp;gt; (только значимые слова после фильтрации)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Анализ вовлечённости&amp;lt;/b&amp;gt; — зависимость вовлечённости от просмотров и по длительности&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 4. Создание веб-интерфейса на Flask&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Разработала веб-приложение на Flask с маршрутами:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; — главная страница с аналитикой&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/insights&amp;lt;/code&amp;gt; — JSON с ключевыми инсайтами&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/trending&amp;lt;/code&amp;gt; — JSON с трендовыми темами&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/top_videos&amp;lt;/code&amp;gt; — JSON с топ-20 видео&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/chart/&amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; — отдача PNG-графиков&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/refresh&amp;lt;/code&amp;gt; — принудительное обновление данных&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;HTML-шаблон адаптивный, отображает все графики и тренды в удобной сетке.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 5. Тестирование и отладка&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Провела тестирование на сообществе &amp;lt;code&amp;gt;https://vk.com/vkvideo&amp;lt;/code&amp;gt;. Собрано 500 видео, построены графики. Проверила фильтрацию стоп-слов — в облаке слов и трендах остались только смысловые темы (например, «кино», «сериал», «премьера», «трейлер»).&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- ИТОГОВЫЙ РЕЗУЛЬТАТ --&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #eef2f5; padding: 20px; border-radius: 15px; margin: 30px 0; text-align: center; border-left: 4px solid #3498db;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h3 style=&amp;quot;color: black;&amp;quot;&amp;gt;Итог проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
        &amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;Создан работающий инструмент для анализа видеоконтента ВКонтакте с веб-интерфейсом&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;До 500 видео анализируется &amp;amp;nbsp;|&amp;amp;nbsp; 5 типов графиков &amp;amp;nbsp;|&amp;amp;nbsp; 425 стоп-слов для фильтрации &amp;amp;nbsp;|&amp;amp;nbsp; Автоматическое определение сообщества по ссылке&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;Проект выполнен в рамках дисциплины «Работа с API социальных сетей и облачных сервисов»&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- ВЫВОДЫ --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Выводы&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;В ходе работы над проектом я:&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Научилась работать с VK API — получать токен, делать запросы с пагинацией, обрабатывать ответы, использовать &amp;lt;code&amp;gt;resolveScreenName&amp;lt;/code&amp;gt; для преобразования ссылок.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Освоила очистку текстовых данных: фильтрацию стоп-слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Создала комплексную аналитику видеоконтента: топ видео, анализ длительности, временную активность, вовлечённость, облако ключевых слов.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Разработала веб-приложение на Flask с интерактивным интерфейсом и графиками.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Поняла, как устроены современные сервисы аналитики контента, собирающие данные через открытые API.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:Работа с API]]&lt;/div&gt;</summary>
		<author><name>Sseliverstova</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45422</id>
		<title>Анализ видеоконтента</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45422"/>
		<updated>2026-03-26T20:24:08Z</updated>

		<summary type="html">&lt;p&gt;Sseliverstova: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Понятие}}&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family: Arial, sans-serif; max-width: 900px; margin: 0 auto; padding: 20px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Карточка проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #f0f8ff; padding: 15px; border-radius: 10px; margin-bottom: 25px;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h2 style=&amp;quot;color: #2c3e50; border-bottom: 2px solid #3498db; padding-bottom: 8px;&amp;quot;&amp;gt;🎬 VK Video Analytics — Анализ видеоконтента&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Автор:&amp;lt;/b&amp;gt; Светлана Селиверстова &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Группа:&amp;lt;/b&amp;gt; АДЭУ-221&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Дисциплина:&amp;lt;/b&amp;gt; Работа с API социальных сетей и облачных сервисов&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Статус проекта:&amp;lt;/b&amp;gt; Выполнен&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Цель проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Цель работы&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Разработать инструмент для анализа видеоконтента из открытых источников (VK) с целью выявления актуальных тем, изучения принципов работы [[API]] и создания интерактивного веб-интерфейса для визуализации метрик.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Задачи --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Задачи&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;ol&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Изучить документацию VK API (методы &amp;lt;code&amp;gt;video.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;users.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;groups.getById&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;).&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Получить токен доступа для работы с данными.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Написать скрипт на Python для сбора до 500 видео из сообщества с пагинацией.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Реализовать фильтрацию «лишних» слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Построить графики: топ-10 видео, анализ длительности, временная активность, облако ключевых слов, вовлечённость.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Создать веб-интерфейс на Flask для отображения аналитики в браузере (localhost).&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Оформить результаты в виде отчёта.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Планируемый стек технологий --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Технологии&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Языки:&amp;lt;/b&amp;gt; Python, JavaScript, HTML/CSS&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Библиотеки Python:&amp;lt;/b&amp;gt; requests, pandas, matplotlib, seaborn, wordcloud, flask&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;API:&amp;lt;/b&amp;gt; VK API (видео, пользователи, группы, разрешение имён)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Визуализация:&amp;lt;/b&amp;gt; Matplotlib, Seaborn, WordCloud&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Веб-фреймворк:&amp;lt;/b&amp;gt; Flask&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Диаграмма работы приложения --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Диаграмма работы приложения «VK Video Analytics»&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:&lt;br /&gt;
flowchart TB&lt;br /&gt;
    A[Пользователь вводит ссылку на сообщество] --&amp;gt; B(Flask получает COMMUNITY_INPUT)&lt;br /&gt;
    B --&amp;gt; C{VK API: utils.resolveScreenName}&lt;br /&gt;
    C --&amp;gt;|Сообщество найдено| D[Получен числовой ID сообщества]&lt;br /&gt;
    C --&amp;gt;|Не найдено| E[Ошибка: сообщество не существует]&lt;br /&gt;
    D --&amp;gt; F[VK API: video.get с пагинацией]&lt;br /&gt;
    F --&amp;gt; G{Видео получены?}&lt;br /&gt;
    G --&amp;gt;|Нет| H[Ошибка: нет видео]&lt;br /&gt;
    G --&amp;gt;|Да| I[Сбор информации об авторах&amp;lt;br&amp;gt;users.get / groups.getById]&lt;br /&gt;
    I --&amp;gt; J[Создание DataFrame pandas&amp;lt;br&amp;gt;расчёт метрик: просмотры, вовлечённость]&lt;br /&gt;
    J --&amp;gt; K[Очистка текста названий]&lt;br /&gt;
    K --&amp;gt; L[Фильтрация стоп-слов&amp;lt;br&amp;gt;местоимения, глаголы, вводные]&lt;br /&gt;
    L --&amp;gt; M[Анализ и построение графиков]&lt;br /&gt;
    M --&amp;gt; N[Сохранение результатов&amp;lt;br&amp;gt;CSV, PNG, JSON]&lt;br /&gt;
    N --&amp;gt; O[Flask рендерит HTML-страницу]&lt;br /&gt;
    O --&amp;gt; P[Браузер отображает аналитику&amp;lt;br&amp;gt;графики + трендовые темы]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Структура проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Структура проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;pre style=&amp;quot;background: #2d2d2d; color: #f8f8f2; padding: 15px; border-radius: 10px; overflow-x: auto;&amp;quot;&amp;gt;&lt;br /&gt;
vk_video_analytics/&lt;br /&gt;
├── config.py                 # настройки: токен, ссылка, лимиты&lt;br /&gt;
├── vk_api_client.py          # работа с VK API (пагинация, resolveScreenName)&lt;br /&gt;
├── analyzer.py               # аналитика: DataFrame, стоп-слова, тренды&lt;br /&gt;
├── visualizer.py             # построение графиков (matplotlib, wordcloud)&lt;br /&gt;
├── app.py                    # веб-сервер Flask&lt;br /&gt;
├── templates/&lt;br /&gt;
│   └── index.html            # HTML-шаблон с графиками и трендами&lt;br /&gt;
├── results/                  # папка с результатами (создаётся автоматически)&lt;br /&gt;
│   ├── videos_data.csv       # все собранные данные&lt;br /&gt;
│   ├── *.png                 # графики&lt;br /&gt;
│   └── *.json                # инсайты и тренды&lt;br /&gt;
└── requirements.txt          # зависимости&lt;br /&gt;
    &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Ход работы над проектом --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Ход работы над проектом&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #f9f9f9; border-radius: 10px; padding: 20px; margin: 20px 0;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 1. Написание Python-скрипта для сбора данных&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Установила необходимые библиотеки:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;pre style=&amp;quot;background: #2d2d2d; color: #f8f8f2; padding: 10px; border-radius: 5px;&amp;quot;&amp;gt;pip install requests pandas matplotlib seaborn wordcloud flask&amp;lt;/pre&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Написала клиент для VK API с поддержкой:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Преобразования ссылки в ID через &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Пагинации для получения до 500 видео&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Сбора информации об авторах (пользователи и группы)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Результат:&amp;lt;/b&amp;gt; собран DataFrame с полями: &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;views&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;duration&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;engagement&amp;lt;/code&amp;gt; и др.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 2. Реализация фильтрации «лишних» слов&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Создала список стоп-слов, включающий:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Местоимения (твой, мой, его, их, я, ты, мы)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Глаголы (быть, сказать, делать, хотеть, любить, идти, работать)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Вводные конструкции (кстати, наверное, конечно, по-моему)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Частицы, предлоги, союзы (в, на, и, а, но, или)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Общие слова (самый, хороший, новый, легко, сейчас)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;При построении облака слов и поиске трендовых тем эти слова исключаются, остаются только смысловые ключевые слова.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 3. Создание графиков и визуализации&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Реализовала модуль визуализации, который строит:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Топ-10 видео по просмотрам&amp;lt;/b&amp;gt; (горизонтальная столбчатая диаграмма)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Анализ длительности&amp;lt;/b&amp;gt; — средние просмотры и распределение по категориям&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Временной анализ&amp;lt;/b&amp;gt; — средние просмотры по часам и дням недели&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Облако ключевых слов&amp;lt;/b&amp;gt; (только значимые слова после фильтрации)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Анализ вовлечённости&amp;lt;/b&amp;gt; — зависимость вовлечённости от просмотров и по длительности&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 4. Создание веб-интерфейса на Flask&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Разработала веб-приложение на Flask с маршрутами:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; — главная страница с аналитикой&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/insights&amp;lt;/code&amp;gt; — JSON с ключевыми инсайтами&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/trending&amp;lt;/code&amp;gt; — JSON с трендовыми темами&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/top_videos&amp;lt;/code&amp;gt; — JSON с топ-20 видео&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/chart/&amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; — отдача PNG-графиков&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/refresh&amp;lt;/code&amp;gt; — принудительное обновление данных&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;HTML-шаблон адаптивный, отображает все графики и тренды в удобной сетке.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 5. Тестирование и отладка&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Провела тестирование на сообществе &amp;lt;code&amp;gt;https://vk.com/vkvideo&amp;lt;/code&amp;gt;. Собрано 500 видео, построены графики. Проверила фильтрацию стоп-слов — в облаке слов и трендах остались только смысловые темы (например, «кино», «сериал», «премьера», «трейлер»).&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- ИТОГОВЫЙ РЕЗУЛЬТАТ --&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #eef2f5; padding: 20px; border-radius: 15px; margin: 30px 0; text-align: center; border-left: 4px solid #3498db;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h3 style=&amp;quot;color: black;&amp;quot;&amp;gt;Итог проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
        &amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;Создан работающий инструмент для анализа видеоконтента ВКонтакте с веб-интерфейсом&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;До 500 видео анализируется &amp;amp;nbsp;|&amp;amp;nbsp; 5 типов графиков &amp;amp;nbsp;|&amp;amp;nbsp; 425 стоп-слов для фильтрации &amp;amp;nbsp;|&amp;amp;nbsp; Автоматическое определение сообщества по ссылке&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;Проект выполнен в рамках дисциплины «Работа с API социальных сетей и облачных сервисов»&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- ВЫВОДЫ --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Выводы&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;В ходе работы над проектом я:&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Научилась работать с VK API — получать токен, делать запросы с пагинацией, обрабатывать ответы, использовать &amp;lt;code&amp;gt;resolveScreenName&amp;lt;/code&amp;gt; для преобразования ссылок.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Освоила очистку текстовых данных: фильтрацию стоп-слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Создала комплексную аналитику видеоконтента: топ видео, анализ длительности, временную активность, вовлечённость, облако ключевых слов.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Разработала веб-приложение на Flask с интерактивным интерфейсом и графиками.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Поняла, как устроены современные сервисы аналитики контента, собирающие данные через открытые API.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:Работа с API]]&lt;/div&gt;</summary>
		<author><name>Sseliverstova</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45419</id>
		<title>Анализ видеоконтента</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45419"/>
		<updated>2026-03-26T20:23:29Z</updated>

		<summary type="html">&lt;p&gt;Sseliverstova: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;font-family: Arial, sans-serif; max-width: 900px; margin: 0 auto; padding: 20px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Карточка проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #f0f8ff; padding: 15px; border-radius: 10px; margin-bottom: 25px;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h2 style=&amp;quot;color: #2c3e50; border-bottom: 2px solid #3498db; padding-bottom: 8px;&amp;quot;&amp;gt;🎬 VK Video Analytics — Анализ видеоконтента&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Автор:&amp;lt;/b&amp;gt; Светлана Селиверстова &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Группа:&amp;lt;/b&amp;gt; АДЭУ-221&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Дисциплина:&amp;lt;/b&amp;gt; Работа с API социальных сетей и облачных сервисов&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Статус проекта:&amp;lt;/b&amp;gt; Выполнен&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Цель проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Цель работы&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Разработать инструмент для анализа видеоконтента из открытых источников (VK) с целью выявления актуальных тем, изучения принципов работы [[API]] и создания интерактивного веб-интерфейса для визуализации метрик.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Задачи --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Задачи&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;ol&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Изучить документацию VK API (методы &amp;lt;code&amp;gt;video.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;users.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;groups.getById&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;).&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Получить токен доступа для работы с данными.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Написать скрипт на Python для сбора до 500 видео из сообщества с пагинацией.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Реализовать фильтрацию «лишних» слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Построить графики: топ-10 видео, анализ длительности, временная активность, облако ключевых слов, вовлечённость.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Создать веб-интерфейс на Flask для отображения аналитики в браузере (localhost).&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Оформить результаты в виде отчёта.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Планируемый стек технологий --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Технологии&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Языки:&amp;lt;/b&amp;gt; Python, JavaScript, HTML/CSS&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Библиотеки Python:&amp;lt;/b&amp;gt; requests, pandas, matplotlib, seaborn, wordcloud, flask&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;API:&amp;lt;/b&amp;gt; VK API (видео, пользователи, группы, разрешение имён)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Визуализация:&amp;lt;/b&amp;gt; Matplotlib, Seaborn, WordCloud&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Веб-фреймворк:&amp;lt;/b&amp;gt; Flask&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Диаграмма работы приложения --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Диаграмма работы приложения «VK Video Analytics»&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:&lt;br /&gt;
flowchart TB&lt;br /&gt;
    A[Пользователь вводит ссылку на сообщество] --&amp;gt; B(Flask получает COMMUNITY_INPUT)&lt;br /&gt;
    B --&amp;gt; C{VK API: utils.resolveScreenName}&lt;br /&gt;
    C --&amp;gt;|Сообщество найдено| D[Получен числовой ID сообщества]&lt;br /&gt;
    C --&amp;gt;|Не найдено| E[Ошибка: сообщество не существует]&lt;br /&gt;
    D --&amp;gt; F[VK API: video.get с пагинацией]&lt;br /&gt;
    F --&amp;gt; G{Видео получены?}&lt;br /&gt;
    G --&amp;gt;|Нет| H[Ошибка: нет видео]&lt;br /&gt;
    G --&amp;gt;|Да| I[Сбор информации об авторах&amp;lt;br&amp;gt;users.get / groups.getById]&lt;br /&gt;
    I --&amp;gt; J[Создание DataFrame pandas&amp;lt;br&amp;gt;расчёт метрик: просмотры, вовлечённость]&lt;br /&gt;
    J --&amp;gt; K[Очистка текста названий]&lt;br /&gt;
    K --&amp;gt; L[Фильтрация стоп-слов&amp;lt;br&amp;gt;местоимения, глаголы, вводные]&lt;br /&gt;
    L --&amp;gt; M[Анализ и построение графиков]&lt;br /&gt;
    M --&amp;gt; N[Сохранение результатов&amp;lt;br&amp;gt;CSV, PNG, JSON]&lt;br /&gt;
    N --&amp;gt; O[Flask рендерит HTML-страницу]&lt;br /&gt;
    O --&amp;gt; P[Браузер отображает аналитику&amp;lt;br&amp;gt;графики + трендовые темы]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Структура проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Структура проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;pre style=&amp;quot;background: #2d2d2d; color: #f8f8f2; padding: 15px; border-radius: 10px; overflow-x: auto;&amp;quot;&amp;gt;&lt;br /&gt;
vk_video_analytics/&lt;br /&gt;
├── config.py                 # настройки: токен, ссылка, лимиты&lt;br /&gt;
├── vk_api_client.py          # работа с VK API (пагинация, resolveScreenName)&lt;br /&gt;
├── analyzer.py               # аналитика: DataFrame, стоп-слова, тренды&lt;br /&gt;
├── visualizer.py             # построение графиков (matplotlib, wordcloud)&lt;br /&gt;
├── app.py                    # веб-сервер Flask&lt;br /&gt;
├── templates/&lt;br /&gt;
│   └── index.html            # HTML-шаблон с графиками и трендами&lt;br /&gt;
├── results/                  # папка с результатами (создаётся автоматически)&lt;br /&gt;
│   ├── videos_data.csv       # все собранные данные&lt;br /&gt;
│   ├── *.png                 # графики&lt;br /&gt;
│   └── *.json                # инсайты и тренды&lt;br /&gt;
└── requirements.txt          # зависимости&lt;br /&gt;
    &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Ход работы над проектом --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Ход работы над проектом&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #f9f9f9; border-radius: 10px; padding: 20px; margin: 20px 0;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 1. Написание Python-скрипта для сбора данных&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Установила необходимые библиотеки:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;pre style=&amp;quot;background: #2d2d2d; color: #f8f8f2; padding: 10px; border-radius: 5px;&amp;quot;&amp;gt;pip install requests pandas matplotlib seaborn wordcloud flask&amp;lt;/pre&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Написала клиент для VK API с поддержкой:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Преобразования ссылки в ID через &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Пагинации для получения до 500 видео&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Сбора информации об авторах (пользователи и группы)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Результат:&amp;lt;/b&amp;gt; собран DataFrame с полями: &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;views&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;duration&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;engagement&amp;lt;/code&amp;gt; и др.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 2. Реализация фильтрации «лишних» слов&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Создала список стоп-слов, включающий:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Местоимения (твой, мой, его, их, я, ты, мы)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Глаголы (быть, сказать, делать, хотеть, любить, идти, работать)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Вводные конструкции (кстати, наверное, конечно, по-моему)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Частицы, предлоги, союзы (в, на, и, а, но, или)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Общие слова (самый, хороший, новый, легко, сейчас)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;При построении облака слов и поиске трендовых тем эти слова исключаются, остаются только смысловые ключевые слова.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 3. Создание графиков и визуализации&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Реализовала модуль визуализации, который строит:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Топ-10 видео по просмотрам&amp;lt;/b&amp;gt; (горизонтальная столбчатая диаграмма)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Анализ длительности&amp;lt;/b&amp;gt; — средние просмотры и распределение по категориям&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Временной анализ&amp;lt;/b&amp;gt; — средние просмотры по часам и дням недели&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Облако ключевых слов&amp;lt;/b&amp;gt; (только значимые слова после фильтрации)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Анализ вовлечённости&amp;lt;/b&amp;gt; — зависимость вовлечённости от просмотров и по длительности&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 4. Создание веб-интерфейса на Flask&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Разработала веб-приложение на Flask с маршрутами:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; — главная страница с аналитикой&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/insights&amp;lt;/code&amp;gt; — JSON с ключевыми инсайтами&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/trending&amp;lt;/code&amp;gt; — JSON с трендовыми темами&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/top_videos&amp;lt;/code&amp;gt; — JSON с топ-20 видео&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/chart/&amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; — отдача PNG-графиков&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/refresh&amp;lt;/code&amp;gt; — принудительное обновление данных&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;HTML-шаблон адаптивный, отображает все графики и тренды в удобной сетке.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 5. Тестирование и отладка&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Провела тестирование на сообществе &amp;lt;code&amp;gt;https://vk.com/vkvideo&amp;lt;/code&amp;gt;. Собрано 500 видео, построены графики. Проверила фильтрацию стоп-слов — в облаке слов и трендах остались только смысловые темы (например, «кино», «сериал», «премьера», «трейлер»).&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- ИТОГОВЫЙ РЕЗУЛЬТАТ --&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #eef2f5; padding: 20px; border-radius: 15px; margin: 30px 0; text-align: center; border-left: 4px solid #3498db;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h3 style=&amp;quot;color: black;&amp;quot;&amp;gt;Итог проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
        &amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;Создан работающий инструмент для анализа видеоконтента ВКонтакте с веб-интерфейсом&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;До 500 видео анализируется &amp;amp;nbsp;|&amp;amp;nbsp; 5 типов графиков &amp;amp;nbsp;|&amp;amp;nbsp; 425 стоп-слов для фильтрации &amp;amp;nbsp;|&amp;amp;nbsp; Автоматическое определение сообщества по ссылке&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;Проект выполнен в рамках дисциплины «Работа с API социальных сетей и облачных сервисов»&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- ВЫВОДЫ --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Выводы&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;В ходе работы над проектом я:&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Научилась работать с VK API — получать токен, делать запросы с пагинацией, обрабатывать ответы, использовать &amp;lt;code&amp;gt;resolveScreenName&amp;lt;/code&amp;gt; для преобразования ссылок.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Освоила очистку текстовых данных: фильтрацию стоп-слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Создала комплексную аналитику видеоконтента: топ видео, анализ длительности, временную активность, вовлечённость, облако ключевых слов.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Разработала веб-приложение на Flask с интерактивным интерфейсом и графиками.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Поняла, как устроены современные сервисы аналитики контента, собирающие данные через открытые API.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:Работа с API]]&lt;/div&gt;</summary>
		<author><name>Sseliverstova</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45418</id>
		<title>Анализ видеоконтента</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45418"/>
		<updated>2026-03-26T20:22:41Z</updated>

		<summary type="html">&lt;p&gt;Sseliverstova: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;font-family: Arial, sans-serif; max-width: 900px; margin: 0 auto; padding: 20px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Карточка проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #f0f8ff; padding: 15px; border-radius: 10px; margin-bottom: 25px;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h2 style=&amp;quot;color: #2c3e50; border-bottom: 2px solid #3498db; padding-bottom: 8px;&amp;quot;&amp;gt;🎬 VK Video Analytics — Анализ видеоконтента&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Автор:&amp;lt;/b&amp;gt; Светлана Селиверстова &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Группа:&amp;lt;/b&amp;gt; АДЭУ-221&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Дисциплина:&amp;lt;/b&amp;gt; Работа с API социальных сетей и облачных сервисов&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Статус проекта:&amp;lt;/b&amp;gt; Выполнен&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Цель проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Цель работы&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Разработать инструмент для анализа видеоконтента из открытых источников (VK) с целью выявления актуальных тем, изучения принципов работы [[API]] и создания интерактивного веб-интерфейса для визуализации метрик.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Задачи --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Задачи&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;ol&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Изучить документацию VK API (методы &amp;lt;code&amp;gt;video.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;users.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;groups.getById&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;).&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Получить токен доступа для работы с данными.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Написать скрипт на Python для сбора до 500 видео из сообщества с пагинацией.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Реализовать фильтрацию «лишних» слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Построить графики: топ-10 видео, анализ длительности, временная активность, облако ключевых слов, вовлечённость.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Создать веб-интерфейс на Flask для отображения аналитики в браузере (localhost).&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Оформить результаты в виде отчёта.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Планируемый стек технологий --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Технологии&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Языки:&amp;lt;/b&amp;gt; Python, JavaScript, HTML/CSS&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Библиотеки Python:&amp;lt;/b&amp;gt; requests, pandas, matplotlib, seaborn, wordcloud, flask&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;API:&amp;lt;/b&amp;gt; VK API (видео, пользователи, группы, разрешение имён)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Визуализация:&amp;lt;/b&amp;gt; Matplotlib, Seaborn, WordCloud&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Веб-фреймворк:&amp;lt;/b&amp;gt; Flask&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Диаграмма работы приложения --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Диаграмма работы приложения «VK Video Analytics»&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:&lt;br /&gt;
flowchart TB&lt;br /&gt;
    A[Пользователь вводит ссылку на сообщество] --&amp;gt; B(Flask получает COMMUNITY_INPUT)&lt;br /&gt;
    B --&amp;gt; C{VK API: utils.resolveScreenName}&lt;br /&gt;
    C --&amp;gt;|Сообщество найдено| D[Получен числовой ID сообщества]&lt;br /&gt;
    C --&amp;gt;|Не найдено| E[Ошибка: сообщество не существует]&lt;br /&gt;
    D --&amp;gt; F[VK API: video.get с пагинацией]&lt;br /&gt;
    F --&amp;gt; G{Видео получены?}&lt;br /&gt;
    G --&amp;gt;|Нет| H[Ошибка: нет видео]&lt;br /&gt;
    G --&amp;gt;|Да| I[Сбор информации об авторах&amp;lt;br&amp;gt;users.get / groups.getById]&lt;br /&gt;
    I --&amp;gt; J[Создание DataFrame pandas&amp;lt;br&amp;gt;расчёт метрик: просмотры, вовлечённость]&lt;br /&gt;
    J --&amp;gt; K[Очистка текста названий]&lt;br /&gt;
    K --&amp;gt; L[Фильтрация стоп-слов&amp;lt;br&amp;gt;местоимения, глаголы, вводные]&lt;br /&gt;
    L --&amp;gt; M[Анализ и построение графиков]&lt;br /&gt;
    M --&amp;gt; N[Сохранение результатов&amp;lt;br&amp;gt;CSV, PNG, JSON]&lt;br /&gt;
    N --&amp;gt; O[Flask рендерит HTML-страницу]&lt;br /&gt;
    O --&amp;gt; P[Браузер отображает аналитику&amp;lt;br&amp;gt;графики + трендовые темы]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Структура проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Структура проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;pre style=&amp;quot;background: #2d2d2d; color: #f8f8f2; padding: 15px; border-radius: 10px; overflow-x: auto;&amp;quot;&amp;gt;&lt;br /&gt;
vk_video_analytics/&lt;br /&gt;
├── config.py                 # настройки: токен, ссылка, лимиты&lt;br /&gt;
├── vk_api_client.py          # работа с VK API (пагинация, resolveScreenName)&lt;br /&gt;
├── analyzer.py               # аналитика: DataFrame, стоп-слова, тренды&lt;br /&gt;
├── visualizer.py             # построение графиков (matplotlib, wordcloud)&lt;br /&gt;
├── app.py                    # веб-сервер Flask&lt;br /&gt;
├── templates/&lt;br /&gt;
│   └── index.html            # HTML-шаблон с графиками и трендами&lt;br /&gt;
├── results/                  # папка с результатами (создаётся автоматически)&lt;br /&gt;
│   ├── videos_data.csv       # все собранные данные&lt;br /&gt;
│   ├── *.png                 # графики&lt;br /&gt;
│   └── *.json                # инсайты и тренды&lt;br /&gt;
└── requirements.txt          # зависимости&lt;br /&gt;
    &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Ход работы над проектом --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Ход работы над проектом&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #f9f9f9; border-radius: 10px; padding: 20px; margin: 20px 0;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 1. Написание Python-скрипта для сбора данных&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Установила необходимые библиотеки:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;pre style=&amp;quot;background: #2d2d2d; color: #f8f8f2; padding: 10px; border-radius: 5px;&amp;quot;&amp;gt;pip install requests pandas matplotlib seaborn wordcloud flask&amp;lt;/pre&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Написала клиент для VK API с поддержкой:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Преобразования ссылки в ID через &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Пагинации для получения до 500 видео&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Сбора информации об авторах (пользователи и группы)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Результат:&amp;lt;/b&amp;gt; собран DataFrame с полями: &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;views&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;duration&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;engagement&amp;lt;/code&amp;gt; и др.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 2. Реализация фильтрации «лишних» слов&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Создала список стоп-слов, включающий:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Местоимения (твой, мой, его, их, я, ты, мы)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Глаголы (быть, сказать, делать, хотеть, любить, идти, работать)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Вводные конструкции (кстати, наверное, конечно, по-моему)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Частицы, предлоги, союзы (в, на, и, а, но, или)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Общие слова (самый, хороший, новый, легко, сейчас)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;При построении облака слов и поиске трендовых тем эти слова исключаются, остаются только смысловые ключевые слова.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 3. Создание графиков и визуализации&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Реализовала модуль визуализации, который строит:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Топ-10 видео по просмотрам&amp;lt;/b&amp;gt; (горизонтальная столбчатая диаграмма)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Анализ длительности&amp;lt;/b&amp;gt; — средние просмотры и распределение по категориям&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Временной анализ&amp;lt;/b&amp;gt; — средние просмотры по часам и дням недели&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Облако ключевых слов&amp;lt;/b&amp;gt; (только значимые слова после фильтрации)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Анализ вовлечённости&amp;lt;/b&amp;gt; — зависимость вовлечённости от просмотров и по длительности&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 4. Создание веб-интерфейса на Flask&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Разработала веб-приложение на Flask с маршрутами:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; — главная страница с аналитикой&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/insights&amp;lt;/code&amp;gt; — JSON с ключевыми инсайтами&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/trending&amp;lt;/code&amp;gt; — JSON с трендовыми темами&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/top_videos&amp;lt;/code&amp;gt; — JSON с топ-20 видео&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/chart/&amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; — отдача PNG-графиков&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/refresh&amp;lt;/code&amp;gt; — принудительное обновление данных&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;HTML-шаблон адаптивный, отображает все графики и тренды в удобной сетке.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 5. Тестирование и отладка&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Провела тестирование на сообществе &amp;lt;code&amp;gt;https://vk.com/vkvideo&amp;lt;/code&amp;gt;. Собрано 500 видео, построены графики. Проверила фильтрацию стоп-слов — в облаке слов и трендах остались только смысловые темы (например, «кино», «сериал», «премьера», «трейлер»).&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- ИТОГОВЫЙ РЕЗУЛЬТАТ --&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #eef2f5; padding: 20px; border-radius: 15px; margin: 30px 0; text-align: center; border-left: 4px solid #3498db;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h3 style=&amp;quot;color: black;&amp;quot;&amp;gt;Итог проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
        &amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;Создан работающий инструмент для анализа видеоконтента ВКонтакте с веб-интерфейсом&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;До 500 видео анализируется &amp;amp;nbsp;|&amp;amp;nbsp; 5 типов графиков &amp;amp;nbsp;|&amp;amp;nbsp; 425 стоп-слов для фильтрации &amp;amp;nbsp;|&amp;amp;nbsp; Автоматическое определение сообщества по ссылке&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;Проект выполнен в рамках дисциплины «Работа с API социальных сетей и облачных сервисов»&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- ВЫВОДЫ --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Выводы&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;В ходе работы над проектом я:&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Научилась работать с VK API — получать токен, делать запросы с пагинацией, обрабатывать ответы, использовать &amp;lt;code&amp;gt;resolveScreenName&amp;lt;/code&amp;gt; для преобразования ссылок.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Освоила очистку текстовых данных: фильтрацию стоп-слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Создала комплексную аналитику видеоконтента: топ видео, анализ длительности, временную активность, вовлечённость, облако ключевых слов.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Разработала веб-приложение на Flask с интерактивным интерфейсом и графиками.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Поняла, как устроены современные сервисы аналитики контента, собирающие данные через открытые API.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Проект можно развивать дальше: добавить анализ хэштегов, прогнозирование виральности на основе нейросетей, интеграцию с другими соцсетями (YouTube, Telegram), экспорт отчётов в PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:Работа с API]]&lt;/div&gt;</summary>
		<author><name>Sseliverstova</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45417</id>
		<title>Анализ видеоконтента</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45417"/>
		<updated>2026-03-26T20:21:48Z</updated>

		<summary type="html">&lt;p&gt;Sseliverstova: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;font-family: Arial, sans-serif; max-width: 900px; margin: 0 auto; padding: 20px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Карточка проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #f0f8ff; padding: 15px; border-radius: 10px; margin-bottom: 25px;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h2 style=&amp;quot;color: #2c3e50; border-bottom: 2px solid #3498db; padding-bottom: 8px;&amp;quot;&amp;gt;🎬 VK Video Analytics — Анализ видеоконтента&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Автор:&amp;lt;/b&amp;gt; Светлана Селиверстова &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Группа:&amp;lt;/b&amp;gt; АДЭУ-221&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Дисциплина:&amp;lt;/b&amp;gt; Работа с API социальных сетей и облачных сервисов&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Статус проекта:&amp;lt;/b&amp;gt; Выполнен&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Цель проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Цель работы&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Разработать инструмент для анализа видеоконтента из открытых источников (VK) с целью выявления актуальных тем, изучения принципов работы [[API]] и создания интерактивного веб-интерфейса для визуализации метрик.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Задачи --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Задачи&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;ol&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Изучить документацию VK API (методы &amp;lt;code&amp;gt;video.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;users.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;groups.getById&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;).&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Получить токен доступа для работы с данными.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Написать скрипт на Python для сбора до 500 видео из сообщества с пагинацией.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Реализовать фильтрацию «лишних» слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Построить графики: топ-10 видео, анализ длительности, временная активность, облако ключевых слов, вовлечённость.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Создать веб-интерфейс на Flask для отображения аналитики в браузере (localhost).&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Оформить результаты в виде отчёта.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Планируемый стек технологий --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Технологии&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Языки:&amp;lt;/b&amp;gt; Python, JavaScript, HTML/CSS&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Библиотеки Python:&amp;lt;/b&amp;gt; requests, pandas, matplotlib, seaborn, wordcloud, flask&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;API:&amp;lt;/b&amp;gt; VK API (видео, пользователи, группы, разрешение имён)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Визуализация:&amp;lt;/b&amp;gt; Matplotlib, Seaborn, WordCloud&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Веб-фреймворк:&amp;lt;/b&amp;gt; Flask&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Диаграмма работы приложения --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Диаграмма работы приложения «VK Video Analytics»&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:&lt;br /&gt;
flowchart TB&lt;br /&gt;
    A[Пользователь вводит ссылку на сообщество] --&amp;gt; B(Flask получает COMMUNITY_INPUT)&lt;br /&gt;
    B --&amp;gt; C{VK API: utils.resolveScreenName}&lt;br /&gt;
    C --&amp;gt;|Сообщество найдено| D[Получен числовой ID сообщества]&lt;br /&gt;
    C --&amp;gt;|Не найдено| E[Ошибка: сообщество не существует]&lt;br /&gt;
    D --&amp;gt; F[VK API: video.get с пагинацией]&lt;br /&gt;
    F --&amp;gt; G{Видео получены?}&lt;br /&gt;
    G --&amp;gt;|Нет| H[Ошибка: нет видео]&lt;br /&gt;
    G --&amp;gt;|Да| I[Сбор информации об авторах&amp;lt;br&amp;gt;users.get / groups.getById]&lt;br /&gt;
    I --&amp;gt; J[Создание DataFrame pandas&amp;lt;br&amp;gt;расчёт метрик: просмотры, вовлечённость]&lt;br /&gt;
    J --&amp;gt; K[Очистка текста названий]&lt;br /&gt;
    K --&amp;gt; L[Фильтрация стоп-слов&amp;lt;br&amp;gt;местоимения, глаголы, вводные]&lt;br /&gt;
    L --&amp;gt; M[Анализ и построение графиков]&lt;br /&gt;
    M --&amp;gt; N[Сохранение результатов&amp;lt;br&amp;gt;CSV, PNG, JSON]&lt;br /&gt;
    N --&amp;gt; O[Flask рендерит HTML-страницу]&lt;br /&gt;
    O --&amp;gt; P[Браузер отображает аналитику&amp;lt;br&amp;gt;графики + трендовые темы]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Структура проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Структура проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;pre style=&amp;quot;background: #2d2d2d; color: #f8f8f2; padding: 15px; border-radius: 10px; overflow-x: auto;&amp;quot;&amp;gt;&lt;br /&gt;
vk_video_analytics/&lt;br /&gt;
├── config.py                 # настройки: токен, ссылка, лимиты&lt;br /&gt;
├── vk_api_client.py          # работа с VK API (пагинация, resolveScreenName)&lt;br /&gt;
├── analyzer.py               # аналитика: DataFrame, стоп-слова, тренды&lt;br /&gt;
├── visualizer.py             # построение графиков (matplotlib, wordcloud)&lt;br /&gt;
├── app.py                    # веб-сервер Flask&lt;br /&gt;
├── templates/&lt;br /&gt;
│   └── index.html            # HTML-шаблон с графиками и трендами&lt;br /&gt;
├── results/                  # папка с результатами (создаётся автоматически)&lt;br /&gt;
│   ├── videos_data.csv       # все собранные данные&lt;br /&gt;
│   ├── *.png                 # графики&lt;br /&gt;
│   └── *.json                # инсайты и тренды&lt;br /&gt;
└── requirements.txt          # зависимости&lt;br /&gt;
    &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Ход работы над проектом --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Ход работы над проектом&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #f9f9f9; border-radius: 10px; padding: 20px; margin: 20px 0;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 1. Написание Python-скрипта для сбора данных&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Установила необходимые библиотеки:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;pre style=&amp;quot;background: #2d2d2d; color: #f8f8f2; padding: 10px; border-radius: 5px;&amp;quot;&amp;gt;pip install requests pandas matplotlib seaborn wordcloud flask&amp;lt;/pre&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Написала клиент для VK API с поддержкой:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Преобразования ссылки в ID через &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Пагинации для получения до 500 видео&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Сбора информации об авторах (пользователи и группы)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Результат:&amp;lt;/b&amp;gt; собран DataFrame с полями: &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;views&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;duration&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;engagement&amp;lt;/code&amp;gt; и др.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 2. Реализация фильтрации «водяных» слов&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Создала список стоп-слов из 425 единиц, включающий:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Местоимения (твой, мой, его, их, я, ты, мы)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Глаголы (быть, сказать, делать, хотеть, любить, идти, работать)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Вводные конструкции (кстати, наверное, конечно, по-моему)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Частицы, предлоги, союзы (в, на, и, а, но, или)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Общие слова (самый, хороший, новый, легко, сейчас)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;При построении облака слов и поиске трендовых тем эти слова исключаются, остаются только смысловые ключевые слова.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 3. Создание графиков и визуализации&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Реализовала модуль визуализации, который строит:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Топ-10 видео по просмотрам&amp;lt;/b&amp;gt; (горизонтальная столбчатая диаграмма)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Анализ длительности&amp;lt;/b&amp;gt; — средние просмотры и распределение по категориям&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Временной анализ&amp;lt;/b&amp;gt; — средние просмотры по часам и дням недели&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Облако ключевых слов&amp;lt;/b&amp;gt; (только значимые слова после фильтрации)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Анализ вовлечённости&amp;lt;/b&amp;gt; — зависимость вовлечённости от просмотров и по длительности&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 4. Создание веб-интерфейса на Flask&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Разработала веб-приложение на Flask с маршрутами:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; — главная страница с аналитикой&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/insights&amp;lt;/code&amp;gt; — JSON с ключевыми инсайтами&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/trending&amp;lt;/code&amp;gt; — JSON с трендовыми темами&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/top_videos&amp;lt;/code&amp;gt; — JSON с топ-20 видео&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/chart/&amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; — отдача PNG-графиков&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/refresh&amp;lt;/code&amp;gt; — принудительное обновление данных&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;HTML-шаблон адаптивный, отображает все графики и тренды в удобной сетке.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 5. Тестирование и отладка&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Провела тестирование на сообществе &amp;lt;code&amp;gt;https://vk.com/vkvideo&amp;lt;/code&amp;gt;. Собрано 500 видео, построены графики. Проверила фильтрацию стоп-слов — в облаке слов и трендах остались только смысловые темы (например, «кино», «сериал», «премьера», «трейлер»).&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- ИТОГОВЫЙ РЕЗУЛЬТАТ --&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #eef2f5; padding: 20px; border-radius: 15px; margin: 30px 0; text-align: center; border-left: 4px solid #3498db;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h3 style=&amp;quot;color: black;&amp;quot;&amp;gt;Итог проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
        &amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;Создан работающий инструмент для анализа видеоконтента ВКонтакте с веб-интерфейсом&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;До 500 видео анализируется &amp;amp;nbsp;|&amp;amp;nbsp; 5 типов графиков &amp;amp;nbsp;|&amp;amp;nbsp; 425 стоп-слов для фильтрации &amp;amp;nbsp;|&amp;amp;nbsp; Автоматическое определение сообщества по ссылке&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;Проект выполнен в рамках дисциплины «Работа с API социальных сетей и облачных сервисов»&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- ВЫВОДЫ --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Выводы&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;В ходе работы над проектом я:&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Научилась работать с VK API — получать токен, делать запросы с пагинацией, обрабатывать ответы, использовать &amp;lt;code&amp;gt;resolveScreenName&amp;lt;/code&amp;gt; для преобразования ссылок.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Освоила очистку текстовых данных: фильтрацию стоп-слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Создала комплексную аналитику видеоконтента: топ видео, анализ длительности, временную активность, вовлечённость, облако ключевых слов.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Разработала веб-приложение на Flask с интерактивным интерфейсом и графиками.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Поняла, как устроены современные сервисы аналитики контента, собирающие данные через открытые API.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Проект можно развивать дальше: добавить анализ хэштегов, прогнозирование виральности на основе нейросетей, интеграцию с другими соцсетями (YouTube, Telegram), экспорт отчётов в PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:Работа с API]]&lt;/div&gt;</summary>
		<author><name>Sseliverstova</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45415</id>
		<title>Анализ видеоконтента</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45415"/>
		<updated>2026-03-26T20:20:55Z</updated>

		<summary type="html">&lt;p&gt;Sseliverstova: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;font-family: Arial, sans-serif; max-width: 900px; margin: 0 auto; padding: 20px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Карточка проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #f0f8ff; padding: 15px; border-radius: 10px; margin-bottom: 25px;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h2 style=&amp;quot;color: #2c3e50; border-bottom: 2px solid #3498db; padding-bottom: 8px;&amp;quot;&amp;gt;🎬 VK Video Analytics — Анализ видеоконтента&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Автор:&amp;lt;/b&amp;gt; Светлана Селиверстова &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Группа:&amp;lt;/b&amp;gt; АДЭУ-221&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Дисциплина:&amp;lt;/b&amp;gt; Работа с API социальных сетей и облачных сервисов&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Статус проекта:&amp;lt;/b&amp;gt; Выполнен&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Цель проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Цель работы&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Разработать инструмент для анализа видеоконтента из открытых источников (VK) с целью выявления актуальных тем, изучения принципов работы [[API]] и создания интерактивного веб-интерфейса для визуализации метрик.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Задачи --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Задачи&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;ol&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Изучить документацию VK API (методы &amp;lt;code&amp;gt;video.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;users.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;groups.getById&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;).&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Получить токен доступа для работы с данными.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Написать скрипт на Python для сбора до 500 видео из сообщества с пагинацией.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Реализовать фильтрацию «водяных» слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Построить графики: топ-10 видео, анализ длительности, временная активность, облако ключевых слов, вовлечённость.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Создать веб-интерфейс на Flask для отображения аналитики в браузере (localhost).&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Оформить результаты в виде отчёта.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Планируемый стек технологий --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Технологии&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Языки:&amp;lt;/b&amp;gt; Python, JavaScript, HTML/CSS&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Библиотеки Python:&amp;lt;/b&amp;gt; requests, pandas, matplotlib, seaborn, wordcloud, flask&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;API:&amp;lt;/b&amp;gt; VK API (видео, пользователи, группы, разрешение имён)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Визуализация:&amp;lt;/b&amp;gt; Matplotlib, Seaborn, WordCloud&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Веб-фреймворк:&amp;lt;/b&amp;gt; Flask&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Диаграмма работы приложения --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Диаграмма работы приложения «VK Video Analytics»&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:&lt;br /&gt;
flowchart TB&lt;br /&gt;
    A[Пользователь вводит ссылку на сообщество] --&amp;gt; B(Flask получает COMMUNITY_INPUT)&lt;br /&gt;
    B --&amp;gt; C{VK API: utils.resolveScreenName}&lt;br /&gt;
    C --&amp;gt;|Сообщество найдено| D[Получен числовой ID сообщества]&lt;br /&gt;
    C --&amp;gt;|Не найдено| E[Ошибка: сообщество не существует]&lt;br /&gt;
    D --&amp;gt; F[VK API: video.get с пагинацией]&lt;br /&gt;
    F --&amp;gt; G{Видео получены?}&lt;br /&gt;
    G --&amp;gt;|Нет| H[Ошибка: нет видео]&lt;br /&gt;
    G --&amp;gt;|Да| I[Сбор информации об авторах&amp;lt;br&amp;gt;users.get / groups.getById]&lt;br /&gt;
    I --&amp;gt; J[Создание DataFrame pandas&amp;lt;br&amp;gt;расчёт метрик: просмотры, вовлечённость]&lt;br /&gt;
    J --&amp;gt; K[Очистка текста названий]&lt;br /&gt;
    K --&amp;gt; L[Фильтрация стоп-слов&amp;lt;br&amp;gt;местоимения, глаголы, вводные]&lt;br /&gt;
    L --&amp;gt; M[Анализ и построение графиков]&lt;br /&gt;
    M --&amp;gt; N[Сохранение результатов&amp;lt;br&amp;gt;CSV, PNG, JSON]&lt;br /&gt;
    N --&amp;gt; O[Flask рендерит HTML-страницу]&lt;br /&gt;
    O --&amp;gt; P[Браузер отображает аналитику&amp;lt;br&amp;gt;графики + трендовые темы]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Структура проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Структура проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;pre style=&amp;quot;background: #2d2d2d; color: #f8f8f2; padding: 15px; border-radius: 10px; overflow-x: auto;&amp;quot;&amp;gt;&lt;br /&gt;
vk_video_analytics/&lt;br /&gt;
├── config.py                 # настройки: токен, ссылка, лимиты&lt;br /&gt;
├── vk_api_client.py          # работа с VK API (пагинация, resolveScreenName)&lt;br /&gt;
├── analyzer.py               # аналитика: DataFrame, стоп-слова, тренды&lt;br /&gt;
├── visualizer.py             # построение графиков (matplotlib, wordcloud)&lt;br /&gt;
├── app.py                    # веб-сервер Flask&lt;br /&gt;
├── templates/&lt;br /&gt;
│   └── index.html            # HTML-шаблон с графиками и трендами&lt;br /&gt;
├── results/                  # папка с результатами (создаётся автоматически)&lt;br /&gt;
│   ├── videos_data.csv       # все собранные данные&lt;br /&gt;
│   ├── *.png                 # графики&lt;br /&gt;
│   └── *.json                # инсайты и тренды&lt;br /&gt;
└── requirements.txt          # зависимости&lt;br /&gt;
    &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Ход работы над проектом --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Ход работы над проектом&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #f9f9f9; border-radius: 10px; padding: 20px; margin: 20px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 1. Написание Python-скрипта для сбора данных&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Установила необходимые библиотеки:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;pre style=&amp;quot;background: #2d2d2d; color: #f8f8f2; padding: 10px; border-radius: 5px;&amp;quot;&amp;gt;pip install requests pandas matplotlib seaborn wordcloud flask&amp;lt;/pre&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Написала клиент для VK API с поддержкой:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Преобразования ссылки в ID через &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Пагинации для получения до 500 видео&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Сбора информации об авторах (пользователи и группы)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Результат:&amp;lt;/b&amp;gt; собран DataFrame с полями: &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;views&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;duration&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;engagement&amp;lt;/code&amp;gt; и др.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 2. Реализация фильтрации «водяных» слов&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Создала список стоп-слов из 425 единиц, включающий:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Местоимения (твой, мой, его, их, я, ты, мы)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Глаголы (быть, сказать, делать, хотеть, любить, идти, работать)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Вводные конструкции (кстати, наверное, конечно, по-моему)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Частицы, предлоги, союзы (в, на, и, а, но, или)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Общие слова (самый, хороший, новый, легко, сейчас)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;При построении облака слов и поиске трендовых тем эти слова исключаются, остаются только смысловые ключевые слова.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 3. Создание графиков и визуализации&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Реализовала модуль визуализации, который строит:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Топ-10 видео по просмотрам&amp;lt;/b&amp;gt; (горизонтальная столбчатая диаграмма)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Анализ длительности&amp;lt;/b&amp;gt; — средние просмотры и распределение по категориям&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Временной анализ&amp;lt;/b&amp;gt; — средние просмотры по часам и дням недели&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Облако ключевых слов&amp;lt;/b&amp;gt; (только значимые слова после фильтрации)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Анализ вовлечённости&amp;lt;/b&amp;gt; — зависимость вовлечённости от просмотров и по длительности&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 4. Создание веб-интерфейса на Flask&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Разработала веб-приложение на Flask с маршрутами:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; — главная страница с аналитикой&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/insights&amp;lt;/code&amp;gt; — JSON с ключевыми инсайтами&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/trending&amp;lt;/code&amp;gt; — JSON с трендовыми темами&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/top_videos&amp;lt;/code&amp;gt; — JSON с топ-20 видео&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/chart/&amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; — отдача PNG-графиков&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/refresh&amp;lt;/code&amp;gt; — принудительное обновление данных&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;HTML-шаблон адаптивный, отображает все графики и тренды в удобной сетке.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 5. Тестирование и отладка&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Провела тестирование на сообществе &amp;lt;code&amp;gt;https://vk.com/vkvideo&amp;lt;/code&amp;gt;. Собрано 500 видео, построены графики. Проверила фильтрацию стоп-слов — в облаке слов и трендах остались только смысловые темы (например, «кино», «сериал», «премьера», «трейлер»).&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- ИТОГОВЫЙ РЕЗУЛЬТАТ --&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #eef2f5; padding: 20px; border-radius: 15px; margin: 30px 0; text-align: center; border-left: 4px solid #3498db;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h3 style=&amp;quot;color: black;&amp;quot;&amp;gt;Итог проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
        &amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;Создан работающий инструмент для анализа видеоконтента ВКонтакте с веб-интерфейсом&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;До 500 видео анализируется &amp;amp;nbsp;|&amp;amp;nbsp; 5 типов графиков &amp;amp;nbsp;|&amp;amp;nbsp; 425 стоп-слов для фильтрации &amp;amp;nbsp;|&amp;amp;nbsp; Автоматическое определение сообщества по ссылке&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;Проект выполнен в рамках дисциплины «Работа с API социальных сетей и облачных сервисов»&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- ВЫВОДЫ --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Выводы&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;В ходе работы над проектом я:&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Научилась работать с VK API — получать токен, делать запросы с пагинацией, обрабатывать ответы, использовать &amp;lt;code&amp;gt;resolveScreenName&amp;lt;/code&amp;gt; для преобразования ссылок.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Освоила очистку текстовых данных: фильтрацию стоп-слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Создала комплексную аналитику видеоконтента: топ видео, анализ длительности, временную активность, вовлечённость, облако ключевых слов.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Разработала веб-приложение на Flask с интерактивным интерфейсом и графиками.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Поняла, как устроены современные сервисы аналитики контента, собирающие данные через открытые API.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Проект можно развивать дальше: добавить анализ хэштегов, прогнозирование виральности на основе нейросетей, интеграцию с другими соцсетями (YouTube, Telegram), экспорт отчётов в PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:Работа с API]]&lt;/div&gt;</summary>
		<author><name>Sseliverstova</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45403</id>
		<title>Анализ видеоконтента</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45403"/>
		<updated>2026-03-26T20:12:17Z</updated>

		<summary type="html">&lt;p&gt;Sseliverstova: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;font-family: Arial, sans-serif; max-width: 900px; margin: 0 auto; padding: 20px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Карточка проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #f0f8ff; padding: 15px; border-radius: 10px; margin-bottom: 25px;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h2 style=&amp;quot;color: #2c3e50; border-bottom: 2px solid #3498db; padding-bottom: 8px;&amp;quot;&amp;gt;🎬 VK Video Analytics — Анализ видеоконтента&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Автор:&amp;lt;/b&amp;gt; Светлана Селиверстова &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Группа:&amp;lt;/b&amp;gt; АДЭУ-221&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Дисциплина:&amp;lt;/b&amp;gt; Работа с API социальных сетей и облачных сервисов&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Статус проекта:&amp;lt;/b&amp;gt; Выполнен&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Цель проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Цель работы&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Разработать инструмент для анализа видеоконтента из открытых источников (VK) с целью выявления актуальных тем, изучения принципов работы [[API]] и создания интерактивного веб-интерфейса для визуализации метрик.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Задачи --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Задачи&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;ol&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Изучить документацию VK API (методы &amp;lt;code&amp;gt;video.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;users.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;groups.getById&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;).&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Получить токен доступа для работы с данными.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Написать скрипт на Python для сбора до 500 видео из сообщества с пагинацией.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Реализовать фильтрацию «водяных» слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Построить графики: топ-10 видео, анализ длительности, временная активность, облако ключевых слов, вовлечённость.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Создать веб-интерфейс на Flask для отображения аналитики в браузере (localhost).&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Оформить результаты в виде отчёта.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Планируемый стек технологий --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Технологии&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Языки:&amp;lt;/b&amp;gt; Python, JavaScript, HTML/CSS&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Библиотеки Python:&amp;lt;/b&amp;gt; requests, pandas, matplotlib, seaborn, wordcloud, flask&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;API:&amp;lt;/b&amp;gt; VK API (видео, пользователи, группы, разрешение имён)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Визуализация:&amp;lt;/b&amp;gt; Matplotlib, Seaborn, WordCloud&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Веб-фреймворк:&amp;lt;/b&amp;gt; Flask&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Диаграмма работы приложения --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Диаграмма работы приложения «VK Video Analytics»&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:&lt;br /&gt;
flowchart TB&lt;br /&gt;
    A[Пользователь вводит ссылку на сообщество] --&amp;gt; B(Flask получает COMMUNITY_INPUT)&lt;br /&gt;
    B --&amp;gt; C{VK API: utils.resolveScreenName}&lt;br /&gt;
    C --&amp;gt;|Сообщество найдено| D[Получен числовой ID сообщества]&lt;br /&gt;
    C --&amp;gt;|Не найдено| E[Ошибка: сообщество не существует]&lt;br /&gt;
    D --&amp;gt; F[VK API: video.get с пагинацией]&lt;br /&gt;
    F --&amp;gt; G{Видео получены?}&lt;br /&gt;
    G --&amp;gt;|Нет| H[Ошибка: нет видео]&lt;br /&gt;
    G --&amp;gt;|Да| I[Сбор информации об авторах&amp;lt;br&amp;gt;users.get / groups.getById]&lt;br /&gt;
    I --&amp;gt; J[Создание DataFrame pandas&amp;lt;br&amp;gt;расчёт метрик: просмотры, вовлечённость]&lt;br /&gt;
    J --&amp;gt; K[Очистка текста названий]&lt;br /&gt;
    K --&amp;gt; L[Фильтрация стоп-слов&amp;lt;br&amp;gt;местоимения, глаголы, вводные]&lt;br /&gt;
    L --&amp;gt; M[Анализ и построение графиков]&lt;br /&gt;
    M --&amp;gt; N[Сохранение результатов&amp;lt;br&amp;gt;CSV, PNG, JSON]&lt;br /&gt;
    N --&amp;gt; O[Flask рендерит HTML-страницу]&lt;br /&gt;
    O --&amp;gt; P[Браузер отображает аналитику&amp;lt;br&amp;gt;графики + трендовые темы]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Структура проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Структура проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;pre style=&amp;quot;background: #2d2d2d; color: #f8f8f2; padding: 15px; border-radius: 10px; overflow-x: auto;&amp;quot;&amp;gt;&lt;br /&gt;
vk_video_analytics/&lt;br /&gt;
├── config.py                 # настройки: токен, ссылка, лимиты&lt;br /&gt;
├── vk_api_client.py          # работа с VK API (пагинация, resolveScreenName)&lt;br /&gt;
├── analyzer.py               # аналитика: DataFrame, стоп-слова, тренды&lt;br /&gt;
├── visualizer.py             # построение графиков (matplotlib, wordcloud)&lt;br /&gt;
├── app.py                    # веб-сервер Flask&lt;br /&gt;
├── templates/&lt;br /&gt;
│   └── index.html            # HTML-шаблон с графиками и трендами&lt;br /&gt;
├── results/                  # папка с результатами (создаётся автоматически)&lt;br /&gt;
│   ├── videos_data.csv       # все собранные данные&lt;br /&gt;
│   ├── *.png                 # графики&lt;br /&gt;
│   └── *.json                # инсайты и тренды&lt;br /&gt;
└── requirements.txt          # зависимости&lt;br /&gt;
    &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Ход работы над проектом --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Ход работы над проектом&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #f9f9f9; border-radius: 10px; padding: 20px; margin: 20px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 1. Создание страницы в вики и выбор темы&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Создала страницу проекта на Digida MGPU через форму DigitalTool. Тема: «VK Video Analytics» — анализ видеоконтента ВКонтакте для поиска актуальных тем. Получила комментарий от преподавателя, уточнила требования к объёму выборки (до 500 видео) и фильтрации «водяных» слов.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 2. Изучение VK API и получение токена&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Изучила документацию VK API. Пыталась создать приложение, но столкнулась с трудностями. Использовала сервис vkhost.github.io для получения временного токена. Позже разобралась с созданием собственного приложения, получила стабильный токен через standalone-приложение. Необходимые права: &amp;lt;code&amp;gt;video&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;groups&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;users&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 3. Написание Python-скрипта для сбора данных&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Установила необходимые библиотеки:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;pre style=&amp;quot;background: #2d2d2d; color: #f8f8f2; padding: 10px; border-radius: 5px;&amp;quot;&amp;gt;pip install requests pandas matplotlib seaborn wordcloud flask&amp;lt;/pre&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Написала клиент для VK API с поддержкой:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Преобразования ссылки в ID через &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Пагинации для получения до 500 видео&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Сбора информации об авторах (пользователи и группы)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Результат:&amp;lt;/b&amp;gt; собран DataFrame с полями: &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;views&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;duration&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;engagement&amp;lt;/code&amp;gt; и др.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 4. Реализация фильтрации «водяных» слов&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Создала список стоп-слов из 425 единиц, включающий:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Местоимения (твой, мой, его, их, я, ты, мы)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Глаголы (быть, сказать, делать, хотеть, любить, идти, работать)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Вводные конструкции (кстати, наверное, конечно, по-моему)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Частицы, предлоги, союзы (в, на, и, а, но, или)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Общие слова (самый, хороший, новый, легко, сейчас)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;При построении облака слов и поиске трендовых тем эти слова исключаются, остаются только смысловые ключевые слова.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 5. Создание графиков и визуализации&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Реализовала модуль визуализации, который строит:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Топ-10 видео по просмотрам&amp;lt;/b&amp;gt; (горизонтальная столбчатая диаграмма)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Анализ длительности&amp;lt;/b&amp;gt; — средние просмотры и распределение по категориям&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Временной анализ&amp;lt;/b&amp;gt; — средние просмотры по часам и дням недели&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Облако ключевых слов&amp;lt;/b&amp;gt; (только значимые слова после фильтрации)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Анализ вовлечённости&amp;lt;/b&amp;gt; — зависимость вовлечённости от просмотров и по длительности&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 6. Создание веб-интерфейса на Flask&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Разработала веб-приложение на Flask с маршрутами:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; — главная страница с аналитикой&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/insights&amp;lt;/code&amp;gt; — JSON с ключевыми инсайтами&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/trending&amp;lt;/code&amp;gt; — JSON с трендовыми темами&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/top_videos&amp;lt;/code&amp;gt; — JSON с топ-20 видео&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/chart/&amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; — отдача PNG-графиков&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/refresh&amp;lt;/code&amp;gt; — принудительное обновление данных&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;HTML-шаблон адаптивный, отображает все графики и тренды в удобной сетке.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 7. Тестирование и отладка&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Провела тестирование на сообществе &amp;lt;code&amp;gt;https://vk.com/vkvideo&amp;lt;/code&amp;gt;. Собрано 500 видео, построены графики. Проверила фильтрацию стоп-слов — в облаке слов и трендах остались только смысловые темы (например, «кино», «сериал», «премьера», «трейлер»).&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- ИТОГОВЫЙ РЕЗУЛЬТАТ --&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #eef2f5; padding: 20px; border-radius: 15px; margin: 30px 0; text-align: center; border-left: 4px solid #3498db;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h3 style=&amp;quot;color: black;&amp;quot;&amp;gt;Итог проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
        &amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;Создан работающий инструмент для анализа видеоконтента ВКонтакте с веб-интерфейсом&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;До 500 видео анализируется &amp;amp;nbsp;|&amp;amp;nbsp; 5 типов графиков &amp;amp;nbsp;|&amp;amp;nbsp; 425 стоп-слов для фильтрации &amp;amp;nbsp;|&amp;amp;nbsp; Автоматическое определение сообщества по ссылке&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;Проект выполнен в рамках дисциплины «Работа с API социальных сетей и облачных сервисов»&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- ВЫВОДЫ --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Выводы&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;В ходе работы над проектом я:&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Научилась работать с VK API — получать токен, делать запросы с пагинацией, обрабатывать ответы, использовать &amp;lt;code&amp;gt;resolveScreenName&amp;lt;/code&amp;gt; для преобразования ссылок.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Освоила очистку текстовых данных: фильтрацию стоп-слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Создала комплексную аналитику видеоконтента: топ видео, анализ длительности, временную активность, вовлечённость, облако ключевых слов.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Разработала веб-приложение на Flask с интерактивным интерфейсом и графиками.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Поняла, как устроены современные сервисы аналитики контента, собирающие данные через открытые API.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Проект можно развивать дальше: добавить анализ хэштегов, прогнозирование виральности на основе нейросетей, интеграцию с другими соцсетями (YouTube, Telegram), экспорт отчётов в PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:Работа с API]]&lt;/div&gt;</summary>
		<author><name>Sseliverstova</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45397</id>
		<title>Анализ видеоконтента</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B0&amp;diff=45397"/>
		<updated>2026-03-26T20:02:35Z</updated>

		<summary type="html">&lt;p&gt;Sseliverstova: Новая страница: «&amp;lt;div style=&amp;quot;font-family: Arial, sans-serif; max-width: 900px; margin: 0 auto; padding: 20px;&amp;quot;&amp;gt;      &amp;lt;!-- Карточка проекта --&amp;gt;     &amp;lt;div style=&amp;quot;background-color: #f0f8ff; padding: 15px; border-radius: 10px; margin-bottom: 25px;&amp;quot;&amp;gt;         &amp;lt;h2 style=&amp;quot;color: #2c3e50; border-bottom: 2px solid #3498db; padding-bottom: 8px;&amp;quot;&amp;gt;🎬 VK Video Analytics — Анализ видеоконтента&amp;lt;/h2&amp;gt;         &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Автор:&amp;lt;/b&amp;gt; Светлана Сели...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;font-family: Arial, sans-serif; max-width: 900px; margin: 0 auto; padding: 20px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Карточка проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #f0f8ff; padding: 15px; border-radius: 10px; margin-bottom: 25px;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h2 style=&amp;quot;color: #2c3e50; border-bottom: 2px solid #3498db; padding-bottom: 8px;&amp;quot;&amp;gt;🎬 VK Video Analytics — Анализ видеоконтента&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Автор:&amp;lt;/b&amp;gt; Светлана Селиверстова &amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Группа:&amp;lt;/b&amp;gt; АДЭУ-221&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Дисциплина:&amp;lt;/b&amp;gt; Работа с API социальных сетей и облачных сервисов&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Статус проекта:&amp;lt;/b&amp;gt; Выполнен&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Цель проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Цель работы&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Разработать инструмент для анализа видеоконтента из открытых источников (VK) с целью выявления актуальных тем, изучения принципов работы [[API]] и создания интерактивного веб-интерфейса для визуализации метрик.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Задачи --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Задачи&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;ol&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Изучить документацию VK API (методы &amp;lt;code&amp;gt;video.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;users.get&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;groups.getById&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;).&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Получить токен доступа для работы с данными.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Написать скрипт на Python для сбора до 500 видео из сообщества с пагинацией.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Реализовать фильтрацию «водяных» слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Построить графики: топ-10 видео, анализ длительности, временная активность, облако ключевых слов, вовлечённость.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Создать веб-интерфейс на Flask для отображения аналитики в браузере (localhost).&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Оформить результаты в виде отчёта.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Планируемый стек технологий --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Технологии&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Языки:&amp;lt;/b&amp;gt; Python, JavaScript, HTML/CSS&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Библиотеки Python:&amp;lt;/b&amp;gt; requests, pandas, matplotlib, seaborn, wordcloud, flask&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;API:&amp;lt;/b&amp;gt; VK API (видео, пользователи, группы, разрешение имён)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Визуализация:&amp;lt;/b&amp;gt; Matplotlib, Seaborn, WordCloud&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Веб-фреймворк:&amp;lt;/b&amp;gt; Flask&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Диаграмма работы приложения --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Диаграмма работы приложения «VK Video Analytics»&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;div style=&amp;quot;text-align: center; margin: 20px 0;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pre style=&amp;quot;background: #f4f4f4; padding: 15px; border-radius: 10px; text-align: left; overflow-x: auto;&amp;quot;&amp;gt;&lt;br /&gt;
flowchart TB&lt;br /&gt;
    A[Пользователь вводит ссылку на сообщество] --&amp;gt; B(Flask получает COMMUNITY_INPUT)&lt;br /&gt;
    B --&amp;gt; C{VK API: utils.resolveScreenName}&lt;br /&gt;
    C --&amp;gt;|Сообщество найдено| D[Получен числовой ID сообщества]&lt;br /&gt;
    C --&amp;gt;|Не найдено| E[Ошибка: сообщество не существует]&lt;br /&gt;
    D --&amp;gt; F[VK API: video.get с пагинацией]&lt;br /&gt;
    F --&amp;gt; G{Видео получены?}&lt;br /&gt;
    G --&amp;gt;|Нет| H[Ошибка: нет видео]&lt;br /&gt;
    G --&amp;gt;|Да| I[Сбор информации об авторах&amp;lt;br&amp;gt;users.get / groups.getById]&lt;br /&gt;
    I --&amp;gt; J[Создание DataFrame pandas&amp;lt;br&amp;gt;расчёт метрик: просмотры, вовлечённость]&lt;br /&gt;
    J --&amp;gt; K[Очистка текста названий]&lt;br /&gt;
    K --&amp;gt; L[Фильтрация стоп-слов&amp;lt;br&amp;gt;местоимения, глаголы, вводные]&lt;br /&gt;
    L --&amp;gt; M[Анализ и построение графиков]&lt;br /&gt;
    M --&amp;gt; N[Сохранение результатов&amp;lt;br&amp;gt;CSV, PNG, JSON]&lt;br /&gt;
    N --&amp;gt; O[Flask рендерит HTML-страницу]&lt;br /&gt;
    O --&amp;gt; P[Браузер отображает аналитику&amp;lt;br&amp;gt;графики + трендовые темы]&lt;br /&gt;
        &amp;lt;/pre&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;i&amp;gt;Схема работы: от ввода ссылки до отображения аналитики в браузере&amp;lt;/i&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Структура проекта --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Структура проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;pre style=&amp;quot;background: #2d2d2d; color: #f8f8f2; padding: 15px; border-radius: 10px; overflow-x: auto;&amp;quot;&amp;gt;&lt;br /&gt;
vk_video_analytics/&lt;br /&gt;
├── config.py                 # настройки: токен, ссылка, лимиты&lt;br /&gt;
├── vk_api_client.py          # работа с VK API (пагинация, resolveScreenName)&lt;br /&gt;
├── analyzer.py               # аналитика: DataFrame, стоп-слова, тренды&lt;br /&gt;
├── visualizer.py             # построение графиков (matplotlib, wordcloud)&lt;br /&gt;
├── app.py                    # веб-сервер Flask&lt;br /&gt;
├── templates/&lt;br /&gt;
│   └── index.html            # HTML-шаблон с графиками и трендами&lt;br /&gt;
├── results/                  # папка с результатами (создаётся автоматически)&lt;br /&gt;
│   ├── videos_data.csv       # все собранные данные&lt;br /&gt;
│   ├── *.png                 # графики&lt;br /&gt;
│   └── *.json                # инсайты и тренды&lt;br /&gt;
└── requirements.txt          # зависимости&lt;br /&gt;
    &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Ход работы над проектом --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Ход работы над проектом&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #f9f9f9; border-radius: 10px; padding: 20px; margin: 20px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 1. Создание страницы в вики и выбор темы&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Создала страницу проекта на Digida MGPU через форму DigitalTool. Тема: «VK Video Analytics» — анализ видеоконтента ВКонтакте для поиска актуальных тем. Получила комментарий от преподавателя, уточнила требования к объёму выборки (до 500 видео) и фильтрации «водяных» слов.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 2. Изучение VK API и получение токена&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Изучила документацию VK API. Пыталась создать приложение, но столкнулась с трудностями. Использовала сервис vkhost.github.io для получения временного токена. Позже разобралась с созданием собственного приложения, получила стабильный токен через standalone-приложение. Необходимые права: &amp;lt;code&amp;gt;video&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;groups&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;users&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 3. Написание Python-скрипта для сбора данных&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Установила необходимые библиотеки:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;pre style=&amp;quot;background: #2d2d2d; color: #f8f8f2; padding: 10px; border-radius: 5px;&amp;quot;&amp;gt;pip install requests pandas matplotlib seaborn wordcloud flask&amp;lt;/pre&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Написала клиент для VK API с поддержкой:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Преобразования ссылки в ID через &amp;lt;code&amp;gt;utils.resolveScreenName&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Пагинации для получения до 500 видео&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Сбора информации об авторах (пользователи и группы)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Результат:&amp;lt;/b&amp;gt; собран DataFrame с полями: &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;views&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;duration&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;engagement&amp;lt;/code&amp;gt; и др.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 4. Реализация фильтрации «водяных» слов&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Создала список стоп-слов из 425 единиц, включающий:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Местоимения (твой, мой, его, их, я, ты, мы)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Глаголы (быть, сказать, делать, хотеть, любить, идти, работать)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Вводные конструкции (кстати, наверное, конечно, по-моему)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Частицы, предлоги, союзы (в, на, и, а, но, или)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;Общие слова (самый, хороший, новый, легко, сейчас)&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;При построении облака слов и поиске трендовых тем эти слова исключаются, остаются только смысловые ключевые слова.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 5. Создание графиков и визуализации&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Реализовала модуль визуализации, который строит:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Топ-10 видео по просмотрам&amp;lt;/b&amp;gt; (горизонтальная столбчатая диаграмма)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Анализ длительности&amp;lt;/b&amp;gt; — средние просмотры и распределение по категориям&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Временной анализ&amp;lt;/b&amp;gt; — средние просмотры по часам и дням недели&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Облако ключевых слов&amp;lt;/b&amp;gt; (только значимые слова после фильтрации)&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Анализ вовлечённости&amp;lt;/b&amp;gt; — зависимость вовлечённости от просмотров и по длительности&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 6. Создание веб-интерфейса на Flask&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Разработала веб-приложение на Flask с маршрутами:&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; — главная страница с аналитикой&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/insights&amp;lt;/code&amp;gt; — JSON с ключевыми инсайтами&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/trending&amp;lt;/code&amp;gt; — JSON с трендовыми темами&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/top_videos&amp;lt;/code&amp;gt; — JSON с топ-20 видео&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/api/chart/&amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; — отдача PNG-графиков&amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li&amp;gt;&amp;lt;code&amp;gt;/refresh&amp;lt;/code&amp;gt; — принудительное обновление данных&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;HTML-шаблон адаптивный, отображает все графики и тренды в удобной сетке.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;h4 style=&amp;quot;color: #3498db;&amp;quot;&amp;gt;Этап 7. Тестирование и отладка&amp;lt;/h4&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Провела тестирование на сообществе &amp;lt;code&amp;gt;https://vk.com/vkvideo&amp;lt;/code&amp;gt;. Собрано 500 видео, построены графики. Проверила фильтрацию стоп-слов — в облаке слов и трендах остались только смысловые темы (например, «кино», «сериал», «премьера», «трейлер»).&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- ИТОГОВЫЙ РЕЗУЛЬТАТ --&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #eef2f5; padding: 20px; border-radius: 15px; margin: 30px 0; text-align: center; border-left: 4px solid #3498db;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h3 style=&amp;quot;color: black;&amp;quot;&amp;gt;Итог проекта&amp;lt;/h3&amp;gt;&lt;br /&gt;
        &amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;Создан работающий инструмент для анализа видеоконтента ВКонтакте с веб-интерфейсом&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;До 500 видео анализируется &amp;amp;nbsp;|&amp;amp;nbsp; 5 типов графиков &amp;amp;nbsp;|&amp;amp;nbsp; 425 стоп-слов для фильтрации &amp;amp;nbsp;|&amp;amp;nbsp; Автоматическое определение сообщества по ссылке&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;small&amp;gt;Проект выполнен в рамках дисциплины «Работа с API социальных сетей и облачных сервисов»&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- ВЫВОДЫ --&amp;gt;&lt;br /&gt;
    &amp;lt;h3 style=&amp;quot;color: #34495e;&amp;quot;&amp;gt;Выводы&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;В ходе работы над проектом я:&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Научилась работать с VK API — получать токен, делать запросы с пагинацией, обрабатывать ответы, использовать &amp;lt;code&amp;gt;resolveScreenName&amp;lt;/code&amp;gt; для преобразования ссылок.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Освоила очистку текстовых данных: фильтрацию стоп-слов (местоимения, глаголы, вводные конструкции) для выделения смысловых тем.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Создала комплексную аналитику видеоконтента: топ видео, анализ длительности, временную активность, вовлечённость, облако ключевых слов.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Разработала веб-приложение на Flask с интерактивным интерфейсом и графиками.&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;li&amp;gt;Поняла, как устроены современные сервисы аналитики контента, собирающие данные через открытые API.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Проект можно развивать дальше: добавить анализ хэштегов, прогнозирование виральности на основе нейросетей, интеграцию с другими соцсетями (YouTube, Telegram), экспорт отчётов в PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:Работа с API]]&lt;/div&gt;</summary>
		<author><name>Sseliverstova</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Sseliverstova&amp;diff=45396</id>
		<title>Участник:Sseliverstova</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Sseliverstova&amp;diff=45396"/>
		<updated>2026-03-26T20:00:27Z</updated>

		<summary type="html">&lt;p&gt;Sseliverstova: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UserMGPU&lt;br /&gt;
|Description=Студентка адэу-221. 4 курс&lt;br /&gt;
|Field_of_knowledge=Математика, Экономика, Управление, Большие данные, Моделирование&lt;br /&gt;
|Website=http://digida.mgpu.ru/index.php/Участник:SeleverstovaSN&lt;br /&gt;
|Ancestors=Дьюи&lt;br /&gt;
|similar_concepts=Приложения, Аналитика&lt;br /&gt;
|Environment=Python, SQL, JavaScript&lt;br /&gt;
|Position=Бакалавриат&lt;br /&gt;
|Profile=Экономика&lt;br /&gt;
|PedDirection=Нет&lt;br /&gt;
|Community=GitHub&lt;br /&gt;
|Виды_спорта=Настольный теннис&lt;br /&gt;
|Working_On= Анализ видеоконтента&lt;br /&gt;
}}&lt;br /&gt;
[[Категория:UserMGPU]]&lt;br /&gt;
[[Категория:АДЭУ-221]]&lt;/div&gt;</summary>
		<author><name>Sseliverstova</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Sseliverstova&amp;diff=45394</id>
		<title>Участник:Sseliverstova</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Sseliverstova&amp;diff=45394"/>
		<updated>2026-03-26T19:59:52Z</updated>

		<summary type="html">&lt;p&gt;Sseliverstova: Новая страница: «{{UserMGPU |Description=Студентка адэу-221. 4 курс |Field_of_knowledge=Математика, Экономика, Управление, Большие данные, Моделирование |Website=http://digida.mgpu.ru/index.php/Участник:SeleverstovaSN |Ancestors=Дьюи |similar_concepts=Приложения, Аналитика |Environment=Python, SQL, JavaScript |Position=Бакалавриат |Profile=Экономика |Ped...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UserMGPU&lt;br /&gt;
|Description=Студентка адэу-221. 4 курс&lt;br /&gt;
|Field_of_knowledge=Математика, Экономика, Управление, Большие данные, Моделирование&lt;br /&gt;
|Website=http://digida.mgpu.ru/index.php/Участник:SeleverstovaSN&lt;br /&gt;
|Ancestors=Дьюи&lt;br /&gt;
|similar_concepts=Приложения, Аналитика&lt;br /&gt;
|Environment=Python, SQL, JavaScript&lt;br /&gt;
|Position=Бакалавриат&lt;br /&gt;
|Profile=Экономика&lt;br /&gt;
|PedDirection=Нет&lt;br /&gt;
|Community=GitHub&lt;br /&gt;
|Виды_спорта=Настольный теннис&lt;br /&gt;
|Working_On= Мини-игры&lt;br /&gt;
}}&lt;br /&gt;
[[Категория:UserMGPU]]&lt;br /&gt;
[[Категория:АДЭУ-221]]&lt;/div&gt;</summary>
		<author><name>Sseliverstova</name></author>
	</entry>
</feed>