Mintik24's picture
🎉 Полный рефакторинг проекта Medical Transcriber
e275025

Knowledge Base Module

Модуль управления базой знаний медицинских терминов.

Структура

knowledge_base/
├── __init__.py              # Экспорты модуля
├── term_manager.py          # Менеджер медицинских терминов
├── term_loader.py           # Загрузка/сохранение терминов
└── README.md                # Документация

MedicalTermManager

Основной класс для управления медицинскими терминами.

Возможности

  • ✅ Загрузка терминов из файлов
  • ✅ Автоматическая категоризация (анатомия, патология, последовательности МРТ и т.д.)
  • ✅ Поиск и валидация терминов
  • ✅ Нормализация терминов
  • ✅ Статистика использования

Категории терминов

  • imaging: Методы визуализации (МРТ, КТ, МСКТ)
  • sequences: Последовательности МРТ (Т1-ВИ, Т2-ВИ, FLAIR)
  • anatomy: Анатомические термины (позвонки, диски, органы)
  • pathology: Патологические находки (грыжа, протрузия, стеноз)
  • modifiers: Модификаторы (гиперинтенсивный, дорзальная)

Примеры использования

Основное использование

from knowledge_base import MedicalTermManager

# Инициализация с загрузкой терминов
manager = MedicalTermManager(terms_file="medical_terms.txt")

# Получить все термины
all_terms = manager.get_all_terms()
print(f"Всего терминов: {len(all_terms)}")

# Получить термины в виде текста для промпта
terms_text = manager.get_terms_as_text()

# Поиск термина
results = manager.search_term("МРТ")
print(f"Найдено: {results}")

# Получить термины по категории
anatomy_terms = manager.get_category_terms("anatomy")
print(f"Анатомические термины: {anatomy_terms}")

Валидация транскрипции

# Проверить, какие медицинские термины присутствуют в тексте
transcription = "Пациенту проведено МРТ шейного отдела позвоночника..."
validation = manager.validate_transcription(transcription)

print(f"Найдено терминов: {validation['count']}")
print(f"Покрытие базы знаний: {validation['coverage']:.1%}")
print(f"Термины: {validation['found_terms']}")

Статистика

# Получить статистику по базе знаний
stats = manager.get_statistics()
print(f"Всего терминов: {stats['total_terms']}")
print(f"По категориям: {stats['categories']}")

Добавление новых терминов

# Добавить новый термин
manager.add_term("коронарная проекция")

# Сохранить обновленную базу
from knowledge_base import save_terms_to_file
save_terms_to_file(manager.get_all_terms(), "medical_terms_updated.txt")

Работа с файлами

from knowledge_base import load_terms_from_file, save_terms_to_file, merge_term_files

# Загрузка
terms = load_terms_from_file("medical_terms.txt")

# Сохранение
save_terms_to_file(list(terms), "output.txt")

# Объединение двух файлов
merge_term_files("terms1.txt", "terms2.txt", "merged_terms.txt")

Интеграция с LLM-корректором

from knowledge_base import MedicalTermManager
from corrector import MedicalLLMCorrector

# Создаем менеджер терминов
term_manager = MedicalTermManager("medical_terms.txt")

# Получаем термины для промпта
medical_terms_text = term_manager.get_terms_as_text()

# Передаем в корректор
corrector = MedicalLLMCorrector()
corrector.medical_terms = medical_terms_text  # Обновляем термины

# Коррекция
corrected, corrections = corrector.correct_transcription(original_text)

Формат файла с терминами

Файл должен содержать термины, разделенные запятыми:

МРТ, КТ, МСКТ, Т1-ВИ, Т2-ВИ, режим FLAIR, дорзальная грыжа, протрузия, L1-L5

API Reference

MedicalTermManager

  • __init__(terms_file) - Инициализация с загрузкой из файла
  • load_from_file(filepath) - Загрузить термины из файла
  • add_term(term) - Добавить термин
  • search_term(query) - Поиск термина
  • get_category_terms(category) - Получить термины категории
  • get_all_terms() - Получить все термины (список)
  • get_terms_as_text(separator) - Получить термины как текст
  • validate_transcription(text) - Валидировать транскрипцию
  • get_statistics() - Получить статистику

Вспомогательные функции

  • load_terms_from_file(filepath) - Загрузить термины
  • save_terms_to_file(terms, filepath) - Сохранить термины
  • merge_term_files(file1, file2, output) - Объединить файлы терминов