davda54 commited on
Commit
7471ca8
·
1 Parent(s): ee95081

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +3 -78
app.py CHANGED
@@ -1,5 +1,4 @@
1
  import gradio as gr
2
- import tabulate
3
  import matplotlib.pyplot as plt
4
  import networkx as nx
5
 
@@ -13,7 +12,6 @@ def parse(text):
13
 
14
  dependency_tree = render_dependency_tree(output["forms"], output["heads"], output["deprel"])
15
  table = render_table(output["forms"], output["lemmas"], output["upos"], output["xpos"], output["feats"], output["ne"])
16
- table = gr.DataFrame(**table, interactive=False, datatype="markdown")
17
 
18
  return dependency_tree, table
19
 
@@ -57,78 +55,6 @@ description = """
57
  </div>
58
  """
59
 
60
- text = """1 Forretten forrett NOUN _ Definite=Def|Gender=Masc|Number=Sing 2 nsubj _ name=O
61
- 2 lyder lyde VERB _ Mood=Ind|Tense=Pres|VerbForm=Fin 0 root _ name=O
62
- 3 navnet navn NOUN _ Definite=Def|Gender=Neut|Number=Sing 5 nmod _ name=O
63
- 4 " $" PUNCT _ _ 5 punct _ SpaceAfter=No|name=O
64
- 5 Coquilles Coquilles PROPN _ _ 2 obj _ name=B-PROD
65
- 6 St. St. PROPN _ _ 5 flat:name _ name=I-PROD
66
- 7 Jacques Jacques PROPN _ _ 5 flat:name _ name=I-PROD
67
- 8 Prince Prince PROPN _ _ 5 flat:name _ name=I-PROD
68
- 9 de de X _ _ 5 flat:name _ name=I-PROD
69
- 10 Norvege Norvege PROPN _ _ 5 flat:name _ SpaceAfter=No|name=I-PROD
70
- 11 " $" PUNCT _ _ 5 punct _ SpaceAfter=No|name=O
71
- 12 , $, PUNCT _ _ 5 punct _ name=O
72
- 13 som som PRON _ PronType=Rel 16 nsubj _ name=O
73
- 14 er være AUX _ Mood=Ind|Tense=Pres|VerbForm=Fin 16 cop _ name=O
74
- 15 grillet grille ADJ _ Definite=Ind|Gender=Neut|Number=Sing|VerbForm=Part 16 amod _ name=O
75
- 16 kamskjell kamskjell NOUN _ Definite=Ind|Gender=Neut|Number=Sing 5 acl:relcl _ name=O
76
- 17 på på ADP _ _ 19 case _ name=O
77
- 18 norsk norsk ADJ _ Definite=Ind|Degree=Pos|Number=Sing 19 amod _ name=O
78
- 19 spekeskinke spekeskinke NOUN _ Definite=Ind|Gender=Fem|Number=Sing 16 nmod _ name=O
79
- 20 - $- PUNCT _ _ 16 punct _ name=O
80
- 21 med med ADP _ _ 22 case _ name=O
81
- 22 trøffelhonningvinaigrette trøffelhonningvinaigrette NOUN _ Definite=Ind|Gender=Masc|Number=Sing 16 nmod _ SpaceAfter=No|name=O
82
- 23 , $, PUNCT _ _ 22 punct _ name=O
83
- 24 ruccolasalat ruccolasalat NOUN _ Definite=Ind|Gender=Masc|Number=Sing 22 conj _ name=O
84
- 25 og og CCONJ _ _ 27 cc _ name=O
85
- 26 ristede riste ADJ _ Number=Plur|VerbForm=Part 27 amod _ name=O
86
- 27 gresskarkjerner gresskarkjerne NOUN _ Definite=Ind|Gender=Fem|Number=Plur 22 conj _ SpaceAfter=No|name=O
87
- 28 . $. PUNCT _ _ 2 punct _ name=O"""
88
-
89
- forms = [
90
- line.split("\t")[1]
91
- for line in text.split("\n")
92
- if line and not line.startswith("#")
93
- ]
94
- lemmas = [
95
- line.split("\t")[2]
96
- for line in text.split("\n")
97
- if line and not line.startswith("#")
98
- ]
99
- upos = [
100
- line.split("\t")[3]
101
- for line in text.split("\n")
102
- if line and not line.startswith("#")
103
- ]
104
- xpos = [
105
- line.split("\t")[4]
106
- for line in text.split("\n")
107
- if line and not line.startswith("#")
108
- ]
109
- feats = [
110
- line.split("\t")[5]
111
- for line in text.split("\n")
112
- if line and not line.startswith("#")
113
- ]
114
- ne = [
115
- line.split("\t")[9].split('name=')[-1]
116
- for line in text.split("\n")
117
- if line and not line.startswith("#")
118
- ]
119
- edges = [
120
- int(line.split("\t")[6])
121
- for line in text.split("\n")
122
- if line and not line.startswith("#")
123
- ]
124
-
125
- edge_labels = [
126
- line.split("\t")[7]
127
- for line in text.split("\n")
128
- if line and not line.startswith("#")
129
- ]
130
-
131
- print(ne, flush=True)
132
 
133
  def render_table(forms, lemmas, upos, xpos, feats, named_entities):
134
  feats = [[f"*{f.split('=')[0]}:* {f.split('=')[1]}" for f in (feat.split("|")) if '=' in f] for feat in feats]
@@ -159,8 +85,7 @@ def render_table(forms, lemmas, upos, xpos, feats, named_entities):
159
  ["*NE:*"] + named_entities_converted,
160
  ]
161
 
162
- #return tabulate.tabulate(array, headers="firstrow", tablefmt="unsafehtml")
163
- return {"value": array[1:], "headers": array[0]}
164
 
165
 
166
  custom_css = \
@@ -193,8 +118,8 @@ with gr.Blocks(theme='sudeepshouche/minimalist', css=custom_css) as demo:
193
 
194
  with gr.Column(scale=1, variant="panel"):
195
  gr.Label("", show_label=False, container=False)
196
- table = gr.DataFrame(**render_table(forms, lemmas, upos, xpos, feats, ne), interactive=False, datatype="markdown")
197
- dependency_plot = gr.Plot(render_dependency_tree(forms, edges, edge_labels), container=False)
198
 
199
  source.submit(
200
  fn=parse, inputs=[source], outputs=[dependency_plot, table], queue=True
 
1
  import gradio as gr
 
2
  import matplotlib.pyplot as plt
3
  import networkx as nx
4
 
 
12
 
13
  dependency_tree = render_dependency_tree(output["forms"], output["heads"], output["deprel"])
14
  table = render_table(output["forms"], output["lemmas"], output["upos"], output["xpos"], output["feats"], output["ne"])
 
15
 
16
  return dependency_tree, table
17
 
 
55
  </div>
56
  """
57
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58
 
59
  def render_table(forms, lemmas, upos, xpos, feats, named_entities):
60
  feats = [[f"*{f.split('=')[0]}:* {f.split('=')[1]}" for f in (feat.split("|")) if '=' in f] for feat in feats]
 
85
  ["*NE:*"] + named_entities_converted,
86
  ]
87
 
88
+ return {"data": array[1:], "headers": array[0]}
 
89
 
90
 
91
  custom_css = \
 
118
 
119
  with gr.Column(scale=1, variant="panel"):
120
  gr.Label("", show_label=False, container=False)
121
+ table = gr.DataFrame([["", "", "", ""] for _ in range(3)], headers=["", "", "", ""], interactive=False, datatype="markdown")
122
+ dependency_plot = gr.Plot(plt.subplots(figsize=(40, 16))[0], container=False)
123
 
124
  source.submit(
125
  fn=parse, inputs=[source], outputs=[dependency_plot, table], queue=True