Szabó Gergő
triples package
2ecc574
raw
history blame
2.08 kB
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,
)