Tone Topic Studio is a lightweight Streamlit app for explainable industry labeling and text signal discovery. It is designed to deploy cleanly on Streamlit Community Cloud without heavy NLP dependencies.
- Removed fragile dependencies that commonly break Streamlit Cloud builds.
- Replaced the old topic-modeling flow with a lighter scoring engine based on keyword evidence.
- Added confidence scoring and ambiguity flags.
- Added CSV batch analysis with downloadable results.
- Added an emerging vocabulary view to surface repeated terms not yet covered by the taxonomy.
- Added a custom industry pack in the sidebar so you can test niche categories without editing the source code.
- Added demo text presets, recent-analysis history, CSV filters, and a more polished interface.
- Added
rapidfuzzfor smarter taxonomy recovery,yakefor keyphrase extraction, andplotlyfor interactive charts. - Added a no-API-key Topic Lab using
scikit-learnTF-IDF + NMF for unsupervised topic discovery.
- Single-text classification with matched keywords and signal phrases
- Fuzzy keyword recovery for near-matches and slightly messy text
- AI keyphrase extraction with YAKE
- Demo text presets and recent-analysis history
- CSV batch processing with automatic text-column detection
- Interactive Plotly dashboards for score and distribution review
- Topic Lab for unsupervised topic discovery and topic-to-industry alignment
- Filtered CSV review and signal-lab recommendations
- Downloadable enriched CSV output
- Taxonomy inspection studio
pip install -r requirements.txt
streamlit run app.pyuv sync
uv run streamlit run app.pyIf you only want to execute the app without creating a persistent virtual environment first, this also works:
uv run --with pandas --with streamlit streamlit run app.py- Push this folder to GitHub.
- In Streamlit Community Cloud, create a new app and point it to
app.py. - Make sure the app installs dependencies from
requirements.txt. - If your existing deployment was created with the wrong Python version, redeploy it and choose a supported Python version in the app's advanced settings.
gensimwas imported but not fully supported by the old dependency list.pandaswas used but not listed inrequirements.txt.openai-whisperwas listed even though the app did not use it, which made deployment heavier than necessary.
app.py: Streamlit applicationrequirements.txt: Deployment-safe dependency listinput_csv.csv: Example CSV inputhydrological_flux.csv: Additional sample data