strwythura
1.0.0
如何从非结构化数据源构造知识图。
警告:此存储库提供了符合教学教程的源代码和笔记本;它不打算作为包装库或产品。
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 NetworkX图的序列化data/lancedb矢量数据库表data/entity.w2v实体嵌入模型kg.html PyVis中的交互式图可视化Jupyter笔记本的集合说明了此工作流程中的重要步骤:
./venv/bin/jupyter-labconstruct.ipynbchunk.ipynb如何刮擦和块文字的简单示例vector.ipynb查询文本块嵌入式lancedb表(在运行demo.py之后)embed.ipynb查询实体嵌入模型(运行demo.py之后) 目的:使用开源库构建知识图(kg),其中深度学习模型提供了狭窄的点解决方案来生成图形组件:节点,边缘,属性。
这些步骤定义了一个广义过程,该教程在词汇图上拾取:
语义叠加:
数据图:
词汇图:
这种方法与使用大型语言模型(LLM)作为一个尺寸适合所有“黑匣子”方法来自动生成整个图形。黑匣子方法对于在受监管环境中的KG实践不佳,需要审核,说明,证据,数据出处等。
更好的是,在每个推理步骤之后,回顾中间结果,以收集人类反馈,以使用Argilla策划KG组件,例如,例如。
在关键任务应用程序(例如调查)中使用的KGS通常依赖于更新,而不是一步施工过程。通过基于上述步骤生产公斤,可以更有效地处理更新。下游应用程序(例如用于接地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.ipynb笔记本之前加载OpenNRE预训练的模型。