import gradio as gr from collections import Counter import string def process_text(text, sorting_option): # Remove punctuation from the input text translator = str.maketrans('', '', string.punctuation) text = text.translate(translator) words = text.split() # Count word frequencies word_counts = Counter(words) # Sort words based on the selected option if sorting_option == 'alphabetically': sorted_words = sorted(word_counts.items(), key=lambda x: x[0]) elif sorting_option == 'by_frequency': sorted_words = sorted(word_counts.items(), key=lambda x: x[1], reverse=True) else: sorted_words = word_counts.items() # Get the top 5 words with their frequencies top_5_words = sorted_words # Format the top 5 words and frequencies as an HTML table table_html = "
Word | Frequency |
---|---|
{word} | {freq} |