How clive0707/textiq works
TextIQ is a web platform for news-text classification and NLP analysis. Users load or upload a labeled dataset, configure and train a model, review experiments and evaluation, then classify text or CSV batches; predictions include calibrated confidence, feature explanations where supported, and optional similar-document results. Reports export evaluation results to PDF. The README documents these capabilities and their broad architecture; sampled source confirms app registration, dataset validation, model registry, persistence conventions, and frontend classification behavior, but most route/service call wiring was not sampled.
Main entry points: app.py Flask application · training.py Training and evaluation · predictor.py Prediction service · repository.py Repository and runs
Components 28
Web interface
- React application
frontend/src/App.tsx - API client
frontend/src/services/api.ts - Classification workspace
frontend/src/pages/ClassifyPage.tsx - Batch workflow
frontend/src/pages/BatchPage.tsx - Dataset workspace
frontend/src/pages/DatasetPage.tsx - Models and experiments
frontend/src/pages/ModelsPage.tsx - Analytics dashboard
frontend/src/pages/AnalyticsPage.tsx
API workflows
- Flask application
backend/app.py - Dataset routes
backend/routes/datasets.py - Classification routes
backend/routes/classify.py - Batch routes
backend/routes/batch.py - Model routes
backend/routes/models.py - Analytics routes
backend/routes/analytics.py - Report routes
backend/routes/reports.py
NLP and models
- Dataset validation
backend/datasets/loader.py - Text preprocessing
backend/preprocessing/text.py - Feature extraction
backend/classification/features.py - Classifier registry
backend/classification/registry.py - Training and evaluation
backend/services/training.py - Prediction service
backend/services/predictor.py - Feature explanations
backend/explainability/explain.py - Similarity search
backend/similarity/index.py
Persistence and results
- Repository and runs
backend/services/repository.py - SQLite state
backend/db.py - PDF report output
backend/services/report.py
Other components
- Platform user
- Dataset CSV files
- Saved model artifacts
Connections 42
- Platform user → React application: uses
- React application → Classification workspace: routes to
- React application → Batch workflow: routes to
- React application → Dataset workspace: routes to
- React application → Models and experiments: routes to
- React application → Analytics dashboard: routes to
- Classification workspace → API client: requests
- Batch workflow → API client: requests
- Dataset workspace → API client: requests
- Models and experiments → API client: requests
- Analytics dashboard → API client: requests
- API client → Flask application: HTTP /api
- Flask application → Dataset routes: registers
- Flask application → Classification routes: registers
- Flask application → Batch routes: registers
- Flask application → Model routes: registers
- Flask application → Analytics routes: registers
- Flask application → Report routes: registers
- Dataset routes → Dataset validation: validates
- Dataset routes → Dataset CSV files: reads / writes
- Dataset validation → Dataset CSV files: reads
- Dataset routes → Repository and runs: queries
- Repository and runs → SQLite state: reads / writes
- Model routes → Training and evaluation: starts training
- Training and evaluation → Dataset validation: builds training frame
- Training and evaluation → Text preprocessing: processes text
- Training and evaluation → Feature extraction: extracts features
- Training and evaluation → Classifier registry: tunes and fits
- Training and evaluation → Repository and runs: records run
- Training and evaluation → Saved model artifacts: saves artifact
- Classification routes → Prediction service: predicts
- Batch routes → Prediction service: classifies rows
- Prediction service → Repository and runs: loads deployed run
- Prediction service → Saved model artifacts: loads artifact
- Prediction service → Text preprocessing: processes text
- Prediction service → Feature extraction: vectorizes
- Prediction service → Feature explanations: gets contributions
- Classification routes → Similarity search: queries similar texts
- Analytics routes → Repository and runs: reads run results
- Report routes → PDF report output: exports results
- PDF report output → Repository and runs: reads evaluation
- Repository and runs → Analytics routes: returns run data