Inhalt

Aktueller Ordner: ARS_ExplainableAI
⬅ Übergeordnet

ARSXAI9.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:
`bash

Mit Chocolatey (als Administrator)


choco install graphviz

Oder manuell: https://graphviz.org/download/


Bei Installation HAKEN SETZEN bei "Add Graphviz to PATH"


`

Linux:
`bash
sudo apt-get install graphviz # Ubuntu/Debian
`

macOS:
`bash
brew 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:

`python

Wiederholtes 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



`python

Fü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)



`txt

Kommentare 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öglich

2. 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



`bash

Repository 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