import gradio as gr import spacy import pandas as pd from resources import triples nlp = spacy.load("hu_core_news_lg") def process(text: str) -> pd.DataFrame: doc = nlp(text) tuples_to_list = list() tuples = triples.subject_verb_object_triples(doc) if tuples: tuples_to_list = list(tuples) subject = "" verb = "" object = "" if len(tuples_to_list) == 0: return pd.DataFrame([["-", "-", "-"]], columns=['Subject', 'Verb', 'Object']) for sub_multiple in tuples_to_list[0][0]: subject += str(sub_multiple) + ", " subject = subject[:-2] for verb_multiple in tuples_to_list[0][1]: verb += str(verb_multiple) + ", " verb = verb[:-2] for obj_multiple in tuples_to_list[0][2]: object += str(obj_multiple) + ", " object = object[:-2] relation_list = [[subject, verb, object]] return pd.DataFrame(relation_list, columns=['Subject', 'Verb', 'Object']) EXAMPLES = ["Anna éppen most házat épít magának.", "András főzni fog, ha haza ért.", "Jéghideg narancslevet fogok kortyolni Mallorca homokos partján.", "Júliska fagyit fog árulni.", "Einstein megmutatta, hogy hogyan kell házat építeni.", "Vespucci 1497 és 1504 között legalább két felfedező úton vett részt.", "Einstein megállapította, hogy az atomokra hasonló energiaeloszlás lehet érvényes.", "Hawking úgy nyilatkozott, hogy a felfedezései az élete legizgalmasabb eseményei voltak.", "Einstein megmutatta, ha feltételezi, hogy a fény valóban csak diszkrét csomagokban terjed, akkor meg tudja magyarázni a fényelektromos jelenség furcsa tulajdonságait."] # process(EXAMPLES[4]) demo = gr.Interface( fn=process, inputs=gr.Textbox(value=EXAMPLES[0], lines=10, label="Input text", show_label=True), outputs=gr.DataFrame(label="Keywords", show_label=False, max_cols=3, max_rows=1), examples=EXAMPLES, # cache_examples=True, )