oroszgy's picture
feat: reducing the demo loading by using the common NLP object
5db52bb unverified
raw
history blame
1.63 kB
import gradio as gr
import pandas as pd
from examples.common import NLP
from resources import triples
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.",
"Noémi gulyáslevest szeret főzni, ha éhes.",
"Balázs jéghideg helyi ananászlevet ivott Hawaii fehér homokos partján.",
"Júliska fagyit árul a nyáron teljes állásban.",
"Einstein megmutatta a házát építés közben.",
"Hawking nyilatkozott egy levelet, miszerint a felfedezései az élete legizgalmasabb eseményei voltak."
]
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,
)