So konstruieren Sie Wissensdiagramme aus unstrukturierten Datenquellen.
Vorbehalt: Dieses Repo enthält den Quellcode und Notizbücher, die ein Anleitungs -Tutorial begleiten. Es ist nicht als Paketbibliothek oder als Produkt gedacht.
python3 -m venv venv
source venv/bin/activate
python3 -m pip install -U pip wheel
python3 -m pip install -r requirements.txt Die vollständige Demo -App befindet sich in demo.py :
python3 demo.py Diese Demo kratzt Textquellen aus Artikeln über die Verknüpfung zwischen Demenz und regelmäßig essen verarbeitetes rotes Fleisch und erzeugt dann ein Diagramm mit NetworkX , einer Vektordatenbank mit Text -Chunk -Einbettungen unter Verwendung von LanceDB und einem Einbettungsmodell mit gensim.Word2Vec , wobei die Ergebnisse sind:
data/kg.json - Serialisierung von NetworkX -Graphendata/lancedb - Vektor -Datenbanktabellendata/entity.w2v - Einbettungsmodell für Entitätkg.html - Interaktive Graph Visualisierung in PyVis Eine Sammlung von Jupyter -Notizbüchern veranschaulicht wichtige Schritte in diesem Workflow:
./venv/bin/jupyter-labconstruct.ipynb - detaillierte KG -Konstruktion unter Verwendung eines lexikalischen Diagrammschunk.ipynb - Einfaches Beispiel dafürvector.ipynb - Abfrage LancyB Tabelle für Text -Chunk -Einbettungen (nach dem Ausführen von demo.py )embed.ipynb - Fragen Sie das Einbettungsmodell des Entität ab (nach Ausführen von demo.py ) Ziel: Konstruieren Sie ein Knowledge Graph (KG) mit Open-Source-Bibliotheken, in dem Deep-Learning-Modelle eng angelegte Punktlösungen bereitstellen, um Komponenten für ein Diagramm zu generieren: Knoten, Kanten, Eigenschaften.
Diese Schritte definieren einen verallgemeinerten Prozess, bei dem dieses Tutorial im lexikalischen Diagramm aufnimmt:
Semantische Überlagerung:
Datendiagramm:
Lexikalische Grafik:
Dieser Ansatz steht im Gegensatz zur Verwendung eines großen Sprachmodells (LLM) als One -Größe für alle "Black Box" -Ansatz, um die gesamte Grafik automatisch zu erzeugen. Black Box -Ansätze eignen sich nicht gut für KG -Praktiken in regulierten Umgebungen, in denen Audits, Erklärungen, Beweise, Datenproduktion usw. erforderlich sind.
Besser noch, überprüfen Sie die Zwischenergebnisse nach jedem Inferenzschritt, um menschliches Feedback für die Kuratierung der KG -Komponenten, z. B. mit Argilla , zu sammeln.
KGs, die in missionskritischen Apps verwendet werden, wie z. B. Untersuchungen, beruhen im Allgemeinen auf Aktualisierungen, nicht auf einem einstufigen Konstruktionsprozess. Durch die Erzeugung eines KG basierend auf den obigen Schritten können Aktualisierungen effektiver behandelt werden. Nachgeschaltete Apps wie Graph Rag für die Erde der LLM -Ergebnisse profitieren auch von einer verbesserten Datenqualität.
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 HINWEIS: Sie müssen das nre.sh -Skript verwenden, um openNre-Vorausgebläer-Modelle zu laden, bevor Sie das opennre.ipynb -Notizbuch ausführen.