import streamlit as st from collections import Counter import plotly.express as px import numpy as np def get_word_score(word): # This function returns a score based on the length of the word # Modify this function as per your requirements score = len(word)**2 return score def get_word_frequency(text): # This function returns the word frequency of the given text words = text.split() word_frequency = Counter(words) return word_frequency # Load the markdown file with open('Setup.md', 'r') as file: text = file.read() # Display the parsed markdown st.markdown(text, unsafe_allow_html=True) # Get the word frequency of the markdown text word_frequency = get_word_frequency(text) # Get the top words and their frequency top_words = word_frequency.most_common(10) top_words_dict = dict(top_words) # Create a Plotly bar chart to display the top words and their frequency fig = px.bar(x=list(top_words_dict.keys()), y=list(top_words_dict.values()), labels={'x':'Word', 'y':'Frequency'}) st.plotly_chart(fig) # Calculate the scores for each word based on their length word_scores = {word:get_word_score(word) for word in word_frequency} top_word_scores = dict(sorted(word_scores.items(), key=lambda item: item[1], reverse=True)[:10]) # Create a Plotly bar chart to display the top words and their scores fig = px.bar(x=list(top_word_scores.keys()), y=list(top_word_scores.values()), labels={'x':'Word', 'y':'Score'}) st.plotly_chart(fig)