import gradio as gr import spacy import pandas as pd from spacy import displacy 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.", "Anna fagyit eszik", "András fog főzni, ha haza ért.", "Balázs Jéghideg narancslevet fog kortyolni Hawaii homokos partján.", # "Júliska fagyit fog árulni a nyáron teljes állásban.", # nem jó "Júliska árulni fog fagyit a nyáron teljes állásban.", # jó "Einstein megmutatta a házát építés közben.", "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[0]) # displacy checker # text = nlp(EXAMPLES[0]) # displacy.serve(text, style="dep") # alma = 42 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, )