ulianagusar/ML_week_nlp_solving

Jupyter Notebook

1

68 commits

updated Apr 5, 2025

See the code

README

Military Message Classifier

Розширена веб-додаток для автоматизованого аналізу військових повідомлень із Telegram-каналів.

Ліцензія: MIT Python 3.10 Angular 14.0.0 Статус: В розробці

Military Message Classifier автоматизує збір, обробку та класифікацію повідомлень із Telegram-каналів. Використовуючи NLP і машинне навчання, він витягує важливі військові дані, розпізнає об’єкти, такі як зброя та локації, і класифікує повідомлення за критеріями військового досвіду. Підходить для військового аналізу, надаючи корисну розвідувальну інформацію через автоматизовані звіти.


Зміст


Функціонал

  • Збір повідомлень: Автоматично отримує повідомлення із зазначених Telegram-каналів.
  • Попередня обробка тексту: Очищає та готує текст повідомлень до аналізу.
  • Розпізнавання сутностей: Виявляє іменовані сутності (особи, локації, зброя) за допомогою NLP.
  • Класифікація досвіду: Визначає військовий досвід у повідомленнях (моделі BERT, XGBoost).
  • Дедуплікація: Видаляє дублікати повідомлень для забезпечення унікальності даних.
  • Генерація звітів: Створює звіти ODCR (Спостереження, Обговорення, Висновки, Рекомендації).
  • Веб-інтерфейс: Дозволяє переглядати, фільтрувати та взаємодіяти з класифікованими повідомленнями.

Архітектура

Проєкт поділений на бекенд і фронтенд:

Бекенд (Flask)

Відповідає за взаємодію з базою даних, обробку повідомлень і API:

  • database/ – Скрипти ініціалізації БД (init_db.py).
  • experience/ – Класифікація військового досвіду (exp.py).
  • services/ – NLP-модулі:
    • ner.py – Розпізнавання іменованих сутностей.
    • odsr.py – Генерація звітів ODCR.
    • preproc.py – Попередня обробка тексту.
    • remove_duplicates.py – Дедуплікація.
  • utils/ – Допоміжні файли (weapon.txt).
  • main.py – Основний скрипт Flask-додатку.

Фронтенд (Angular)

Забезпечує веб-інтерфейс:

  • app.component.* – Основний компонент додатку.
  • app.config.ts, app.routes.ts – Конфігурація та маршрутизація.

Моделі (ML/NLP)

Скрипти машинного навчання:

  • Sberbank_AI_ruBERT.py – Класифікація на базі BERT.
  • XGBoost_tokenizer_BERT.py – XGBoost із вбудовуваннями BERT.
  • use_model.py – Скрипт використання моделей.

Попередня обробка (Jupyter)

Jupyter-зошити для обробки та маркування даних:

  • get_new_data.ipynb – Отримання та обробка даних.
  • label_data.ipynb – Маркування даних.
  • levenshtein.ipynb – Дедуплікація за допомогою відстані Левенштейна.

image

Встановлення

Клонування репозиторію

git clone https://github.com/yourusername/military-message-classifier.git
cd military-message-classifier

Налаштування бекенду

Встановлення залежностей Python:

pip install -r requirements.txt

Ініціалізація бази даних:

python backend/database/init_db.py

Налаштування фронтенду

Перехід до директорії фронтенду:

cd frontend

Встановлення залежностей:

npm install

Запуск з докером

  1. Перший варіант це білдити окремо кожен image
docker build -t front -f ./frontend/Dockerfile ./frontend
 docker build -t back1 -f backend/Dockerfile .
docker build -t back2 -f backend/experience/Dockerfile .
 docker-compose up
  1. Другий варіант це білдити весь докер композ (тобі необхідно першу частину файлу закоментувати і розкоментувати другу)
docker-compose up --build
 docker-compose up

Налаштування змінних оточення

Створіть локально .env файл Гляньте у .env.example, які саме змінні оточення потрібно вказати у .env файлі Вкажіть API-ключі (Telegram API, OpenAI API) та інші конфігураційні змінні.


Використання

Запуск бекенд-сервера

python backend/main.py

Запуск фронтенд-сервера

cd frontend
ng serve

Доступ до додатку

Відкрийте браузер та перейдіть на: http://localhost:4200

Функціональність

  • Отримання повідомлень із Telegram-каналів.
  • Фільтрація та взаємодія з класифікованими повідомленнями.
  • Генерація та завантаження звітів ODCR.

ulianagusar/ML_week_nlp_solving

Jupyter Notebook

1

68 commits

updated Apr 5, 2025

See the code

README

Military Message Classifier

Розширена веб-додаток для автоматизованого аналізу військових повідомлень із Telegram-каналів.

Ліцензія: MIT Python 3.10 Angular 14.0.0 Статус: В розробці

Military Message Classifier автоматизує збір, обробку та класифікацію повідомлень із Telegram-каналів. Використовуючи NLP і машинне навчання, він витягує важливі військові дані, розпізнає об’єкти, такі як зброя та локації, і класифікує повідомлення за критеріями військового досвіду. Підходить для військового аналізу, надаючи корисну розвідувальну інформацію через автоматизовані звіти.


Зміст


Функціонал

  • Збір повідомлень: Автоматично отримує повідомлення із зазначених Telegram-каналів.
  • Попередня обробка тексту: Очищає та готує текст повідомлень до аналізу.
  • Розпізнавання сутностей: Виявляє іменовані сутності (особи, локації, зброя) за допомогою NLP.
  • Класифікація досвіду: Визначає військовий досвід у повідомленнях (моделі BERT, XGBoost).
  • Дедуплікація: Видаляє дублікати повідомлень для забезпечення унікальності даних.
  • Генерація звітів: Створює звіти ODCR (Спостереження, Обговорення, Висновки, Рекомендації).
  • Веб-інтерфейс: Дозволяє переглядати, фільтрувати та взаємодіяти з класифікованими повідомленнями.

Архітектура

Проєкт поділений на бекенд і фронтенд:

Бекенд (Flask)

Відповідає за взаємодію з базою даних, обробку повідомлень і API:

  • database/ – Скрипти ініціалізації БД (init_db.py).
  • experience/ – Класифікація військового досвіду (exp.py).
  • services/ – NLP-модулі:
    • ner.py – Розпізнавання іменованих сутностей.
    • odsr.py – Генерація звітів ODCR.
    • preproc.py – Попередня обробка тексту.
    • remove_duplicates.py – Дедуплікація.
  • utils/ – Допоміжні файли (weapon.txt).
  • main.py – Основний скрипт Flask-додатку.

Фронтенд (Angular)

Забезпечує веб-інтерфейс:

  • app.component.* – Основний компонент додатку.
  • app.config.ts, app.routes.ts – Конфігурація та маршрутизація.

Моделі (ML/NLP)

Скрипти машинного навчання:

  • Sberbank_AI_ruBERT.py – Класифікація на базі BERT.
  • XGBoost_tokenizer_BERT.py – XGBoost із вбудовуваннями BERT.
  • use_model.py – Скрипт використання моделей.

Попередня обробка (Jupyter)

Jupyter-зошити для обробки та маркування даних:

  • get_new_data.ipynb – Отримання та обробка даних.
  • label_data.ipynb – Маркування даних.
  • levenshtein.ipynb – Дедуплікація за допомогою відстані Левенштейна.

image

Встановлення

Клонування репозиторію

git clone https://github.com/yourusername/military-message-classifier.git
cd military-message-classifier

Налаштування бекенду

Встановлення залежностей Python:

pip install -r requirements.txt

Ініціалізація бази даних:

python backend/database/init_db.py

Налаштування фронтенду

Перехід до директорії фронтенду:

cd frontend

Встановлення залежностей:

npm install

Запуск з докером

  1. Перший варіант це білдити окремо кожен image
docker build -t front -f ./frontend/Dockerfile ./frontend
 docker build -t back1 -f backend/Dockerfile .
docker build -t back2 -f backend/experience/Dockerfile .
 docker-compose up
  1. Другий варіант це білдити весь докер композ (тобі необхідно першу частину файлу закоментувати і розкоментувати другу)
docker-compose up --build
 docker-compose up

Налаштування змінних оточення

Створіть локально .env файл Гляньте у .env.example, які саме змінні оточення потрібно вказати у .env файлі Вкажіть API-ключі (Telegram API, OpenAI API) та інші конфігураційні змінні.


Використання

Запуск бекенд-сервера

python backend/main.py

Запуск фронтенд-сервера

cd frontend
ng serve

Доступ до додатку

Відкрийте браузер та перейдіть на: http://localhost:4200

Функціональність

  • Отримання повідомлень із Telegram-каналів.
  • Фільтрація та взаємодія з класифікованими повідомленнями.
  • Генерація та завантаження звітів ODCR.