構造化されていないデータソースから知識グラフを構築する方法。
警告:このレポは、教育チュートリアルに添付されたソースコードとノートブックを提供します。パッケージライブラリや製品として意図されていません。
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 -Vectorデータベーステーブルdata/entity.w2vエンティティ埋め込みモデルkg.html PyVisのインタラクティブグラフの視覚化Jupyterノートブックのコレクションは、このワークフロー内の重要な手順を示しています。
./venv/bin/jupyter-labconstruct.ipynb語彙グラフを使用した詳細なkg構造chunk.ipynbスクレイプとチャンクテキストの簡単な例vector.ipynbテキストチャンク埋め込みのためのクエリlancedbテーブル( demo.pyを実行した後)embed.ipynb -Entity Embedding Modelをクエリします( demo.pyを実行した後) 目的:オープンソースライブラリを使用して知識グラフ(kg)を構築します。深い学習モデルは、ノード、エッジ、プロパティのグラフのコンポーネントを生成するために、狭い学習モデルを提供します。
これらの手順は、このチュートリアルが語彙グラフでピックアップする一般化プロセスを定義します。
セマンティックオーバーレイ:
データグラフ:
語彙グラフ:
このアプローチは、1つのサイズとして大規模な言語モデル(LLM)を使用することとは対照的に、すべての「ブラックボックス」アプローチに適合し、グラフ全体を自動的に生成します。ブラックボックスのアプローチは、監査、説明、証拠、データの起源などが必要な規制環境でのKGプラクティスではうまく機能しません。
さらに良いことに、各推論ステップの後に中間結果を確認して、たとえばArgillaを使用してKGコンポーネントをキュレーションするための人間のフィードバックを収集します。
調査などのミッションクリティカルなアプリで使用されるKGSは、一般に、ワンステップの構築プロセスではなく、更新に依存しています。上記の手順に基づいてKGを作成することにより、更新をより効果的に処理できます。 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注: opennre.ipynbノートブックを実行する前に、 nre.shスクリプトを使用してOpenNRE事前トレーニングモデルをロードする必要があります。