Inhalt
Aktueller Ordner:
ARS_ExplainableAI/ARSAXImodularREADME.md
ARSXAI - Algorithmic Recursive Sequence Analysis with Explainable AI
English Version
Overview
ARSXAI is a comprehensive framework for pattern discovery and explainable AI in sequential data. It induces hierarchical context-free grammars from sequences of symbols, identifies recurring patterns, and provides natural language explanations of the discovered structures.
Version: 10.0 (Modular Architecture)
Core Features
- Hierarchical Grammar Induction - Automatically discovers repeating patterns and abstracts them into nonterminals
- Natural Language Explanations - Human-readable explanations of patterns and their roles
- Multiple AI Models - HMM, CRF, Petri Nets, and baseline models for comparison
- Interactive GUI - Full graphical interface for analysis and visualization
- Multi-format Export - JSON, HTML, and LaTeX reports
Architecture
`arsxai/
├── ARSXAI.py # Complete reference implementation
├── arsxai_ext_depth.py # Depth-bounded PCFG extension
├── arsxai_ext_mdl.py # MDL optimization extension
├── arsxai_ext_prefixspan.py # PrefixSpan for large corpora
└── arsxai_ext_seminfo.py # Semantic naming extension
`Installation
`bashClone or download the package
pip install numpy scipy matplotlib hmmlearn scikit-learn networkx
For extensions (optional)
pip install sentence-transformers # for semantic names
pip install prefixspan # for large datasets
`Quick Start
`pythonfrom arsxai import GrammarInducer, NaturalLanguageExplainer
Prepare your sequences
chains = [
["A", "B", "C", "A", "B", "C"],
["A", "B", "C", "D"],
["A", "B", "C", "A", "B", "C", "D"]
]
Induce grammar
grammar = GrammarInducer()
grammar.train(chains)
Get explanations
explainer = NaturalLanguageExplainer(grammar)
print(explainer.explain_symbol("A"))
print(explainer.explain_sequence(["A", "B", "C"]))
View grammar
print(grammar.get_grammar_string())
`GUI Usage
`bashpython -m arsxai.ARSXAI
`The GUI provides:
- Input panel for sequence data
- Grammar visualization
- Pattern summary
- XAI explanations
- Model comparison
- Statistics and export
Extensions
#### Depth-Bounded PCFG (
arsxai_ext_depth.py)Limits hierarchical depth during grammar induction to prevent overly complex structures.
`pythonfrom arsxai_ext_depth import DepthBoundedGrammarInducer
inducer = DepthBoundedGrammarInducer(max_depth=5)
inducer.train(chains)
print(inducer.get_depth_statistics())
`#### MDL Optimization (
arsxai_ext_mdl.py)Uses Minimum Description Length principle to evaluate grammar quality and find optimal compression.
`pythonfrom arsxai_ext_mdl import MDLOptimizer, MDLGrammarInducer
optimizer = MDLOptimizer()
ratio = optimizer.calculate_compression_ratio(chains, grammar)
print(f"Compression: {ratio:.1%}")
`#### PrefixSpan Extension (
arsxai_ext_prefixspan.py)Optimized pattern mining for large datasets (>1000 sequences).
`pythonfrom arsxai_ext_prefixspan import PrefixSpanGrammarInducer
inducer = PrefixSpanGrammarInducer(min_support=2)
inducer.train(large_chains) # Efficient for large corpora
`#### Semantic Naming (
arsxai_ext_seminfo.py)Uses sentence-transformers to generate meaningful names for discovered patterns.
`pythonfrom arsxai_ext_seminfo import SemInfoGrammarInducer
inducer = SemInfoGrammarInducer(model_name='paraphrase-multilingual-MiniLM-L12-v2')
inducer.train(chains)
print(inducer.get_seminfo_status())
`Input Format
Sequences are provided as lines with symbols separated by delimiter:
`Comments start with hash
A, B, C, D, E
A, B, C, A, B, C
X, Y, Z
`Supported delimiters: comma
,, semicolon ;, space, or custom.Output Formats
- JSON - Machine-readable complete analysis
- HTML - Human-readable report with styling
- LaTeX - Academic paper ready format
Model Comparison
ARSXAI includes multiple models for comparative XAI:
| Model | Description | Best for |
|-------|-------------|----------|
| ARS 3.0 | Hierarchical Grammar | Pattern discovery, explanations |
| ARS 2.0 | Bigram transitions | Simple sequence prediction |
| HMM | Hidden Markov Model | Latent phase detection |
| CRF | Conditional Random Fields | Context-sensitive labeling |
| Petri Net | Resource-based model | Process validation |
XAI Features
- Symbol Explanations - Understand what any symbol represents in the grammar
- Sequence Explanations - See hierarchical structure of any sequence
- Pattern Summaries - Overview of all discovered recurring patterns
- Model Comparison - Compare explanations across different AI models
- Confidence Scores - Quantitative measure of each analysis
Requirements
Core:
- Python 3.7+
- numpy, scipy
- matplotlib
- tkinter (included with Python)
Optional:
- hmmlearn (for HMM)
- sklearn-crfsuite (for CRF)
- networkx (for graph visualization)
- sentence-transformers (for semantic names)
- prefixspan (for large datasets)
- graphviz (for automaton visualization)
License
© 2024 - Explainable AI Research
---
Deutsche Version
Überblick
ARSXAI ist ein umfassendes Framework für Mustererkennung und erklärbare KI in sequenziellen Daten. Es induziert hierarchische kontextfreie Grammatiken aus Symbolsequenzen, identifiziert wiederkehrende Muster und liefert natürlichsprachliche Erklärungen der entdeckten Strukturen.
Version: 10.0 (Modulare Architektur)
Kernfunktionen
- Hierarchische Grammatikinduktion - Automatische Erkennung wiederholter Muster und Abstraktion zu Nonterminalen
- Natürlichsprachliche Erklärungen - Menschenlesbare Erklärungen von Mustern und ihrer Rolle
- Mehrere KI-Modelle - HMM, CRF, Petri-Netze und Basis-Modelle zum Vergleich
- Interaktive GUI - Vollständige grafische Oberfläche für Analyse und Visualisierung
- Multi-Format Export - JSON-, HTML- und LaTeX-Berichte
Architektur
`arsxai/
├── ARSXAI.py # Vollständige Referenzimplementierung
├── arsxai_ext_depth.py # Tiefenbeschränkte PCFG-Erweiterung
├── arsxai_ext_mdl.py # MDL-Optimierungs-Erweiterung
├── arsxai_ext_prefixspan.py # PrefixSpan für große Korpora
└── arsxai_ext_seminfo.py # Semantische Namens-Erweiterung
`Installation
`bashPaket herunterladen oder klonen
pip install numpy scipy matplotlib hmmlearn scikit-learn networkx
Für Erweiterungen (optional)
pip install sentence-transformers # für semantische Namen
pip install prefixspan # für große Datenmengen
`Schnellstart
`pythonfrom arsxai import GrammarInducer, NaturalLanguageExplainer
Ihre Sequenzen vorbereiten
chains = [
["A", "B", "C", "A", "B", "C"],
["A", "B", "C", "D"],
["A", "B", "C", "A", "B", "C", "D"]
]
Grammatik induzieren
grammar = GrammarInducer()
grammar.train(chains)
Erklärungen erhalten
explainer = NaturalLanguageExplainer(grammar)
print(explainer.explain_symbol("A"))
print(explainer.explain_sequence(["A", "B", "C"]))
Grammatik anzeigen
print(grammar.get_grammar_string())
`GUI-Nutzung
`bashpython -m arsxai.ARSXAI
`Die GUI bietet:
- Eingabefeld für Sequenzdaten
- Grammatik-Visualisierung
- Musterübersicht
- XAI-Erklärungen
- Modellvergleich
- Statistiken und Export
Erweiterungen
#### Tiefenbeschränkte PCFG (
arsxai_ext_depth.py)Begrenzt die hierarchische Tiefe bei der Grammatikinduktion, um übermäßig komplexe Strukturen zu vermeiden.
`pythonfrom arsxai_ext_depth import DepthBoundedGrammarInducer
inducer = DepthBoundedGrammarInducer(max_depth=5)
inducer.train(chains)
print(inducer.get_depth_statistics())
`#### MDL-Optimierung (
arsxai_ext_mdl.py)Verwendet das Minimum Description Length Prinzip zur Bewertung der Grammatikqualität und optimalen Kompression.
`pythonfrom arsxai_ext_mdl import MDLOptimizer, MDLGrammarInducer
optimizer = MDLOptimizer()
ratio = optimizer.calculate_compression_ratio(chains, grammar)
print(f"Kompression: {ratio:.1%}")
`#### PrefixSpan-Erweiterung (
arsxai_ext_prefixspan.py)Optimierte Mustererkennung für große Datensätze (>1000 Sequenzen).
`pythonfrom arsxai_ext_prefixspan import PrefixSpanGrammarInducer
inducer = PrefixSpanGrammarInducer(min_support=2)
inducer.train(grosse_ketten) # Effizient für große Korpora
`#### Semantische Namen (
arsxai_ext_seminfo.py)Verwendet Sentence-Transformers zur Generierung bedeutungsvoller Namen für entdeckte Muster.
`pythonfrom arsxai_ext_seminfo import SemInfoGrammarInducer
inducer = SemInfoGrammarInducer(model_name='paraphrase-multilingual-MiniLM-L12-v2')
inducer.train(chains)
print(inducer.get_seminfo_status())
`Eingabeformat
Sequenzen werden als Zeilen mit durch Trennzeichen getrennten Symbolen eingegeben:
`Kommentare beginnen mit Doppelkreuz
A, B, C, D, E
A, B, C, A, B, C
X, Y, Z
`Unterstützte Trennzeichen: Komma
,, Semikolon ;, Leerzeichen oder benutzerdefiniert.Ausgabeformate
- JSON - Maschinenlesbare vollständige Analyse
- HTML - Menschenlesbarer Bericht mit Formatierung
- LaTeX - Für wissenschaftliche Arbeiten geeignet
Modellvergleich
ARSXAI enthält mehrere Modelle für vergleichende XAI:
| Modell | Beschreibung | Am besten für |
|--------|--------------|---------------|
| ARS 3.0 | Hierarchische Grammatik | Mustererkennung, Erklärungen |
| ARS 2.0 | Bigramm-Übergänge | Einfache Sequenzvorhersage |
| HMM | Hidden Markov Model | Erkennung latenter Phasen |
| CRF | Conditional Random Fields | Kontextsensitive Markierung |
| Petri-Netz | Ressourcenbasiertes Modell | Prozessvalidierung |
XAI-Funktionen
- Symbolerklärungen - Verstehen, was jedes Symbol in der Grammatik repräsentiert
- Sequenzerklärungen - Hierarchische Struktur jeder Sequenz sehen
- Musterübersichten - Überblick über alle entdeckten wiederkehrenden Muster
- Modellvergleich - Erklärungen verschiedener KI-Modelle vergleichen
- Konfidenzwerte - Quantitative Maßzahl jeder Analyse
Voraussetzungen
Kern:
- Python 3.7+
- numpy, scipy
- matplotlib
- tkinter (in Python enthalten)
Optional:
- hmmlearn (für HMM)
- sklearn-crfsuite (für CRF)
- networkx (für Graphvisualisierung)
- sentence-transformers (für semantische Namen)
- prefixspan (für große Datensätze)
- graphviz (für Automatenvisualisierung)