import gradio as gr import random import pandas as pd import requests # URL of the file you want to download url = "https://raw.githubusercontent.com/Bestroi150/NLP_LAT_COLL/main/corpus_sermo_vulgaris_token.csv" # Specify the local file name to save the downloaded content local_filename = "corpus_sermo_vulgaris_token.csv" # Send an HTTP GET request to the URL response = requests.get(url) # Check if the request was successful (status code 200) if response.status_code == 200: # Open the local file for writing and save the content from the response with open(local_filename, 'wb') as f: f.write(response.content) print(f"File '{local_filename}' has been downloaded and saved.") else: print(f"Failed to download the file. Status code: {response.status_code}") data = pd.read_csv('corpus_sermo_vulgaris_token.csv') analytics_data = pd.DataFrame(columns=["Entry", "Clicks"]) # Declare as a global variable def get_random_entry(): random_row = data.sample() pos = random_row['pos'].values[0] if pos == "n": entry_str = f"POS: Noun, Lemma: {random_row['lemma'].values[0]}, Gender: {random_row['gender'].values[0]}, Case: {random_row['case'].values[0]}, Number: {random_row['number'].values[0]}" elif pos == "adp": entry_str = f"POS: Preposition, Lemma: {random_row['lemma'].values[0]}" elif pos == "adi": entry_str = f"POS: Adjective, Lemma: {random_row['lemma'].values[0]}, Gender: {random_row['gender'].values[0]}, Case: {random_row['case'].values[0]}, Number: {random_row['number'].values[0]}" elif pos == "adv": entry_str = f"POS: Adverb, Lemma: {random_row['lemma'].values[0]}" elif pos == "pron": entry_str = f"POS: Pronoun, Lemma: {random_row['lemma'].values[0]}" elif pos == "v": entry_str = f"POS: Verb, Lemma: {random_row['lemma'].values[0]}, Aspect: {random_row['aspect'].values[0]}, Tense: {random_row['tense'].values[0]}, VerbForm: {random_row['verbForm'].values[0]}, Voice: {random_row['voice'].values[0]}, Mood: {random_row['mood'].values[0]}" else: entry_str = f"POS: {pos}, Lemma: {random_row['lemma'].values[0]}," if pd.notna(random_row['aspect'].values[0]): entry_str += f" Aspect: {random_row['aspect'].values[0]}," if pd.notna(random_row['tense'].values[0]): entry_str += f" Tense: {random_row['tense'].values[0]}," if pd.notna(random_row['verbForm'].values[0]): entry_str += f" VerbForm: {random_row['verbForm'].values[0]}," if pd.notna(random_row['voice'].values[0]): entry_str += f" Voice: {random_row['voice'].values[0]}," if pd.notna(random_row['mood'].values[0]): entry_str += f" Mood: {random_row['mood'].values[0]}," if pd.notna(random_row['number'].values[0]): entry_str += f" Number: {random_row['number'].values[0]}," if pd.notna(random_row['person'].values[0]): entry_str += f" Person: {random_row['person'].values[0]}," if pd.notna(random_row['case'].values[0]): entry_str += f" Case: {random_row['case'].values[0]}," if pd.notna(random_row['gender'].values[0]): entry_str += f" Gender: {random_row['gender'].values[0]}" # Remove the trailing comma entry_str = entry_str.rstrip(',') return entry_str iface = gr.Interface( fn=get_random_entry, inputs=None, outputs="html", # Use HTML as the output type live=True, theme=gr.themes.Base(primary_hue="teal").set( button_primary_background_fill="*primary_400", button_primary_background_fill_hover="*primary_300", )) iface.launch( share=True )