Skip to content

teslaistra/stali_smart_city

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

"Умный город": Система анализа мнений

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

Средства разработки: Python, FastAPI, SQLite, scikit learn, Flutter.

Инструкция по запуску

Что нужно выполнить перед запуском кода

Для запуска сервера необходимо установить несколько внешних библиотек. Ниже приведены команды их установки посредством pip.

pip install uvicorn
pip install fastapi
pip install scikit-learn
pip install joblib

Как выполнять основные операции

Запуск сервера выполняется в командной строке из директории, где находится server.py. Требуется ввести команду:

uvicorn server:app

После этого на локальной машине будет запущен сервер, который реализует весь поддерживаемый функционал в рамках MVP.

По умолчанию сервер будет работать по следующему адресу(также адрес будет выведен в консоль при запуске) http://127.0.0.1:8000.

В базе данных по умолчанию в качестве тестового пользователя присутсвует аккаунт, логин к которому user, а пароль pass.

Протестировать минимальную работоспособность сервера можно следующим запросом: http://127.0.0.1:8000/login/?login=user&password=pass

Также аналогичная версия сервера работает на удаленном сервере в любое время http://194.58.122.45:6535/.

В server.py Вы можете найти более развернутые примеры запросов, основанных на тестовых данных из БД.

Как получать статистику с сервера

Интерфейс для работы со статистикой реализован в файле statistics/statistics.py.

Сборка мобильного приложения

Проект написан на Flutter. Используйте flutter build для сборки проекта.

Принципы работы

Схема базы данных: Схема базы данных

Реализованы 2 подхода к сбору мнений:

  1. Активный пользователь отвечает на несколько коротких вопросов в неделю.
  2. Пользователь может отправить жалобу или выступить с инициативой через систему.

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

Здесь:

  • - множество вопросов;
  • - множество жалоб;
  • - множество вариантов ответов на вопрос ;
  • - множество ответов на вопрос в свободной форме;
  • - вес вопроса ;
  • - положительность варианта (задается вручную);
  • - доля выбравших вариант пользователей среди всех проголосовавших;
  • - оценка тональности текста;
  • - гиперпараметр алгоритма - предполагаемое влияние жалоб на показатель.

Демонстрационное приложение

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

Интерфейс приложения

FAQ

Как сбор мнений улучшит индекс?

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

Почему статистика не будет субъективной?

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

Почему способ быстрее и проще текущих способов ручного сбора данных?

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published