Inhalt

Aktueller Ordner: ARS_ExplainableAI
⬅ Übergeordnet

ARSXAI7.md

ARSXAI7 - Algorithmic Recursive Sequence Analysis with Explainable AI




📖 Inhaltsverzeichnis



1. Einführung und Zielsetzung
2. Installation
3. Theoretische Grundlagen
4. Algorithmen und Datenstrukturen
5. Dateiformate
6. Benutzeroberfläche
7. Bedienungsanleitung
8. Ausgabeformate
9. Beispiele
10. Fehlerbehebung
11. Mitwirken
12. Lizenz

🎯 Einführung und Zielsetzung



ARSXAI7 ist eine universelle Analyseplattform für sequenzielle Daten mit Fokus auf Explainable AI (XAI). Das Programm wurde entwickelt, um aus beliebigen Terminalzeichenketten (z.B. Dialogtranskripte, Prozessabläufe, Verhaltenssequenzen) automatisch strukturelle Regeln abzuleiten und diese für den Menschen nachvollziehbar zu erklären.

Kernziele



- Universalität: Analyse beliebiger Sequenzen, nicht nur vordefinierter Domänen
- Automatische Strukturableitung: Extraktion von Kodierungen und Regeln aus rohen Daten
- Erklärbarkeit: Transparente Darstellung der Ableitungsprozesse und Entscheidungen
- Multiple Perspektiven: Vergleich verschiedener Ableitungsstrategien
- Progressive Learning: Kontinuierliche Anpassung an neue Daten

Hauptanwendungsgebiete



- Dialoganalyse: Untersuchung von Gesprächsstrukturen (Verkauf, Beratung, Therapie)
- Prozessanalyse: Workflow-Muster, Produktionsabläufe
- Verhaltensanalyse: Aktionssequenzen, Interaktionsmuster
- Code-Analyse: Programmabläufe, API-Aufrufsequenzen
- Wissenschaftliche Forschung: Sequenzmuster in beliebigen Domänen

💻 Installation



Systemvoraussetzungen



- Python 3.8 oder höher
- 4 GB RAM (empfohlen)
- Betriebssystem: Windows, macOS, Linux

Abhängigkeiten



Das Programm installiert automatisch folgende Pakete:

`bash

Kernpakete


numpy # Numerische Berechnungen
scipy # Statistische Funktionen
matplotlib # Visualisierung
tkinter # GUI (standardmäßig in Python enthalten)

Optionale ML-Pakete (für erweiterte Analysen)


hmmlearn # Hidden Markov Models
sklearn-crfsuite # Conditional Random Fields
sentence-transformers # Semantische Embeddings
networkx # Graph-Analyse
torch # Deep Learning Backend
seaborn # Erweiterte Visualisierung
graphviz # Automaten-Visualisierung
tabulate # Tabellen-Export
`

Installation



`bash

Repository klonen


git clone https://github.com/yourusername/ARSXAI7.git
cd ARSXAI7

Programm starten (Pakete werden automatisch installiert)


python ARSXAI7.py
`

📚 Theoretische Grundlagen



1. 5-Bit-Kodierung



Die 5-Bit-Kodierung ist ein flexibles Schema zur Strukturierung von Symbolen:

`
Bit-Struktur: [S][P1P2][U1U2]

- Bit 1 (Sprecher): 0 = Kunde / 1 = Verkäufer (oder andere Dichotomie)
- Bits 2-3 (Phase): 00, 01, 10, 11 für verschiedene Phasen
- Bits 4-5 (Subphase): 00 = Basis / 01 = Folge (für Wiederholungen)
`

Die konkrete Bedeutung der Bits wird automatisch aus den Daten abgeleitet und kann je nach Domäne variieren.

2. Ableitungsstrategien



ARSXAI7 verwendet drei komplementäre Strategien:

| Strategie | Prinzip | Stärke |
|-----------|---------|--------|
| Positionsbasiert | Analyse der durchschnittlichen Position in Sequenzen | Gut für lineare Prozesse |
| Musterbasiert | Erkennung wiederkehrender Pattern | Gut für zyklische Strukturen |
| Statistisch | Häufigkeits- und Korrelationsanalyse | Gut für probabilistische Modelle |

3. Konfidenzmetriken



Jede Ableitung wird mit einer Konfidenz versehen:

- Hohe Konfidenz (>0.7): Konsistent in vielen Daten beobachtet
- Mittlere Konfidenz (0.4-0.7): Mehrfach, aber nicht vollständig konsistent
- Niedrige Konfidenz (<0.4): Basierend auf wenigen Beobachtungen

4. Generischer Automat



Der Automat lernt Zustände und Übergänge aus den Daten:

- Zustände werden aus Positionen abgeleitet
- Übergänge aus beobachteten Symbolfolgen
- Akzeptierende Zustände aus Kettenenden
- Konfidenz für jede Transition

🔧 Algorithmen und Datenstrukturen



Kernklassen



#### DataValidator
`python
- validate_chains(chains) # Prüft Datenqualität
- group_similar_symbols() # Erkennt Tippfehler
- suggest_corrections() # Generiert Korrekturvorschläge
`

#### CodingStrategy (Basisklasse)
`python
- derive(chains) # Leitet Kodierung ab
- explain(symbol, code_data) # Erklärt die Ableitung
- confidence # Konfidenzwert (0-1)
`

#### PositionBasedCoding
`python

Algorithmus


1. Sammle Positionsstatistiken pro Symbol
2. Berechne durchschnittliche Position
3. Normalisiere auf Phasen (0-4)
4. Bestimme Subphase aus Wiederholungen
5. Generiere 5-Bit-Code
`

#### PatternBasedCoding
`python

Algorithmus


1. Finde wiederkehrende Pattern (Länge 2-5)
2. Analysiere Nachbarschaftsbeziehungen
3. Bestimme Phase aus typischen Nachbarn
4. Subphase aus Pattern-Teilnahme
5. Generiere 5-Bit-Code
`

#### StatisticalBasedCoding
`python

Algorithmus


1. Berechne Häufigkeiten pro Symbol
2. Analysiere Erst-/Letztpositionen
3. Erstelle Übergangsmatrix
4. Phase aus Positionsverteilung
5. Subphase aus Transitionsvielfalt
`

#### GenericDialogueAutomaton
`python
- learn_from_chains(chains) # Lernt Regeln aus Daten
- create_states_from_positions() # Generiert Zustände
- learn_transitions() # Lernt Übergänge
- validate_chain(chain) # Validiert eine Kette
- transition(symbol) # Führt Übergang aus
`

#### InteractiveExplainer
`python
- why_this_coding(symbol) # Erklärt Kodierung
- why_this_transition(from, sym, to) # Erklärt Übergang
- what_if(symbol, alt_code) # Simuliert Alternativen
`

#### ProgressiveLearner
`python
- incorporate_new_data(chains, coding, rules) # Lernt dazu
- detect_changes(prev, current) # Erkennt Änderungen
- show_evolution() # Zeigt Versionshistorie
`

Datenstrukturen



`python

Kodierungsergebnis


{
'code': '01001', # 5-Bit-Code
'agreement': 0.85, # Übereinstimmung der Strategien
'confidence': 0.92, # Konfidenzwert
'evidence': [ # Belege pro Strategie
{
'strategy': 'Positionsbasiert',
'avg_position': 5.3,
'phase_norm': 0.45
}
]
}

Automaten-Regel


{
('q_phase_2', 'KBG'): 'q_phase_3', # (Zustand, Symbol) -> Folgezustand
'confidence': 0.87 # Konfidenz der Regel
}

Versionsinformation


{
'timestamp': '2024-01-15T10:30:00',
'n_chains': 25,
'coding': {...}, # Kodierung zu diesem Zeitpunkt
'changes': [...] # Änderungen zur Vorversion
}
`

📁 Dateiformate



Eingabeformat (Transkriptdatei)



`txt

Kommentare beginnen mit #


Trennzeichen: Komma, Semikolon oder Leerzeichen



Transkript 1: Beispiel


KBG, VBG, KBBd, VBBd, KBA, VBA, VAA, KAA, VAV, KAV

Transkript 2: Mit Wiederholung


KBG, VBG, KBBd, VBBd, KBBd, VBBd, KBA, VBA, VAA, KAA, VAV, KAV

Leerzeilen werden ignoriert


`

Formatregeln:
- Eine Kette pro Zeile
- Kommentare mit # am Zeilenanfang
- Symbole durch Trennzeichen getrennt
- Leere Zeilen werden ignoriert

Exportformate



#### JSON (maschinenlesbar)
`json
{
"coding": {
"KBG": {
"code": "00000",
"agreement": 1.0,
"confidence": 0.95,
"evidence": [...]
}
},
"terminals": ["KBG", "VBG", ...],
"chains": [...],
"timestamp": "2024-01-15T10:30:00"
}
`

#### CSV (Tabellenkalkulation)
`csv
Symbol,Code,Konfidenz
KBG,00000,0.95
VBG,10000,0.92
KBBd,00100,0.88
`

#### HTML (Interaktiver Bericht)
Generiert einen vollständigen Analysebericht mit:
- Kodierungstabellen
- Konfidenzvisualisierung
- Statistiken
- Export-Datum

#### LaTeX (Wissenschaftlich)
`latex
\documentclass{article}
\begin{document}
\section{ARSXAI7 Analyseergebnisse}
\begin{tabular}{lll}
Symbol & Code & Konfidenz \\
KBG & 00000 & 95\% \\
...
\end{tabular}
\end{document}
`

🖥️ Benutzeroberfläche



Hauptfenster



`
┌─────────────────────────────────────────────────────────────┐
│ ARSXAI7 - Algorithmic Recursive Sequence Analysis │
├──────────────────────┬──────────────────────────────────────┤
│ EINGABE │ AUSGABE (Notebook-Tabs) │
│ │ │
│ [Trennzeichen-Auswahl│ ┌─────────────────────────────────┐ │
│ ○ Komma ○ Semikolon │ │ Kodierung | Automat | XAI | ... │ │
│ ○ Leerzeichen ○ | ] │ └─────────────────────────────────┘ │
│ │ │
│ Transkripte: │ Kodierungsergebnisse: │
│ ┌──────────────────┐ │ KBG: 00000 (Konsens: 100%) │
│ │ KBG, VBG, KBBd, │ │ VBG: 10000 (Konsens: 100%) │
│ │ KBBd, VBBd, KBA, │ │ KBBd: 00100 (Konsens: 67%) ⚠️ │
│ │ VAA, KAA, VAV │ │ ... │
│ └──────────────────┘ │ │
│ │ │
│ [Datei laden] [Parsen] │
├─────────────────────────────────────────────────────────────┤
│ Status: 15 Ketten geladen [======> ] │
└─────────────────────────────────────────────────────────────┘
`

Menüstruktur



`
Datei
├── Transkripte laden
├── Beispiel laden
├── Exportieren
│ ├── JSON
│ ├── CSV
│ ├── HTML (Bericht)
│ └── LaTeX
└── Beenden

Analyse
├── Alle Strategien anwenden
├── Automaten lernen
└── Validierung durchführen

XAI
├── Erklärung für Symbol
├── Regeln erklären
└── Was-wäre-wenn Simulation

Visualisierung
├── Kodierungsvergleich
├── Konfidenz-Heatmap
└── Automaten-Graph

Hilfe
├── Modulstatus
├── Evolution anzeigen
└── Über
`

Tabs



| Tab | Funktion |
|-----|----------|
| Kodierung | Ergebnisse aller Ableitungsstrategien |
| Automat | Gelernte Automaten-Regeln und Validierung |
| XAI | Interaktive Erklärungen und Simulationen |
| Statistiken | Kennzahlen und Verteilungen |
| Evolution | Versionshistorie und Änderungen |

📘 Bedienungsanleitung



Schritt-für-Schritt



#### 1. Daten laden

Methode A - Datei laden:
- Klicken Sie auf "Datei laden"
- Wählen Sie eine Textdatei mit Transkripten
- Das Programm parst automatisch

Methode B - Direkteingabe:
- Geben Sie Ketten direkt ins Textfeld ein
- Eine Kette pro Zeile
- Kommentare mit # möglich

Methode C - Beispiel:
- Klicken Sie auf "Beispiel"
- Lädt vordefinierte Verkaufsgespräche

#### 2. Trennzeichen wählen

Wählen Sie das in Ihrer Datei verwendete Trennzeichen:
- Komma (,): KBG, VBG, KBBd
- Semikolon (;): KBG; VBG; KBBd
- Leerzeichen: KBG VBG KBBd
- Benutzerdefiniert: z.B. |

#### 3. Analyse starten

Nach dem Laden startet die Analyse automatisch:

1. Validierung: Prüft Datenqualität
2. Kodierungsstrategien: Alle drei Strategien werden angewandt
3. Konsensbildung: Mehrheitsentscheidung über Kodierung
4. Automaten lernen: Regeln werden extrahiert

#### 4. Ergebnisse erkunden

Kodierungs-Tab:
- Vergleichen Sie die Ergebnisse der drei Strategien
- Sehen Sie den Konsens mit Übereinstimmungswerten
- ⚠️ markiert unsichere Kodierungen

XAI-Tab:
- Geben Sie ein Symbol ein
- Klicken Sie "Warum diese Kodierung?"
- Erhalten Sie detaillierte Erklärung mit Belegen

Was-wäre-wenn Simulation:
1. Klicken Sie "Was-wäre-wenn"
2. Geben Sie Symbol und alternativen Code ein
3. Sehen Sie die Auswirkungen der Änderung

#### 5. Visualisierungen

Kodierungsvergleich:
- Menü: Visualisierung → Kodierungsvergleich
- Zeigt Heatmap der 5-Bit-Codes aller Strategien

Konfidenz-Heatmap:
- Menü: Visualisierung → Konfidenz-Heatmap
- Visualisiert Sicherheit der Automaten-Regeln

Automaten-Graph:
- Menü: Visualisierung → Automaten-Graph
- Zeigt Zustände und Übergänge mit Konfidenzen

#### 6. Exportieren

1. Menü: Datei → Exportieren
2. Wählen Sie Format:
- JSON: Für Weiterverarbeitung
- CSV: Für Excel/Tabellenkalkulation
- HTML: Interaktiver Bericht
- LaTeX: Für wissenschaftliche Publikationen

#### 7. Progressive Learning

Bei jeder neuen Analyse:
- Version wird gespeichert
- Änderungen werden erkannt
- Evolution unter "Evolution"-Tab einsehbar

Tastaturkürzel



| Aktion | Kurzbefehl |
|--------|------------|
| Datei laden | Strg+O |
| Parsen | Strg+Enter |
| Alle Strategien | Strg+A |
| Erklärung | Strg+E |
| Export | Strg+S |
| Beenden | Strg+Q |

📊 Ausgabeformate



Kodierungsergebnisse



`
ERGEBNISSE DER KODIERUNGSSTRATEGIEN
======================================================================

Positionsbasierte Kodierung:
----------------------------------------
Konfidenz: 78%

KBG: 00000
VBG: 10000
KBBd: 00100
VBBd: 10100
KBA: 00101
VBA: 10101
...

Musterbasierte Kodierung:
----------------------------------------
Konfidenz: 82%

KBG: 00000
VBG: 10000
KBBd: 00101
VBBd: 10101
...

KONSENS-KODIERUNG (Mehrheitsentscheidung)
======================================================================
✓ KBG: 00000 (Übereinstimmung: 100%)
✓ VBG: 10000 (Übereinstimmung: 100%)
⚠️ KBBd: 00100 (Übereinstimmung: 67%)
`

Automaten-Regeln



`
GELERNTE AUTOMATEN-REGELN
======================================================================
q_start + KBG → q_phase_0 (Konfidenz: 95%)
q_phase_0 + VBG → q_phase_0 (Konfidenz: 88%)
q_phase_0 + KBBd → q_phase_1 (Konfidenz: 92%)
q_phase_1 + VBBd → q_phase_1 (Konfidenz: 85%)
q_phase_1 + KBA → q_phase_1 (Konfidenz: 78%)
q_phase_1 + VAA → q_phase_2 (Konfidenz: 72%)
...

Akzeptierende Zustände: q_phase_4
`

XAI-Erklärung



`
🔍 Erklärung für Kodierung von 'KBBd':
======================================================================
Konsens-Kodierung: 00100
Übereinstimmung: 67%

Einzelne Strategien:

📊 Positionsbasierte Kodierung:
Code: 00100
→ Sprecher: Kunde | Phase: Bedarf (durchschnittliche Position 3.2) | Subphase: Basis (seltene Wiederholungen)

📊 Musterbasierte Kodierung:
Code: 00101
→ Sprecher: Kunde | Phase: Bedarf (häufige Nachbarn: VBBd(5x)) | Subphase: Folge (Teil von 3 wiederkehrenden Mustern)

📊 Statistisch basierte Kodierung:
Code: 00100
→ Sprecher: Kunde | Phase: Bedarf (beginnt oft, häufig (22%)) | Subphase: Basis (3 Folgesymbole)
`

Statistiken



`
STATISTISCHE KENNZAHLEN
======================================================================

Anzahl Ketten: 15
Anzahl Terminale: 12
Durchschnittliche Länge: 11.4
Minimale Länge: 8
Maximale Länge: 18

Häufigste Symbole:
KBG: 15x
VBG: 15x
KBBd: 28x
VBBd: 28x
KBA: 22x
...

Kommentare: 3
`

💡 Beispiele



Beispiel 1: Einfache Dialogsequenz



Eingabe:
`

Standard-Verkaufsgespräch


KBG, VBG, KBBd, VBBd, KBA, VBA, VAA, KAA, VAV, KAV
`

Erwartete Ausgabe:
- Kodierung wird automatisch abgeleitet
- Automat erkennt Struktur: Begrüßung → Bedarf → Abschluss → Verabschiedung
- Hohe Konfidenz (>90%) für alle Ableitungen

Beispiel 2: Mit Wiederholungen



Eingabe:
`

Mit Schleife in der Bedarfsphase


KBG, VBG, KBBd, VBBd, KBBd, VBBd, KBBd, VBBd, KBA, VBA, VAA, KAA, VAV, KAV
`

Erwartete Ausgabe:
- Musterbasierte Strategie erkennt Wiederholungen
- KBBd/VBBd erhalten Subphase "01" (Folge)
- Automat lernt, dass Wiederholungen in Phase 1 erlaubt sind

Beispiel 3: Unvollständige Sequenz



Eingabe:
`

Fehlende Verabschiedung


KBG, VBG, KBBd, VBBd, KBA, VBA, VAA, KAA
`

Erwartete Ausgabe:
- Validierung warnt vor fehlendem Abschluss
- Automat endet in nicht-akzeptierendem Zustand
- Statistik zeigt Muster "fehlende Verabschiedung"

🔍 Fehlerbehebung



Häufige Probleme



#### 1. "Keine gültigen Ketten gefunden"
- Ursache: Falsches Trennzeichen oder leere Datei
- Lösung: Trennzeichen überprüfen, Dateiformat kontrollieren

#### 2. Warnung: "Sehr kurze Ketten"
- Ursache: Ketten mit <2 Symbolen
- Lösung: Prüfen, ob Daten vollständig sind

#### 3. Warnung: "Ähnliche Symbole"
- Ursache: Mögliche Tippfehler (z.B. "KBG" und "KBG ")
- Lösung: Symbole auf Konsistenz prüfen

#### 4. Niedrige Konfidenz bei Kodierung
- Ursache: Zu wenige Daten oder inkonsistente Muster
- Lösung: Mehr Daten sammeln oder Domäne überprüfen

Modul-Fehler



| Fehler | Lösung |
|--------|--------|
| "hmmlearn nicht installiert" | Automatische Installation abwarten oder manuell: pip install hmmlearn |
| "graphviz nicht verfügbar" | Graphviz installieren: https://graphviz.org/download/ |
| "sentence-transformers fehlt" | pip install sentence-transformers |

Performance-Probleme



- Bei großen Dateien (>1000 Ketten): Export als JSON für spätere Analyse
- Bei komplexen Mustern: Progressive Learning nutzen
- Bei Speicherproblemen: Datei in kleinere Teile aufteilen

🤝 Mitwirken



Beiträge sind willkommen! Bitte beachten Sie:

1. Issues: Nutzen Sie GitHub Issues für Fehlerberichte und Feature-Wünsche
2. Pull Requests: Bitte mit Beschreibung der Änderungen
3. Tests: Stellen Sie sicher, dass alle Tests bestehen
4. Dokumentation: Aktualisieren Sie bei Bedarf die README

Entwicklungsumgebung einrichten



`bash

Repository forken und klonen


git clone https://github.com/yourusername/ARSXAI7.git
cd ARSXAI7

Virtuelle Umgebung (optional)


python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows

Abhängigkeiten installieren


pip install -r requirements.txt
`

Code-Stil



- PEP 8 für Python-Code
- Docstrings für alle öffentlichen Methoden
- Typannotationen wo sinnvoll
- Kommentare auf Deutsch oder Englisch