README.md

Проект “Record linkage Innohack”

Описание

Этот проект предназначен для связывания записей из трех CSV-таблиц (table_dataset1, table_dataset2, table_dataset3) в ClickHouse, используя методы машинного обучения и графовые алгоритмы. В результате работы проекта формируется таблица table_results, содержащая идентификаторы записей, сгруппированных по сходству.

Структура проекта

docker-entrypoint-initdb.d/
src/
  siamese/
  blocking.py
  graph.py
  main.py
  siamese_neural_network.py
  siamese_training.py
  siamese_using.py
.gitignore
Dockerfile
build_solution.sh
docker-compose.yaml
requirements.txt

Установка и запуск

Предварительные требования

  • Docker
  • Docker Compose

Шаги для запуска проекта

  1. Клонирование репозитория:

    git clone https://github.com/your-repo/record-linking-clickhouse.git
    cd record-linking-clickhouse
    
  2. Сборка Docker-образа:

    ./build_solution.sh
    
  3. Запуск проекта:

    docker-compose up -d
    
  4. Проверка результатов:

    После запуска проекта, результаты будут доступны в таблице table_results в ClickHouse.

Описание модулей

docker-entrypoint-initdb.d/

Директория, содержащая скрипты инициализации ClickHouse. Скрипты выполняются при первом запуске контейнера ClickHouse.

src/

Основная директория с исходным кодом проекта.

siamese/

Директория, содержащая модели и функции, связанные с Siamese Neural Network.

blocking.py

Модуль для блокировки записей. Включает в себя выбор признаков, создание блоков и их объединение.

graph.py

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

main.py

Главный модуль, который управляет всем процессом связывания записей.

siamese_neural_network.py

Модуль, содержащий определение Siamese Neural Network.

siamese_training.py

Модуль для обучения Siamese Neural Network.

siamese_using.py

Модуль для использования обученной Siamese Neural Network для сравнения записей.

.gitignore

Файл, определяющий игнорируемые файлы и директории для Git.

Dockerfile

Файл для сборки Docker-образа проекта.

build_solution.sh

Скрипт для сборки Docker-образа проекта.

docker-compose.yaml

Файл для запуска проекта с использованием Docker Compose.

requirements.txt

Файл, содержащий список зависимостей Python.

Тестирование

Проект протестирован на данных из трех CSV-таблиц. Результаты тестирования показали, что решение работает в рамках ограничений (максимальное время выполнения — 20 минут).

Лицензия

Этот проект распространяется под лицензией MIT. Подробности смотрите в файле LICENSE.

Contributing

Если у вас есть вопросы, то не задавайте их, пожалуйста.

Конвейеры
0 успешных
0 с ошибкой