Дипломная работа: Совершенствование информационно-коммуникационного взаимодействия администрации района города и населения (на примере Василеостровского района Санкт-Петербурга)

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

*Рассчитано по: Расходчиков А. Н. Информационно-коммуникационное взаимодействие власти и общества: в поиске эффективных технологий //Мониторинг общественного мнения: Экономические и социальные перемены. - 2017. - №. 2 (138).

Результаты кодирования сетевых онлайн групп показывают, что наибольшим потенциалом субъектности, помимо групп органов власти и МСУ, обладают обще районные сетевые СМИ, группы общественных объединений и активистов, а также группы политических партий и движений (100% групп в 2/4 индикаторов).

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

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

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

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

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

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

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

2.4 Контент-анализ публикаций официальной страницы Администрации Василеостровского района на языке программирования Python

Проанализировав официальную страницу администрации Василеостровского района в социальной сети «Вконтакте» мы выявили проблему низкой вовлеченности подписчиков в выпускаемый контент. Лишь около 3% населения района подписаны на официальную страницу администрации.

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

Для того, чтобы создать данную модель, необходимо выгрузить все публикации, сделанные официальной страницей Василеостровского района, то есть провести парсинг публикаций группы vk.com/vo_news. Далее, загружаем данные.

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

Далее, необходимо взять названия постов, для этого начала берем все слова для переноса, а затем, первые 80 символов. После, импортируем длину текста, дату в формате «ДД.ММ.ГГГГ» и час. Итоговый список типов вложений выглядит следующим образом: «фото», «видео», «аудио», «ссылка», «опрос». Создаем цикл для подсчета всех типов и количества вложений. Суммируем все активности, затем, создаем список и добавляем в него название, длину, количество фото, количество аудио, количество видео в постах, количество постов с опросами, просмотры, комментарии, лайки, репосты, сумму всех взаимодействий, дату и час. После этого создаем dataframe (таблицу) и задаем ей заголовки.

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

Выше представлены лишь 5 последних публикаций из всех. Пустое название под номером 4 получилось таким, так как эта публикация являлась репостом и не содержала в себе текста от автора.

Перейдем к описательной статистике:

Переменная hour тут является объектом, однако в реальности она числовая, поэтому нам необходимо поменять ее тип.

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

Размер датасета (строки, столбцы): (8157, 14)

Дескриптивная статистика числовых переменных

Таблица разбита на две части, так как имеет слишком широкий формат.

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

С некоторыми переменными сильнее корреляция у лайков, с некоторыми - у репостов, но, в общем, переменная всех действий показывает неплохие результаты во всех случаях. Однако, наилучшие результаты выдаёт переменная просмотров (views). При этом, прогнозировать просмотры на основании параметров поста довольно не логично, ведь действие пользователя заключается именно в выставлении лайка или репоста, тогда мы понимаем, что пользователь среагировал на публикацию на официальной странице. Поэтому будем использовать total_action, как целевую переменную и удалим переменные лайков, репостов, комментариев и просмотров, так как они не могут быть использованы для предсказания суммарных действий пользователей. Также, построим матрицу всех числовых взаимосвязей. (см. Рисунок 31)

Рисунок 31 - Матрица взаимосвязей числовых переменных

Источник: Составлено автором в Python

Попробуем создать новые переменные, например, количество слов в посте, день недели создания поста, дамми-переменную выходного дня, а также попробуем добавить переменную hour в квадрате, так как похоже, что зависимость часа публикации и количества просмотров близка к квадратичной, чем к линейной. Такая же зависимость и в количестве символов с количеством просмотров. Однако добавим только квадрат количества символов. Затем, снова построим матрицу числовых взаимосвязей. (см. Рисунок 32)

Рисунок 32 - Матрица взаимосвязей числовых переменных

Источник: Составлено автором в Python

Далее, построим боксплот, на котором посмотрим количество выбросов. (см. Рисунок 33)

Рисунок 33 - Диаграмма размаха

Источник: Составлено автором в Python

Теперь удалим выбросы по целевой переменной, которых здесь довольно много, судя по боксплоту. Эти выбросы являются публикациями, которые набрали лайков и репостов в несколько раз больше, чем другие. Это объясняется тем, что администрация некоторые публикации закрепляла на стене на долгое время, соответственно такие публикации всегда находились на первом месте и имели внушительную статистику по всем показателям. Также, выбросами могут быть разовые публикации, которые направлены на затрагивание эмоций подписчиков, например, поздравление с Новым годом или Днем матери. Такие публикации всегда набирают большое количество лайков и репостов на абсолютно любой странице вне зависимости от тематики сообщества. Если не удалить эти публикации, модель будет на них реагировать, соответственно завышать свой прогноз. Количество действий сделаем максимум 20. (см. Рисунок 34)

Рисунок 34 - Диаграмма размаха

Источник: Составлено автором в Python

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

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

Теперь необходимо создать переменную количества слов в посте:

Теперь необходимо обработать числовые переменные. Для обработки числовых переменных отшкалируем числовые переменные (len_text и её квадрат, hour, photo, audio, video, link, poll, words), так, чтобы все они были, можно сказать, по одной шкале. Для этого используем стандартную процедуру: вычтем у каждой переменной среднее и разделим на стандартное отклонение.

После конвертации данных, переменные будут выглядеть следующим образом:

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

Получилось слишком большое количество параметров (30579), это количество различных слов в постах. Для того, чтобы модель адекватно работала, количество параметров должно быть значительно меньше, чем количество наблюдений. Чтобы это осуществить с минимальной потерей информации, воспользуемся методом главных компонент, для понижения размерности, то есть спроектируем выборку на новую гиперплоскость в исходном пространстве.

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

Все это выведем на графике. (см. Рисунок 35)

Рисунок 35 - График количества параметров

Источник: Составлено автором в Python

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

Теперь наш датафрейм будет выглядеть так:

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

Датасет:

Теперь отделим целевую переменную и оставшийся датасет на Y и X. Предполагаем, что это регрессия и будем решать данную задачу. За метрику возьмем RMSE (где, +inf - неудовлетворительно, 0 - отлично). Интепретируется как среднее отклонение прогноза.

Разделим нашу выборку на обучающую и тестовую. На обучающей выборке будем обучать нашу модель, а на тестовой будем предсказывать. Внутри деления перемешаем данные.

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

RMSE - 4.22, неплохой результат для такого небольшого количества данных, особенно для сообщества в этой сфере.

Теперь посмотрим на влиятельность переменных, по убыванию:

Feature Id Importances

0 photo 6.426415

1 hour 5.467498

2 len_text_sq 3.377249

3 12 3.063443

4 video 2.846449

5 len_text 2.375284

6 weekday 1.761286

7 77 1.558596

8 158 1.530390

9 39 1.408600

10 138 1.273325

11 words 1.238658

12 holiday 1.078074

13 135 0.962312

14 10 0.958693

15 18 0.953937

16 50 0.893027

17 118 0.877049

18 13 0.874121

19 52 0.853780

20 30 0.711901

21 192 0.710585

22 139 0.709669

23 43 0.699636

24 14 0.697229

25 148 0.684591

26 58 0.675317

27 45 0.649746

28 79 0.647454

29 169 0.643333

181 25 0.170045

182 160 0.166209

183 24 0.165004

184 84 0.162987

185 157 0.162339

186 37 0.151497

187 133 0.150670

188 199 0.149021

189 81 0.138762

190 178 0.134652

191 151 0.134436

192 78 0.133886

193 97 0.128222

194 152 0.124540

195 134 0.121603

196 179 0.116273

197 181 0.114397

198 35 0.108394

199 184 0.105491

200 128 0.105429

201 100 0.104772

202 114 0.096684

203 88 0.091167

204 189 0.090061

205 7 0.083349

206 audio 0.069281

207 93 0.062101

208 4 0.060740

209 95 0.054888

210 poll 0.002467

Мы видим, что единственным незначимым параметром является количество опросов в посте. Удалим этот параметр и снова запустим модель.

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

Feature Id Importances

0 photo 5.429041

1 hour 4.350013

2 len_text_sq 2.973052

3 12 2.555829

4 len_text 2.359345

5 video 2.333168

6 weekday 1.871099

7 39 1.432875

8 158 1.396935

9 77 1.343561

10 words 1.234146

11 135 1.022966

12 138 0.992112

13 10 0.987116

14 50 0.899494

15 45 0.884462

16 99 0.881010

17 23 0.835443

18 13 0.829878

19 holiday 0.827091

20 118 0.823652

21 192 0.808225

22 58 0.797851

23 18 0.776743

24 52 0.765239

25 79 0.734433

26 43 0.732437

27 30 0.724523

28 139 0.718813

29 119 0.703617

180 26 0.164510

181 136 0.164070

182 124 0.163555

Источник: https://otherreferats.allbest.ru/download/1222837/