Skip to content

dev856/Tone-topic

Repository files navigation

Tone Topic Studio

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.

What changed

  • 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 rapidfuzz for smarter taxonomy recovery, yake for keyphrase extraction, and plotly for interactive charts.
  • Added a no-API-key Topic Lab using scikit-learn TF-IDF + NMF for unsupervised topic discovery.

Features

  • 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

Local run

pip install -r requirements.txt
streamlit run app.py

Local run with uv

uv sync
uv run streamlit run app.py

If 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

Streamlit Community Cloud deployment

  1. Push this folder to GitHub.
  2. In Streamlit Community Cloud, create a new app and point it to app.py.
  3. Make sure the app installs dependencies from requirements.txt.
  4. 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.

Why the previous deployment likely failed

  • gensim was imported but not fully supported by the old dependency list.
  • pandas was used but not listed in requirements.txt.
  • openai-whisper was listed even though the app did not use it, which made deployment heavier than necessary.

File overview

  • app.py: Streamlit application
  • requirements.txt: Deployment-safe dependency list
  • input_csv.csv: Example CSV input
  • hydrological_flux.csv: Additional sample data

About

Topic-Modeling-and-Labeling-App-With-Whisper-and-Streamlit

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages