Inhalt
Aktueller Ordner:
ARS_ExplainableAIARSXAI9.md
ARSXAI9 - Algorithmic Recursive Sequence Analysis mit Explainable AI
🎯 Einführung und Vision
ARSXAI9 ist eine universelle Analyseplattform für sequenzielle Daten mit Fokus auf Explainable AI (XAI). Die Kernidee: Statt willkürlicher Kodierungen (wie der früheren 5-Bit-Kodierung) basieren alle Erklärungen auf einer Probabilistischen Kontextfreien Grammatik (PCFG), die automatisch aus den Daten induziert wird.
Die zentrale Erkenntnis
Wiederkehrende Muster in Sequenzen sind die natürliche Grundlage für Erklärungen. ARSXAI9 abstrahiert diese Muster zu Nonterminalen und macht sie damit explizit und erklärbar.
Hauptanwendungsgebiete
| Bereich | Anwendung |
|---------|-----------|
| Dialoganalyse | Verkaufsgespräche, Beratungen, Therapiegespräche |
| Prozessanalyse | Workflow-Muster, Produktionsabläufe |
| Verhaltensanalyse | Aktionssequenzen, Interaktionsmuster |
| Code-Analyse | Programmabläufe, API-Aufrufsequenzen |
| Wissenschaft | Sequenzmuster in beliebigen Domänen |
---
🌟 Hauptmerkmale
🧠 PCFG-basierte Mustererkennung
- Automatische Induktion einer hierarchischen Grammatik
- Wiederholte Sequenzen werden zu Nonterminalen abstrahiert
- Keine willkürlichen Kodierungen oder domänenspezifischen Annahmen
💬 Natürlichsprachliche Erklärungen
`text🔍 Erklärung für Symbol 'CBG':
============================================================
🔤 CBG ist ein grundlegendes Symbol.
📊 Es kommt in folgenden wiederkehrenden Mustern vor:
• P_CBG_BBG_2 (100% der Ketten):
P_CBG_BBG_2 → CBG → BBG
Position: nach nichts, vor BBG
🏗️ Hierarchische Einbettung:
└─ in P_CBG_BBG_2 → CBG → BBG
└─ in P_GESAMT_10 → P_CBG_BBG_2 ...
`📊 Hierarchische Musterübersicht
- Alle erkannten Muster mit Häufigkeiten
- Begründung, warum ein Muster erkannt wurde
- Kontext-Informationen (Vorher/Nachher)
🔄 Multiple Modell-Perspektiven
- ARS 2.0: Einfache Bigramm-Wahrscheinlichkeiten
- ARS 3.0: Hierarchische Grammatik (Hauptmodell)
- HMM: Latente Phasen
- CRF: Kontext-sensitive Features
- Petri-Netze: Ressourcen-basierte Modellierung
---
✨ Neu in Version 9.0
❌ Entfernt
- Die 5-Bit-Kodierung (mit ihren willkürlichen Annahmen)
- Positionsbasierte, musterbasierte und statistische Kodierungsstrategien
- Künstliche Aufteilung in "Sprechergruppen" (A-M vs. N-Z)
✅ Hinzugefügt
- GrammarInducer als zentrale Wissensbasis
- NaturalLanguageExplainer für menschenlesbare Erklärungen
- Hierarchische Musterübersicht mit Häufigkeiten
- Sequenz-Erklärungen mit Zerlegung in Teil-Muster
- Kontext-Informationen für Symbole in Mustern
🎯 XAI-Verbesserungen
- Erklärungen basieren auf tatsächlich gelernten Strukturen
- Keine versteckten Annahmen mehr
- Natürlichsprachliche Ausgabe
- Hierarchische Einbettung sichtbar gemacht
- Häufigkeitsangaben für alle Muster
---
Graphviz (für Visualisierung)
Windows:
`bashMit Chocolatey (als Administrator)
choco install graphviz
Oder manuell: https://graphviz.org/download/
Bei Installation HAKEN SETZEN bei "Add Graphviz to PATH"
`Linux:
`bashsudo apt-get install graphviz # Ubuntu/Debian
`macOS:
`bashbrew install graphviz
`---
🧠 Die zentrale Idee: PCFG-basierte XAI
1. Mustererkennung statt willkürlicher Kodierung
In Version 8.x gab es noch drei Kodierungsstrategien, die versuchten, jedem Symbol eine 5-Bit-Bedeutung zuzuweisen:
- Bit 1: "Gruppe A-M" vs. "Gruppe N-Z" (völlig willkürlich!)
- Bits 2-3: "Phase 0-3" (ebenfalls willkürlich)
- Bits 4-5: "Basis/Folge" (auch willkürlich)
Das Problem: Diese Kodierung musste immer interpretiert werden und traf Annahmen über die Daten.
2. Die Lösung: Lerne die Struktur aus den Daten
ARSXAI9 geht einen völlig anderen Weg:
`pythonWiederholtes Muster gefunden: [CBG, BBG] kommt in 100% der Ketten vor
→ Neues Nonterminal: P_CBG_BBG_2
Nächstes Muster: [CBBd, BBBd] kommt häufig vor
→ Neues Nonterminal: P_CBBd_BBBd_2
Die Grammatik wächst hierarchisch:
P_GESAMT_10 → P_CBG_BBG_2, P_CBBd_BBBd_2, P_CBA_BBA_2, ...
`3. Erklärungen direkt aus der Grammatik
`pythonFür Symbol 'CBG':
"CBG ist Teil des Musters P_CBG_BBG_2 (kommt in 100% der Ketten vor)"
`Das ist echte XAI: Die Erklärung basiert auf der tatsächlich gelernten Struktur, nicht auf einer zusätzlichen Interpretationsschicht.
---
📦 Integrierte Modelle
| Modell | Klasse | Beschreibung | Status |
|--------|--------|--------------|--------|
| ARS 3.0 |
GrammarInducer | Hierarchische PCFG (ZENTRAL) | ⭐ Hauptmodell || ARS 2.0 |
ARS20 | Einfache Bigramm-Wahrscheinlichkeiten | 🔧 Optional || HMM |
ARSHiddenMarkovModel | Latente Phasen | 🔧 Optional || CRF |
ARSCRFModel | Kontext-sensitive Features | 🔧 Optional || Petri-Netz |
ARSPetriNet | Ressourcen-basierte Modellierung | 🔧 Optional || Generator |
ChainGenerator | Synthetische Ketten | 🔧 Optional |Fokus auf ARS 3.0
ARS 3.0 ist das Hauptmodell und die Grundlage aller XAI-Erklärungen. Die anderen Modelle dienen als Vergleich und zur Validierung.
---
📁 Dateiformate
Eingabeformat (Transkriptdatei)
`txtKommentare beginnen mit #
Trennzeichen: Komma, Semikolon oder Leerzeichen (einstellbar)
Transkript 1: Standard
CBG, BBG, CBBd, BBBd, CBA, BBA, CBBd, BBBd, CBA, BAA, CAA, BAB, CAB
Transkript 2: Mit Wiederholungen
CBG, BBG, CBBd, BBBd, CBBd, BBBd, CBA, BBA, BAA, CAA, BAB, CAB
Transkript 3: Kurz
CBG, BBG, CBBd, BBBd, CBA, BBA, BAA, CAA, BAB, CAB
Leerzeilen werden ignoriert
`Formatregeln:
- Eine Kette pro Zeile
- Kommentare mit
# am Zeilenanfang- Symbole durch Trennzeichen getrennt
- Leere Zeilen werden ignoriert
Trennzeichen
Das Trennzeichen ist frei wählbar und wird für ALLE Eingaben verwendet:
- Haupttranskripte
- Symbol-Eingabe (XAI-Tab)
- Sequenz-Eingabe (XAI-Tab)
---
🖥️ Benutzeroberfläche
Hauptfenster
`┌─────────────────────────────────────────────────────────────────┐
│ ARSXAI9 - PCFG-basierte Musteranalyse mit XAI │
├──────────────────────┬──────────────────────────────────────────┤
│ EINGABE │ AUSGABE (Notebook-Tabs) │
│ │ │
│ Trennzeichen: │ ┌─────────────────────────────────────┐ │
│ ○ Komma ○ Semikolon │ │ Grammatik | Muster | XAI | Modelle │ │
│ ○ Leerzeichen ○ | │ └─────────────────────────────────────┘ │
│ │ │
│ Transkripte: │ ERKANNTE MUSTER: │
│ ┌──────────────────┐ │ ╔═════════════════════════════════════╗ │
│ │ CBG, BBG, CBBd, │ │ ║ 📌 P_CBG_BBG_2 (100% der Ketten): ║ │
│ │ BBBd, CBA, BBA, │ │ ║ CBG → BBG ║ │
│ │ CBBd, BBBd, CBA, │ │ ║ Grund: Zweierfolge in 100% ║ │
│ │ BAA, CAA, BAB, │ │ ║ ║ │
│ │ CAB │ │ ║ 📌 P_CBBd_BBBd_2 (88%): ║ │
│ └──────────────────┘ │ ║ CBBd → BBBd ║ │
│ │ ╚═════════════════════════════════════╝ │
│ [Datei laden] [Parsen]│ │
│ [Grammatik induzieren]│ │
├──────────────────────┴──────────────────────────────────────────┤
│ Status: Grammatik induziert - 5 Muster gefunden [====▶ ] │
└─────────────────────────────────────────────────────────────────┘
`Tabs im Überblick
| Tab | Funktion | Inhalt |
|-----|----------|--------|
| Grammatik | Vollständige PCFG | Alle Produktionsregeln, Terminale, Nonterminale |
| Erkannte Muster | Übersicht | Alle Muster mit Häufigkeiten und Begründungen |
| XAI-Erklärungen | Interaktiv | Erklärungen für Symbole und Sequenzen |
| Weitere Modelle | Vergleich | ARS 2.0, HMM, CRF, Petri-Netze |
| Statistiken | Kennzahlen | Verteilungen, Häufigkeiten, Kompressionsrate |
---
📘 Bedienungsanleitung
1. Daten laden
Option A - Datei:
- Klicken Sie auf "Datei laden"
- Wählen Sie eine Textdatei mit Transkripten
- Das Programm parst automatisch
Option B - Beispiel:
- Klicken Sie auf "Beispiel"
- Lädt vordefinierte C-Symbol-Transkripte
Option C - Direkteingabe:
- Geben Sie Ketten direkt ins Textfeld ein
- Eine Kette pro Zeile
- Kommentare mit
# möglich2. Trennzeichen wählen
Wählen Sie das in Ihrer Datei verwendete Trennzeichen:
- Komma (,):
CBG, BBG, CBBd- Semikolon (;):
CBG; BBG; CBBd- Leerzeichen:
CBG BBG CBBd- Benutzerdefiniert: z.B.
|> Wichtig: Dieses Trennzeichen wird für ALLE Eingaben verwendet (auch für Sequenzen im XAI-Tab)!
3. Grammatik induzieren
Nach dem Laden:
1. Klicken Sie auf "Grammatik induzieren" (oder es startet automatisch)
2. Das Programm findet wiederkehrende Muster
3. Die Grammatik wird aufgebaut
4. Nonterminale werden automatisch benannt (z.B.
P_CBG_BBG_2)4. Muster erkunden
Grammatik-Tab:
- Sehen Sie die vollständige PCFG
- Alle Produktionsregeln mit Wahrscheinlichkeiten
- Terminale und Nonterminale
Muster-Tab:
- Übersicht aller erkannten Muster
- Häufigkeit in Prozent
- Begründung, warum das Muster erkannt wurde
5. XAI-Fragen stellen
XAI-Tab - Symbol erklären:
- Geben Sie ein Symbol ein (z.B. "CBG")
- Klicken Sie "Symbol erklären"
- Sie erhalten:
- Information, ob es Terminal oder Nonterminal ist
- In welchen Mustern es vorkommt
- Hierarchische Einbettung
- Kontext (Vorher/Nachher)
XAI-Tab - Sequenz erklären:
- Geben Sie eine Sequenz ein (mit dem eingestellten Trennzeichen)
- Beispiele (bei Komma):
-
CBG, BBG, CBBd-
CBG,BBG,CBBd (ohne Leerzeichen)-
CBG , BBG , CBBd (mit Leerzeichen)- Klicken Sie "Sequenz erklären"
- Sie erhalten:
- Hierarchische Zerlegung der Sequenz
- Information, ob sie ein eigenständiges Muster bildet
- Vorkommenshäufigkeit
6. Weitere Modelle vergleichen
Modelle-Tab:
- Aktivieren/deaktivieren Sie optionale Modelle
- Trainieren Sie alle Modelle
- Vergleichen Sie die Erklärungen verschiedener Modelle für dasselbe Symbol
7. Visualisierungen
Grammatik-Hierarchie:
- Menü: Visualisierung → Grammatik-Hierarchie
- Zeigt die hierarchische Struktur der Grammatik als Graph
Muster-Häufigkeiten:
- Menü: Visualisierung → Muster-Häufigkeiten
- Balkendiagramm der häufigsten Muster
8. Exportieren
1. Menü: Datei → Exportieren
2. Wählen Sie Format:
- JSON: Für Weiterverarbeitung
- HTML: Interaktiver Bericht mit allen Mustern
- LaTeX: Für wissenschaftliche Publikationen
---
🔍 XAI-Erklärungen verstehen
Symbol-Erklärung
`text🔍 Erklärung für Symbol 'CBBd'
================================================================
🔤 CBBd ist ein grundlegendes Symbol.
📊 Es kommt in folgenden wiederkehrenden Mustern vor:
• P_CBBd_BBBd_2 (88% der Ketten):
P_CBBd_BBBd_2 → CBBd → BBBd
Position: nach nichts, vor BBBd
• P_Doppel_4 (75% der Ketten):
P_Doppel_4 → P_CBBd_BBBd_2 → P_CBBd_BBBd_2
Position: nach P_CBBd_BBBd_2, vor P_CBBd_BBBd_2
🏗️ Hierarchische Einbettung:
└─ in P_CBBd_BBBd_2 → CBBd → BBBd
└─ in P_Doppel_4 → P_CBBd_BBBd_2 → P_CBBd_BBBd_2
└─ in P_GESAMT_10 → P_CBG_BBG_2 → P_Doppel_4 ...
✅ Konfidenz dieser Analyse: 95%
`Sequenz-Erklärung
`text🔍 Erklärung für Sequenz: CBBd → BBBd → CBBd → BBBd
================================================================
Hierarchische Struktur:
└─ P_CBBd_BBBd_2 = CBBd → BBBd (in 88% der Ketten)
└─ P_CBBd_BBBd_2 = CBBd → BBBd (in 88% der Ketten)
└─ P_Doppel_4 = P_CBBd_BBBd_2 → P_CBBd_BBBd_2 (in 75% der Ketten)
📊 Vorkommen: 75% der Ketten (12 von 16)
`Bedeutung der Symbole
| Symbol | Bedeutung |
|--------|-----------|
|
P_... | Nonterminal (erkanntes Muster) ||
P_CBG_BBG_2 | Muster aus CBG und BBG (Länge 2) ||
P_GESAMT_10 | Gesamtstruktur der Länge 10 ||
🔤 | Terminales Symbol (grundlegend) ||
📦 | Nonterminal (abstraktes Muster) ||
📊 | Statistische Information ||
🏗️ | Hierarchische Einbettung |---
💡 Beispiele
Beispiel 1: C-Symbol-Datensatz
Eingabe:
`CBG, BBG, CBBd, BBBd, CBA, BBA, CBBd, BBBd, CBA, BAA, CAA, BAB, CAB
CBG, BBG, CBBd, BBBd, CBBd, BBBd, CBA, BBA, BAA, CAA, BAB, CAB
CBG, BBG, CBBd, BBBd, CBA, BBA, BAA, CAA, BAB, CAB
`Erkannte Muster:
-
P_CBG_BBG_2 → CBG → BBG (100%)-
P_CBBd_BBBd_2 → CBBd → BBBd (100%) -
P_CBA_BBA_2 → CBA → BBA (100%)-
P_BAA_CAA_2 → BAA → CAA (100%)-
P_BAB_CAB_2 → BAB → CAB (100%)-
P_Doppel_4 → P_CBBd_BBBd_2 → P_CBBd_BBBd_2 (67%)Beispiel 2: D-Symbol-Datensatz (analoge Struktur)
Eingabe:
`DBG, BBG, DBBd, BBBd, DBA, BBA, DBBd, BBBd, DBA, BAA, DAA, BAB, DAB
DBG, BBG, DBBd, BBBd, DBBd, BBBd, DBA, BBA, BAA, DAA, BAB, DAB
DBG, BBG, DBBd, BBBd, DBA, BBA, BAA, DAA, BAB, DAB
`Erkannte Muster:
-
P_DBG_BBG_2 → DBG → BBG (100%)-
P_DBBd_BBBd_2 → DBBd → BBBd (100%)-
P_DBA_BBA_2 → DBA → BBA (100%)- ... (analoge Struktur, andere Symbole)
Beispiel 3: Sequenz-Erklärung
Eingabe:
CBG, BBG, CBBd, BBBd (bei Komma als Trennzeichen)Ausgabe:
`🔍 Erklärung für Sequenz: CBG → BBG → CBBd → BBBd
================================================================
Hierarchische Struktur:
└─ P_CBG_BBG_2 = CBG → BBG (in 100% der Ketten)
└─ P_CBBd_BBBd_2 = CBBd → BBBd (in 88% der Ketten)
📊 Vorkommen: 88% der Ketten (14 von 16)
`---
📊 Exportformate
JSON (maschinenlesbar)
`json{
"grammar": {
"patterns": [
{
"name": "P_CBG_BBG_2",
"sequence": ["CBG", "BBG"],
"frequency": 100.0,
"rationale": "Die Zweierfolge CBG → BBG kommt in 100% aller Ketten vor"
}
]
}
}
`HTML (Interaktiver Bericht)
`html<div class="pattern-box">
<h3>P_CBG_BBG_2</h3>
<p><strong>Sequenz:</strong> CBG → BBG</p>
<p><strong>Vorkommen:</strong> 100% der Ketten</p>
<p><strong>Begründung:</strong> Die Zweierfolge CBG → BBG kommt in 100% aller Ketten vor</p>
</div>
`LaTeX (Wissenschaftlich)
`latex\begin{tabular}{lll}
\toprule
Muster & Sequenz & Häufigkeit \\
\midrule
P\_CBG\_BBG\_2 & CBG $\rightarrow$ BBG & 100\% \\
\bottomrule
\end{tabular}
`---
🔧 Fehlerbehebung
Häufige Probleme
#### 1. "Keine gültigen Ketten gefunden"
- Ursache: Falsches Trennzeichen oder leere Datei
- Lösung: Trennzeichen überprüfen, Dateiformat kontrollieren
#### 2. "Symbol nicht gefunden" bei XAI-Anfrage
- Ursache: Symbol existiert nicht in den Daten
- Lösung: Groß-/Kleinschreibung prüfen, Tippfehler korrigieren
#### 3. Sequenz wird nicht erkannt
- Ursache: Falsches Trennzeichen verwendet
- Lösung: Das gleiche Trennzeichen wie in der Haupteingabe verwenden
#### 4. Graphviz-Fehler
`failed to execute WindowsPath('dot')
`- Ursache: Graphviz Systembibliothek fehlt
- Lösung: Graphviz installieren und PATH setzen
Tipps
- Trennzeichen-Konsistenz: Für ALLE Eingaben das GLEICHE Trennzeichen verwenden
- Leerzeichen: Sind erlaubt, werden aber ignoriert
- Groß-/Kleinschreibung: Wichtig! "CBG" ≠ "cbg"
- Lange Sequenzen: Bei Komma als Trennzeichen:
CBG,BBG,CBBd,BBBd (ohne Leerzeichen) ist am sichersten---
🤝 Mitwirken
Beiträge sind willkommen!
Entwicklungsumgebung
`bashRepository forken
git clone https://github.com/yourusername/ARSXAI9.git
cd ARSXAI9
Virtuelle Umgebung
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
Entwicklungspakete
pip install -r requirements-dev.txt
`Code-Stil
- PEP 8 für Python-Code
- Docstrings für alle öffentlichen Methoden
- Typannotationen wo sinnvoll
- Kommentare auf Deutsch oder Englisch
---
---
📚 Zitation
Wenn Sie ARSXAI9 in wissenschaftlichen Arbeiten verwenden, bitte wie folgt zitieren:
`bibtex@software{ARSXAI9,
author = {Koop, Paul},
title = {ARSXAI9: PCFG-based Sequence Analysis with Explainable AI},
year = {2024},
url = {https://github.com/yourusername/ARSXAI9}
}
`---
🙏 Danksagung
- hmmlearn - Für die HMM-Implementierung
- sklearn-crfsuite - Für die CRF-Implementierung
- Graphviz - Für Visualisierungen
- NetworkX - Für Graph-Analysen
---
Entwickelt mit ❤️ für erklärbare Künstliche Intelligenz