Inhalt
Aktueller Ordner:
ARS_ExplainableAIARSXAI7.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:
`bashKernpakete
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
`bashRepository 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`pythonAlgorithmus
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`pythonAlgorithmus
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`pythonAlgorithmus
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
`pythonKodierungsergebnis
{
'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)
`txtKommentare 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)
`csvSymbol,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öglichMethode 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
`bashRepository 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