Семантическое сопоставление записей (семантический матчинг) на основе векторных эмбеддингов
Vector Matcher — это десктопное приложение для семантического сопоставления (матчинга) текстовых данных.
Программа использует нейросетевую модель BGE-M3 для генерации векторных представлений (эмбеддингов) текста. Вместо поиска по точному совпадению символов, она анализирует смысл: для каждой записи из исходного файла (old) программа находит наиболее подходящую по смыслу запись в целевом файле (new).
Сопоставление происходит путем вычисления косинусного сходства между векторами. Результат выводится в виде таблицы с коэффициентом совпадения (от 0 до 1), который визуально подсвечивается цветами (зеленый, желтый, красный) в зависимости от заданных пользователем порогов. Вычисления могут выполняться как на CPU, так и с аппаратным ускорением на видеокартах NVIDIA (CUDA).
Пример применения - составление карты редиректов со старой структуры на новую. При этом url старого/нового является id, а, допустим, h1 - data.
При первом запуске скачается модель bge-m3(4+ Гб) вам в домашнюю папку C:\Users\%USERPROFILE%\.cache\huggingface\hub\
Для ускорения вычислений используется PyTorch использующий CUDA Toolkit. Рекомендуется видеокарта NVidia с 4Гб VRAM.
Раскаповать, запустить. Файлы old.tsv & new.tsv - с разделителем tab в папке рядом с .exe будут загружены автоматически. Также файлы можно загрузить из интерфейса.
Сборка, допустим ubuntu# 1. Клонируем и создаем venv на Python 3.12
git clone https://github.com/ighor13/VectorMatcher.git
cd VectorMatcher
python3.12 -m venv venv
source venv/bin/activate
# 2. Ставим зависимости (CUDA или CPU — выбираем одну строку)
# С CUDA (NVIDIA):
pip install torch --index-url https://download.pytorch.org/whl/cu121
# Без CUDA (только CPU):
# pip install torch --index-url https://download.pytorch.org/whl/cpu
pip install "sentence-transformers==3.4.1" "transformers==4.49.0" pandas PySide6 pyinstaller
# 3. Собираем
pyinstaller matcher.spec --clean --noconfirm
Бинарник Win64, Python + PySide6 (Qt), PyInstaller, ~ 2,7Гб
исходники: https://github.com/ighor13/VectorMatcher
