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 с ошибкой