# ARSXAI7 - Algorithmic Recursive Sequence Analysis with Explainable AI ## 📖 Inhaltsverzeichnis 1. [Einführung und Zielsetzung](#-einführung-und-zielsetzung) 2. [Installation](#-installation) 3. [Theoretische Grundlagen](#-theoretische-grundlagen) 4. [Algorithmen und Datenstrukturen](#-algorithmen-und-datenstrukturen) 5. [Dateiformate](#-dateiformate) 6. [Benutzeroberfläche](#-benutzeroberfläche) 7. [Bedienungsanleitung](#-bedienungsanleitung) 8. [Ausgabeformate](#-ausgabeformate) 9. [Beispiele](#-beispiele) 10. [Fehlerbehebung](#-fehlerbehebung) 11. [Mitwirken](#-mitwirken) 12. [Lizenz](#-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