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預訓練的模型。