import streamlit as st import pandas as pd import numpy as np import plotly.graph_objs as go from keras.preprocessing.text import Tokenizer # Set up the Streamlit app st.set_page_config(page_title='Keras and Plotly Example') st.sidebar.title('Word Frequency') # Generate random collections of words and save to CSV file def generate_data(): data = [] for i in range(5): words = np.random.choice(['apple', 'banana', 'cherry', 'date', 'elderberry'], size=100) data.append(' '.join(words)) df = pd.DataFrame({'text': data}) df.to_csv('word_data.csv', index=False) # Load data from CSV file def load_data(): df = pd.read_csv('word_data.csv') return df # Create a bar chart of word frequency def plot_word_frequency(text): tokenizer = Tokenizer() tokenizer.fit_on_texts(text) word_counts = tokenizer.word_counts words = list(word_counts.keys()) counts = list(word_counts.values()) fig = go.Figure([go.Bar(x=words, y=counts)]) fig.update_layout(title='Word Frequency') st.plotly_chart(fig) # Main Streamlit app if st.sidebar.button('Generate Data'): generate_data() st.sidebar.write('Data generated') else: st.sidebar.write('Click "Generate Data" to generate new data') df = load_data() text = df['text'].tolist() st.write(df) plot_word_frequency(text)