Библиотека для автоматического построения графов знаний (Knowledge Graphs) из текстовых, аудио и видео данных с использованием методов машинного обучения и обработки естественного языка.
KG-Library — это комплексная система для извлечения, фильтрации и построения графов знаний из различных источников информации. Проект предназначен для работы с литературными произведениями и позволяет автоматически создавать структурированные представления знаний о книгах, их авторах, персонажах, местах действия и взаимосвязях между ними.
git clone <repository-url>
cd KG_Library
.env на основе примера:NEO4J_AUTH=neo4j/your_password
NEO4J_URI=neo4j://neo4j:7687
EMAIL=your_email@example.com
docker-compose up --build
curl -sSL https://install.python-poetry.org | python3 -
poetry install
poetry shell
python -m spacy download en_core_web_lg
python -m coreferee install en
.envpython -m kg_library.main --input data/input/book.txt --model models/model.pt --confidence 0.65
python -m kg_library.main --input data/input/audio.mp3 --model models/model.pt --confidence 0.65
python -m kg_library.main --input data/input/video.mp4 --model models/model.pt --link-prediction
python -m kg_library.main --learn --size-dataset 200 --finetune
python -m kg_library.main --input data/input/new_book.txt --finetune --model models/base_model.pt
--input — путь к входному файлу (текст, аудио или видео)--model — путь к модели (.pt или .zip файл)--output — путь для сохранения обновленной модели (по умолчанию: models/kg_model_updated.zip)--confidence — порог уверенности для фильтрации триплетов (0-1, по умолчанию: 0.65)--link-prediction — включить предсказание связей внутри графа--learn — обучить модель с нуля--finetune — дообучить существующую модель--size-dataset — размер датасета для обучения (по умолчанию: 200)--graph-path — путь к существующему графу для обучения (.json)--load-triplets — загрузить сохраненные триплеты из JSON--neo4j — загрузить граф из Neo4j--no-neo4j — не сохранять граф в Neo4j--no-save — не сохранять обновленную модельkg_library/
├── main.py # Точка входа CLI
├── AppFacade.py # Основной фасад приложения
├── config.py # Конфигурация
├── db.py # Подключение к Neo4j
├── common/ # Общие компоненты
│ ├── GraphData.py # Структура графа знаний
│ ├── NodeData.py # Узлы графа
│ ├── EdgeData.py # Рёбра графа
│ ├── GraphJSON.py # Сериализация графов
│ └── BaseInformationExtractor.py # Извлечение данных из Wikidata
├── models/ # Модели машинного обучения
│ ├── entity_extraction/
│ │ └── TripletExtractor.py # Извлечение триплетов (mREBEL)
│ ├── training/
│ │ ├── GraphNN.py # Graph Neural Network
│ │ ├── CompGCNConv.py # CompGCN слой
│ │ ├── GraphTrainer.py # Обучение модели
│ │ ├── EmbeddingPreprocessor.py # Предобработка данных
│ │ └── DataLoader.py # Загрузка данных
│ └── evaluation/
│ └── TripletEvaluator.py # Оценка триплетов
└── utils/ # Утилиты
├── AudioProcessor.py # Обработка аудио (Whisper)
├── VideoProcessor.py # Обработка видео
├── Preprocessing.py # Предобработка текста
└── LogVisualizer.py # Визуализация логов
Модель обучается на датасете книг (kingkangkr/book_summary_dataset), извлекая триплеты из аннотаций и обогащая их данными из Wikidata. Процесс обучения включает:
Для просмотра метрик обучения:
tensorboard --logdir=runs
Проект интегрирован с Neo4j для хранения и визуализации графов знаний. После обработки данных граф автоматически сохраняется в базу данных (если не указан флаг --no-neo4j).
Доступ к Neo4j Browser: http://localhost:7474
.txt, .md, .rst, .tex.mp3, .wav, .ogg, .flac.mp4, .avi, .mov, .mkv.pt или .zip)Основные параметры конфигурации находятся в kg_library/config.py:
EMBEDDING_DIM — размерность эмбеддингов (по умолчанию: 64)HIDDEN_DIM — размерность скрытых слоёв (по умолчанию: 64)BATCHSIZE — размер батча (по умолчанию: 128)Тесты находятся в директории kg_library/tests/:
python -m pytest kg_library/tests/
bleeeana (bobkov.v03@icloud.com)
Версия: 0.1.0
60 commits
Python
98.1%
Shell
1.3%
Библиотека для автоматического построения графов знаний (Knowledge Graphs) из текстовых, аудио и видео данных с использованием методов машинного обучения и обработки естественного языка.
KG-Library — это комплексная система для извлечения, фильтрации и построения графов знаний из различных источников информации. Проект предназначен для работы с литературными произведениями и позволяет автоматически создавать структурированные представления знаний о книгах, их авторах, персонажах, местах действия и взаимосвязях между ними.
git clone <repository-url>
cd KG_Library
.env на основе примера:NEO4J_AUTH=neo4j/your_password
NEO4J_URI=neo4j://neo4j:7687
EMAIL=your_email@example.com
docker-compose up --build
curl -sSL https://install.python-poetry.org | python3 -
poetry install
poetry shell
python -m spacy download en_core_web_lg
python -m coreferee install en
.envpython -m kg_library.main --input data/input/book.txt --model models/model.pt --confidence 0.65
python -m kg_library.main --input data/input/audio.mp3 --model models/model.pt --confidence 0.65
python -m kg_library.main --input data/input/video.mp4 --model models/model.pt --link-prediction
python -m kg_library.main --learn --size-dataset 200 --finetune
python -m kg_library.main --input data/input/new_book.txt --finetune --model models/base_model.pt
--input — путь к входному файлу (текст, аудио или видео)--model — путь к модели (.pt или .zip файл)--output — путь для сохранения обновленной модели (по умолчанию: models/kg_model_updated.zip)--confidence — порог уверенности для фильтрации триплетов (0-1, по умолчанию: 0.65)--link-prediction — включить предсказание связей внутри графа--learn — обучить модель с нуля--finetune — дообучить существующую модель--size-dataset — размер датасета для обучения (по умолчанию: 200)--graph-path — путь к существующему графу для обучения (.json)--load-triplets — загрузить сохраненные триплеты из JSON--neo4j — загрузить граф из Neo4j--no-neo4j — не сохранять граф в Neo4j--no-save — не сохранять обновленную модельkg_library/
├── main.py # Точка входа CLI
├── AppFacade.py # Основной фасад приложения
├── config.py # Конфигурация
├── db.py # Подключение к Neo4j
├── common/ # Общие компоненты
│ ├── GraphData.py # Структура графа знаний
│ ├── NodeData.py # Узлы графа
│ ├── EdgeData.py # Рёбра графа
│ ├── GraphJSON.py # Сериализация графов
│ └── BaseInformationExtractor.py # Извлечение данных из Wikidata
├── models/ # Модели машинного обучения
│ ├── entity_extraction/
│ │ └── TripletExtractor.py # Извлечение триплетов (mREBEL)
│ ├── training/
│ │ ├── GraphNN.py # Graph Neural Network
│ │ ├── CompGCNConv.py # CompGCN слой
│ │ ├── GraphTrainer.py # Обучение модели
│ │ ├── EmbeddingPreprocessor.py # Предобработка данных
│ │ └── DataLoader.py # Загрузка данных
│ └── evaluation/
│ └── TripletEvaluator.py # Оценка триплетов
└── utils/ # Утилиты
├── AudioProcessor.py # Обработка аудио (Whisper)
├── VideoProcessor.py # Обработка видео
├── Preprocessing.py # Предобработка текста
└── LogVisualizer.py # Визуализация логов
Модель обучается на датасете книг (kingkangkr/book_summary_dataset), извлекая триплеты из аннотаций и обогащая их данными из Wikidata. Процесс обучения включает:
Для просмотра метрик обучения:
tensorboard --logdir=runs
Проект интегрирован с Neo4j для хранения и визуализации графов знаний. После обработки данных граф автоматически сохраняется в базу данных (если не указан флаг --no-neo4j).
Доступ к Neo4j Browser: http://localhost:7474
.txt, .md, .rst, .tex.mp3, .wav, .ogg, .flac.mp4, .avi, .mov, .mkv.pt или .zip)Основные параметры конфигурации находятся в kg_library/config.py:
EMBEDDING_DIM — размерность эмбеддингов (по умолчанию: 64)HIDDEN_DIM — размерность скрытых слоёв (по умолчанию: 64)BATCHSIZE — размер батча (по умолчанию: 128)Тесты находятся в директории kg_library/tests/:
python -m pytest kg_library/tests/
bleeeana (bobkov.v03@icloud.com)
Версия: 0.1.0
60 commits
Python
98.1%
Shell
1.3%