Skip to content

Latest commit

 

History

History
128 lines (94 loc) · 9.13 KB

File metadata and controls

128 lines (94 loc) · 9.13 KB

CIDMET — Инструмент кросс-базового сопоставления, идентификации и дедупликации для экспорта библиографических записей

en zh ru


Введение

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

Порядок работы

  1. Выберите файл BibTeX — укажите вашу библиотеку ссылок (.bib)
  2. Добавьте файлы баз данных — перетащите или выберите через проводник экспортные файлы WoS / Scopus / EI
  3. Укажите каталог вывода — выберите место сохранения подмножеств и объединённых файлов
  4. Настройте порог нечёткого сопоставления (необязательно) — ползунок от 50% до 100%, по умолчанию 90%
  5. Нажмите «Запуск сопоставления» — инструмент обработает файлы и выполнит трёхуровневое сопоставление
  6. Просмотрите результаты — на вкладке «Результаты» отображаются статистика, детали совпадений и несовпавшие записи
  7. Экспортируйте объединённый файл (необязательно) — выберите шаблон целевого формата и экспортируйте объединённые записи

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

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}
}