CIDMET — Инструмент кросс-базового сопоставления, идентификации и дедупликации для экспорта библиографических записей
CIDMET (Cross-database Identification and De-duplication Matching Export Tool) — это настольное приложение для библиометрических исследований. Оно принимает на вход локальную библиотеку ссылок в формате BibTeX и автоматически сопоставляет записи с экспортированными данными из трёх крупнейших академических баз данных — Web of Science (WoS), Scopus и Engineering Village (EI/Compendex), — после чего извлекает совпавшие подмножества в нативном формате каждой базы и предоставляет возможность объединённого экспорта с дедупликацией в стиле любой целевой базы данных.
Это решает распространённую проблему библиометрического анализа: такие инструменты, как VOSviewer, CiteSpace или Bibliometrix, требуют экспортные файлы в формате одной базы данных, однако полный набор литературы часто охватывает несколько баз данных, результаты которых необходимо объединить и дедуплицировать.
- Поддержка нескольких баз данных — WoS (TXT / XLS), Scopus (CSV / TXT, английский и китайский), EI (CSV / TXT)
- Трёхуровневая стратегия сопоставления
- Точное совпадение DOI (достоверность 100%)
- Точное совпадение заголовка с Unicode-нормализацией (достоверность 99%)
- Нечёткое совпадение заголовка с валидацией автора и года (настраиваемый порог, по умолчанию 90%)
- Экспорт подмножеств с сохранением формата — выходные файлы сразу пригодны для использования в библиометрическом ПО
- Объединённый экспорт с преобразованием формата авторов — автоматическое преобразование имён авторов в соответствии с форматами WoS / Scopus / EI
- Автоматическая дедупликация — обнаружение и просмотр записей, совпавших с несколькими записями из баз данных
| Уровень | Метод | Достоверность | Описание |
|---|---|---|---|
| 1 | Точное совпадение DOI | 100% | Нормализованное сравнение DOI (без учёта регистра, удаление префиксов) |
| 2 | Точное совпадение заголовка | 99% | NFKD-нормализация, без учёта регистра, удаление спецсимволов |
| 3 | Нечёткое совпадение заголовка | Настраиваемый (по умолчанию 90%) | Оценка сходства RapidFuzz + валидация фамилии первого автора (≥80%) + валидация года |
| База данных | Форматы импорта | Экспорт подмножества |
|---|---|---|
| Web of Science | TXT (теговый формат), XLS | TXT, XLS |
| Scopus | CSV, TXT (англ./кит.) | CSV, TXT |
| Engineering Village | CSV, TXT | CSV, TXT |
Требования: Python 3.9+
# Клонирование репозитория
git clone https://github.com/GarGarfie/CIDMET.git
cd CIDMET
# Установка зависимостей
pip install -r requirements.txt| Пакет | Назначение |
|---|---|
| PySide6 ≥ 6.5 | GUI-фреймворк (Qt for Python) |
| bibtexparser ≥ 1.4, < 2.0 | Разбор файлов BibTeX |
| rapidfuzz ≥ 3.0 | Нечёткое сравнение строк |
| chardet ≥ 5.0 | Определение кодировки символов |
| xlrd ≥ 2.0 | Чтение файлов Excel .xls |
| xlwt ≥ 1.3 | Запись файлов Excel .xls |
| openpyxl ≥ 3.1 | Запись файлов Excel .xlsx |
python main.py- Выберите файл BibTeX — укажите вашу библиотеку ссылок (
.bib) - Добавьте файлы баз данных — перетащите или выберите через проводник экспортные файлы WoS / Scopus / EI
- Укажите каталог вывода — выберите место сохранения подмножеств и объединённых файлов
- Настройте порог нечёткого сопоставления (необязательно) — ползунок от 50% до 100%, по умолчанию 90%
- Нажмите «Запуск сопоставления» — инструмент обработает файлы и выполнит трёхуровневое сопоставление
- Просмотрите результаты — на вкладке «Результаты» отображаются статистика, детали совпадений и несовпавшие записи
- Экспортируйте объединённый файл (необязательно) — выберите шаблон целевого формата и экспортируйте объединённые записи
CIDMET/
├── main.py # Точка входа приложения
├── gui_app.py # GUI на PySide6 (главное окно, перетаскивание, прогресс, вкладки)
├── parsers.py # Парсеры форматов баз данных (WoS/Scopus/EI × TXT/CSV/XLS)
├── matcher.py # Трёхуровневый механизм сопоставления
├── writers.py # Запись подмножеств с сохранением формата и объединённый экспорт
├── utils.py # Определение кодировки, нормализация DOI/заголовков, утилиты
├── draw_flowchart.py # Генератор диаграммы потоков данных
├── requirements.txt # Зависимости Python
└── fileTemplate/ # Примеры экспортных файлов баз данных
При объединении совпавших записей из разных баз данных CIDMET автоматически преобразует имена авторов в целевой формат:
| Целевой формат | Сокращённая форма | Полная форма |
|---|---|---|
| WoS | Gu, S; Wu, YQ |
Gu, Sheng; Wu, Yanqi |
| Scopus | Gu, S.; Wu, Y.Q. |
Gu, Sheng; Wu, Yanqi |
| EI | Gu, Sheng (1); Wu, Yanqi (1) |
— |
Проект распространяется под лицензией MIT.
Если вы используете CIDMET в своём исследовании, пожалуйста, рассмотрите возможность цитирования:
Xiao, S (2026). CIDMET: Cross-database Identification and De-duplication Matching Export Tool. GitHub. https://github.com/GarGarfie/CIDMET
BibTeX
@software{cidmet2026,
author = {Xiao, Shuoting},
title = {CIDMET: Cross-database Identification and De-duplication Matching Export Tool},
year = {2026},
url = {https://github.com/GarGarfie/CIDMET}
}