Как построить графики знаний из неструктурированных источников данных.
Предостережение: этот репо содержит исходный код и записные книжки, которые сопровождают учебное пособие; Он не предназначен как библиотека или продукт.
python3 -m venv venv
source venv/bin/activate
python3 -m pip install -U pip wheel
python3 -m pip install -r requirements.txt Полное демонстрационное приложение находится в demo.py :
python3 demo.py Это демонстрационное сохранение текстовых источников из статей о связи между деменцией и регулярным питанием обработанного красного мяса, а затем производит график с использованием NetworkX , векторной базы данных текстовых встроений кусок с использованием LanceDB , и модели встраивания объекта с использованием gensim.Word2Vec , где результаты: результаты: результаты: результаты: результаты: результаты: результаты: результаты: результаты: результаты: результаты
data/kg.json - сериализация Graph NetworkXdata/lancedb - таблицы векторных баз данныхdata/entity.w2v - модель встраивания объектаkg.html - Интерактивная визуализация графика в PyVis Коллекция ноутбуков Jupyter иллюстрирует важные шаги в этом рабочем процессе:
./venv/bin/jupyter-labconstruct.ipynb - подробная конструкция кг с использованием лексического графикаchunk.ipynb - простой пример того, как очистить и кусочек текстаvector.ipynb - таблица запроса Lancedb для текстовых внедрений (после запуска demo.py )embed.ipynb - Запрос модель встраивания сущности (после запуска demo.py ) Цель: построить график знаний (кг), используя библиотеки с открытым исходным кодом, где модели глубокого обучения предоставляют узко ориентированные точечные решения для генерации компонентов для графика: узлы, края, свойства.
Эти шаги определяют обобщенный процесс, где этот учебник поднимается на лексическом графике :
Семантическое наложение:
График данных:
Лексический график:
Этот подход в отличие от использования большой языковой модели (LLM) в качестве одного размера подходит весь подход «черный ящик» для автоматического генерации всего графа. Подходы Black Box не работают хорошо для практик KG в регулируемых средах, где требуются аудиты, объяснения, доказательства, происхождение данных и т. Д.
Еще лучше, просмотрите промежуточные результаты после каждого шага вывода для сбора обратной связи человека для куратора компонентов KG, например, с использованием Argilla .
KG, используемые в критически важных приложениях, таких как исследования, как правило, полагаются на обновления, а не на одноступенчатый строительный процесс. Производя кг на основе приведенных выше шагов, обновления можно обрабатывать более эффективно. Приложения вниз по течению, такие как Graph Rag для заземления результатов LLM, также выиграют от улучшения качества данных.
spaCy : https://spacy.io/GLiNER : https://github.com/urchade/glinerGLiREL : https://github.com/jackboyla/glirelOpenNRE : https://github.com/thunlp/opennreNetworkX : https://networkx.org/PyVis : https://github.com/westhealth/pyvisLanceDB : https://github.com/lancedb/lancedbgensim : https://github.com/piskvorky/gensimpandas : https://pandas.pydata.org/Pydantic : https://github.com/pydantic/pydanticPyinstrument : https://github.com/joerick/pyinstrument ПРИМЕЧАНИЕ. Вы должны использовать скрипт nre.sh для загрузки предварительно обученных моделей OpenNRE перед запуском ноутбука opennre.ipynb .