File size: 2,078 Bytes
3571bad
 
 
 
 
2ecc574
3571bad
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2ecc574
 
 
 
 
 
 
 
 
 
 
19cfb7e
3571bad
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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,
)