WesScivetti commited on
Commit
0d4b622
·
1 Parent(s): a8d120c

update app

Browse files
Files changed (1) hide show
  1. app.py +228 -224
app.py CHANGED
@@ -1,229 +1,9 @@
 
1
  import gradio as gr
2
- from transformers import pipeline
3
  import spaces
 
 
4
 
5
- COLORS = {'None': '#6adf97',
6
- 'O': '#f18621',
7
- 'B-p.Purpose-p.Purpose': '#554065',
8
- 'B-p.SocialRel-p.Gestalt': '#8ea0d7',
9
- 'B-p.Cost-p.Cost': '#f4b518',
10
- 'B-p.Topic-p.Topic': '#976cae',
11
- 'B-p.Originator-p.Gestalt': '#f25ca8',
12
- 'B-p.Originator-p.Source': '#a08323',
13
- 'B-p.Recipient-p.Goal': '#725be0',
14
- 'B-p.Possessor-p.Possessor': '#b5ce9e',
15
- 'B-p.Gestalt-p.Gestalt': '#34a8a9',
16
- 'B-p.Ancillary-p.Ancillary': '#73f29f',
17
- 'I-p.Ancillary-p.Ancillary': '#73f29f',
18
- 'B-p.ComparisonRef-p.Goal': '#6a26db',
19
- 'B-p.Source-p.Source': '#5cc334',
20
- 'I-p.Source-p.Source': '#5cc334',
21
- 'B-p.Theme-p.Theme': '#5b88c8',
22
- 'B-p.Locus-p.Locus': '#4c39c8',
23
- 'B-p.Characteristic-p.Characteristic': '#661943',
24
- 'B-p.Explanation-p.Explanation': '#852e58',
25
- 'B-p.OrgMember-p.Possessor': '#e3bd42',
26
- 'B-p.Goal-p.Goal': '#6bfc3c',
27
- 'B-p.Manner-p.Manner': '#436097',
28
- 'B-p.ComparisonRef-p.ComparisonRef': '#4df5a9',
29
- 'B-p.Cost-p.Locus': '#fe5990',
30
- 'B-p.Duration-p.Duration': '#5e454e',
31
- 'B-p.Identity-p.Identity': '#cb49ed',
32
- 'B-p.OrgMember-p.Gestalt': '#18fdd1',
33
- 'B-p.Experiencer-p.Goal': '#400043',
34
- 'B-p.QuantityItem-p.Whole': '#5f3ba4',
35
- 'B-p.Whole-p.Gestalt': '#497114',
36
- 'B-p.PartPortion-p.PartPortion': '#edfc14',
37
- 'I-p.PartPortion-p.PartPortion': '#edfc14',
38
- 'B-p.Time-p.Time': '#4605b0',
39
- 'B-p.Approximator-p.Approximator': '#553ee1',
40
- 'B-p.Direction-p.Direction': '#687447',
41
- 'B-p.Locus-p.Direction': '#12b336',
42
- 'B-p.Instrument-p.Path': '#0ccdda',
43
- 'I-p.Instrument-p.Path': '#0ccdda',
44
- 'B-p.QuantityItem-p.Gestalt': '#d88be2',
45
- 'B-p.Species-p.Species': '#4dfc63',
46
- 'B-p.Org-p.Ancillary': '#6a5b9c',
47
- 'B-p.Agent-p.Gestalt': '#f373bf',
48
- 'B-p.SocialRel-p.Ancillary': '#4ee1dc',
49
- 'B-p.Circumstance-p.Locus': '#38abe5',
50
- 'B-p.Circumstance-p.Circumstance': '#69caeb',
51
- 'B-p.Path-p.Path': '#3637c0',
52
- 'B-p.Whole-p.Whole': '#00d816',
53
- 'I-p.Locus-p.Locus': '#4c39c8',
54
- 'B-p.Manner-p.Locus': '#67fc5f',
55
- 'I-p.Manner-p.Locus': '#67fc5f',
56
- 'B-p.QuantityItem-p.QuantityItem': '#dbbc2d',
57
- 'B-p.Theme-p.Purpose': '#cb56ba',
58
- 'B-p.Goal-p.Locus': '#b3597f',
59
- 'B-p.Extent-p.Extent': '#5cadfa',
60
- 'I-p.Extent-p.Extent': '#5cadfa',
61
- 'B-p.Experiencer-p.Gestalt': '#8275f4',
62
- 'B-p.Means-p.Means': '#b1bfb7',
63
- 'B-p.Beneficiary-p.Beneficiary': '#0e9582',
64
- 'B-p.Org-p.Beneficiary': '#c48ea7',
65
- 'B-p.Stimulus-p.Topic': '#a6af3a',
66
- 'B-p.Recipient-p.Ancillary': '#a5ff4b',
67
- 'B-p.Beneficiary-p.Possessor': '#c941dc',
68
- 'B-p.Agent-p.Ancillary': '#d18ce9',
69
- 'B-p.Theme-p.Gestalt': '#b71c4f',
70
- 'B-p.StartTime-p.StartTime': '#9b3cf9',
71
- 'I-p.ComparisonRef-p.ComparisonRef': '#4df5a9',
72
- 'B-p.Cost-p.Extent': '#117f70',
73
- 'B-p.Manner-p.Source': '#460233',
74
- 'I-p.Manner-p.Source': '#460233',
75
- 'B-p.Characteristic-p.Source': '#41c518',
76
- 'I-p.Characteristic-p.Source': '#41c518',
77
- 'B-p.Locus-p.Path': '#d3c136',
78
- 'I-p.Topic-p.Topic': '#976cae',
79
- 'B-p.Manner-p.ComparisonRef': '#32cbcb',
80
- 'B-p.Extent-p.Whole': '#94454f',
81
- 'I-p.Extent-p.Whole': '#94454f',
82
- 'B-p.Experiencer-p.Beneficiary': '#1f2d98',
83
- 'B-p.Theme-p.ComparisonRef': '#ef3f97',
84
- 'I-p.Time-p.Time': '#4605b0',
85
- 'B-p.Stuff-p.Stuff': '#9919e8',
86
- 'B-p.Theme-p.Goal': '#d7c6d1',
87
- 'B-p.Interval-p.Interval': '#042206',
88
- 'B-p.Time-p.Whole': '#ecf0a1',
89
- 'I-p.Circumstance-p.Circumstance': '#69caeb',
90
- 'B-p.Stimulus-p.Beneficiary': '#af168a',
91
- 'B-p.Time-p.Interval': '#5cc4a8',
92
- 'B-p.Characteristic-p.Locus': '#ac54e6',
93
- 'B-p.Characteristic-p.Extent': '#0ec04c',
94
- 'B-p.EndTime-p.EndTime': '#29e89e',
95
- 'B-p.Experiencer-p.Ancillary': '#bce155',
96
- 'B-p.Agent-p.Agent': '#aac43b',
97
- 'B-p.PartPortion-p.Source': '#9eb3c3',
98
- 'B-p.Org-p.Locus': '#434851',
99
- 'I-p.Characteristic-p.Locus': '#ac54e6',
100
- 'B-p.Locus-p.Source': '#7121d7',
101
- 'I-p.Locus-p.Source': '#7121d7',
102
- 'B-p.Duration-p.Extent': '#ca1096',
103
- 'B-p.Characteristic-p.Identity': '#345c8d',
104
- 'B-p.Possession-p.PartPortion': '#e592aa',
105
- 'B-p.Possession-p.Theme': '#a59bec',
106
- 'B-p.Whole-p.Locus': '#0bc209',
107
- 'B-p.Direction-p.Goal': '#9d90cd',
108
- 'B-p.Gestalt-p.Locus': '#97f830',
109
- 'B-p.Org-p.Gestalt': '#2f2c3c',
110
- 'B-p.Stimulus-p.Goal': '#c40f02',
111
- 'B-p.Theme-p.Instrument': '#a312ed',
112
- 'B-p.Stimulus-p.Force': '#d98ddb',
113
- 'I-p.Purpose-p.Purpose': '#554065',
114
- 'B-p.Beneficiary-p.Theme': '#68fdb4',
115
- 'B-p.Characteristic-p.Goal': '#a60b97',
116
- 'I-p.Characteristic-p.Goal': '#a60b97',
117
- 'B-p.Time-p.Goal': '#97567c',
118
- 'I-p.Direction-p.Direction': '#687447',
119
- 'B-p.Explanation-p.Time': '#90f72f',
120
- 'B-p.Instrument-p.Manner': '#2b1869',
121
- 'B-p.Possession-p.Ancillary': '#a9672c',
122
- 'B-p.Instrument-p.Instrument': '#6eb1ef',
123
- 'B-p.Ensemble-p.Ancillary': '#93fb41',
124
- 'I-p.Cost-p.Locus': '#fe5990',
125
- 'B-p.Recipient-p.Gestalt': '#0674a2',
126
- 'B-p.Agent-p.Source': '#bf427f',
127
- 'I-p.Circumstance-p.Locus': '#38abe5',
128
- 'B-p.Whole-p.Source': '#dae5cb',
129
- 'B-p.Stimulus-p.Explanation': '#108bd6',
130
- 'B-p.Stimulus-p.Direction': '#aa0f64',
131
- 'I-p.Explanation-p.Explanation': '#852e58',
132
- 'I-p.Approximator-p.Approximator': '#553ee1',
133
- 'B-p.ComparisonRef-p.Purpose': '#65fb63',
134
- 'B-p.ComparisonRef-p.Locus': '#e48da2',
135
- 'I-p.QuantityItem-p.Whole': '#5f3ba4',
136
- 'B-p.Theme-p.Ancillary': '#685b19',
137
- 'I-p.Manner-p.Manner': '#436097',
138
- 'B-p.Identity-p.ComparisonRef': '#caac20',
139
- 'I-p.Goal-p.Locus': '#b3597f',
140
- 'B-p.QuantityItem-p.Stuff': '#a1f649',
141
- 'B-p.Recipient-p.Direction': '#a8ba9d',
142
- 'B-p.Path-p.Locus': '#03c408',
143
- 'B-p.Originator-p.Agent': '#b46878',
144
- 'B-p.Beneficiary-p.Gestalt': '#26eaf0',
145
- 'B-p.Possessor-p.Ancillary': '#dd8d5e',
146
- 'B-p.Beneficiary-p.Goal': '#212bd7',
147
- 'B-p.OrgMember-p.PartPortion': '#bd7620',
148
- 'B-p.PartPortion-p.ComparisonRef': '#6fd197',
149
- 'B-p.Frequency-p.Extent': '#8a9e22',
150
- 'B-p.Beneficiary-p.Direction': '#094599',
151
- 'B-p.Characteristic-p.Stuff': '#02889c',
152
- 'B-p.Manner-p.Extent': '#686d06',
153
- 'I-p.Cost-p.Cost': '#f4b518',
154
- 'B-p.Theme-p.Whole': '#5a51fb',
155
- 'B-p.Frequency-p.Frequency': '#d26bc7',
156
- 'B-p.Purpose-p.Locus': '#80e1ac',
157
- 'B-p.Force-p.Gestalt': '#1063d3',
158
- 'B-p.Characteristic-p.Ancillary': '#947622',
159
- 'B-p.ComparisonRef-p.Source': '#b0954c',
160
- 'B-p.Org-p.Instrument': '#e2bfce',
161
- 'B-p.Theme-p.Characteristic': '#44b67f',
162
- 'B-p.Characteristic-p.Topic': '#b90264',
163
- 'I-p.Characteristic-p.Topic': '#b90264',
164
- 'B-p.Locus-p.Goal': '#5d62c0',
165
- 'B-p.Locus-p.Whole': '#e4222b',
166
- 'B-p.Theme-p.Locus': '#60211c',
167
- 'B-p.Frequency-p.Manner': '#6b5831',
168
- 'I-p.Frequency-p.Manner': '#6b5831',
169
- 'I-p.Ensemble-p.Ancillary': '#93fb41',
170
- 'B-p.Locus-p.Ancillary': '#8de37d',
171
- 'B-p.Topic-p.Identity': '#10a385',
172
- 'B-p.Org-p.Goal': '#b42090',
173
- 'B-p.SetIteration-p.SetIteration': '#11e7a6',
174
- 'B-p.PartPortion-p.Goal': '#ee8159',
175
- 'B-p.ComparisonRef-p.Ancillary': '#3270a9',
176
- 'B-p.Force-p.Force': '#dc6a3a',
177
- 'B-p.Approximator-p.Extent': '#005d48',
178
- 'I-p.Duration-p.Duration': '#5e454e',
179
- 'B-p.Manner-p.Stuff': '#920903',
180
- 'B-p.Path-p.Goal': '#543e80',
181
- 'B-p.Explanation-p.Source': '#e65656',
182
- 'B-p.Topic-p.Goal': '#31bcfc',
183
- 'I-p.Manner-p.ComparisonRef': '#32cbcb',
184
- 'B-p.Possession-p.Locus': '#1312e3',
185
- 'B-p.Circumstance-p.Path': '#8b9109',
186
- 'B-p.Gestalt-p.Source': '#7050ae',
187
- 'B-p.Agent-p.Locus': '#c9846e',
188
- 'B-p.Stimulus-p.Source': '#180a5f',
189
- 'B-p.Org-p.Whole': '#2a3053',
190
- 'I-p.Locus-p.Direction': '#12b336',
191
- 'B-p.Org-p.Source': '#ad1e85',
192
- 'B-p.Time-p.Extent': '#b1d4fa',
193
- 'I-p.Goal-p.Goal': '#6bfc3c',
194
- 'B-p.Possessor-p.Locus': '#ae306d',
195
- 'B-p.Force-p.Source': '#727a29',
196
- 'B-p.Gestalt-p.Topic': '#f47f98',
197
- 'I-p.Whole-p.Whole': '#00d816',
198
- 'B-p.Cost-p.Manner': '#a61141',
199
- 'B-p.Means-p.Path': '#54d11a',
200
- 'B-p.Originator-p.Instrument': '#44fe8a',
201
- 'B-p.PartPortion-p.Instrument': '#4f7170',
202
- 'B-p.Possession-p.Possession': '#d3abe4',
203
- 'I-p.Possession-p.Possession': '#d3abe4',
204
- 'B-p.Agent-p.Beneficiary': '#1c515e',
205
- 'B-p.Instrument-p.Locus': '#4460b0',
206
- 'B-p.Instrument-p.Theme': '#1bed0b',
207
- 'B-p.Duration-p.Gestalt': '#2f787f',
208
- 'I-p.Path-p.Path': '#3637c0',
209
- 'B-p.Theme-p.Source': '#54a6f9',
210
- 'B-p.Time-p.Gestalt': '#24ff12',
211
- 'B-p.Time-p.Direction': '#9e135c',
212
- 'B-p.Goal-p.Whole': '#5fad91',
213
- 'B-p.Explanation-p.Manner': '#983754',
214
- 'I-p.Explanation-p.Manner': '#983754',
215
- 'I-p.Time-p.Interval': '#5cc4a8',
216
- 'I-p.Org-p.Locus': '#434851',
217
- 'B-p.Gestalt-p.Purpose': '#9ff474',
218
- 'B-p.Stimulus-p.Theme': '#12dfa1',
219
- 'B-p.Locus-p.Gestalt': '#636042',
220
- 'B-p.Extent-p.Identity': '#1414fd',
221
- 'B-p.ComparisonRef-p.Beneficiary': '#f47ef3',
222
- 'B-p.Experiencer-p.Agent': '#21883e',
223
- 'B-p.Time-p.Duration': '#98b42b',
224
- 'B-p.SocialRel-p.Source': '#4f3f8f',
225
- 'B-p.Whole-p.Circumstance': '#c70411',
226
- 'B-p.Purpose-p.Goal': '#f2f199'}
227
 
228
  # Load the pipeline (token classification)
229
  #token_classifier = pipeline("token-classification", model="WesScivetti/SNACS_English", aggregation_strategy="simple")
@@ -231,6 +11,230 @@ COLORS = {'None': '#6adf97',
231
 
232
  @spaces.GPU # <-- required for ZeroGPU
233
  def classify_tokens(text):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
234
  token_classifier = pipeline("token-classification", model="WesScivetti/SNACS_English",
235
  aggregation_strategy="simple")
236
 
@@ -250,7 +254,7 @@ def classify_tokens(text):
250
  output += html.escape(text[last_idx:start])
251
 
252
  # Add highlighted entity
253
- color = COLORS.get(label, "#D3D3D3") # default light gray
254
  output += f"<span style='background-color: {color}; padding: 2px; border-radius: 4px;' title='{label}'>{word}</span>"
255
 
256
  last_idx = end
 
1
+ import html
2
  import gradio as gr
 
3
  import spaces
4
+ from transformers import pipeline
5
+
6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
 
8
  # Load the pipeline (token classification)
9
  #token_classifier = pipeline("token-classification", model="WesScivetti/SNACS_English", aggregation_strategy="simple")
 
11
 
12
  @spaces.GPU # <-- required for ZeroGPU
13
  def classify_tokens(text):
14
+
15
+ color_dict = {'None': '#6adf97',
16
+ 'O': '#f18621',
17
+ 'B-p.Purpose-p.Purpose': '#554065',
18
+ 'B-p.SocialRel-p.Gestalt': '#8ea0d7',
19
+ 'B-p.Cost-p.Cost': '#f4b518',
20
+ 'B-p.Topic-p.Topic': '#976cae',
21
+ 'B-p.Originator-p.Gestalt': '#f25ca8',
22
+ 'B-p.Originator-p.Source': '#a08323',
23
+ 'B-p.Recipient-p.Goal': '#725be0',
24
+ 'B-p.Possessor-p.Possessor': '#b5ce9e',
25
+ 'B-p.Gestalt-p.Gestalt': '#34a8a9',
26
+ 'B-p.Ancillary-p.Ancillary': '#73f29f',
27
+ 'I-p.Ancillary-p.Ancillary': '#73f29f',
28
+ 'B-p.ComparisonRef-p.Goal': '#6a26db',
29
+ 'B-p.Source-p.Source': '#5cc334',
30
+ 'I-p.Source-p.Source': '#5cc334',
31
+ 'B-p.Theme-p.Theme': '#5b88c8',
32
+ 'B-p.Locus-p.Locus': '#4c39c8',
33
+ 'B-p.Characteristic-p.Characteristic': '#661943',
34
+ 'B-p.Explanation-p.Explanation': '#852e58',
35
+ 'B-p.OrgMember-p.Possessor': '#e3bd42',
36
+ 'B-p.Goal-p.Goal': '#6bfc3c',
37
+ 'B-p.Manner-p.Manner': '#436097',
38
+ 'B-p.ComparisonRef-p.ComparisonRef': '#4df5a9',
39
+ 'B-p.Cost-p.Locus': '#fe5990',
40
+ 'B-p.Duration-p.Duration': '#5e454e',
41
+ 'B-p.Identity-p.Identity': '#cb49ed',
42
+ 'B-p.OrgMember-p.Gestalt': '#18fdd1',
43
+ 'B-p.Experiencer-p.Goal': '#400043',
44
+ 'B-p.QuantityItem-p.Whole': '#5f3ba4',
45
+ 'B-p.Whole-p.Gestalt': '#497114',
46
+ 'B-p.PartPortion-p.PartPortion': '#edfc14',
47
+ 'I-p.PartPortion-p.PartPortion': '#edfc14',
48
+ 'B-p.Time-p.Time': '#4605b0',
49
+ 'B-p.Approximator-p.Approximator': '#553ee1',
50
+ 'B-p.Direction-p.Direction': '#687447',
51
+ 'B-p.Locus-p.Direction': '#12b336',
52
+ 'B-p.Instrument-p.Path': '#0ccdda',
53
+ 'I-p.Instrument-p.Path': '#0ccdda',
54
+ 'B-p.QuantityItem-p.Gestalt': '#d88be2',
55
+ 'B-p.Species-p.Species': '#4dfc63',
56
+ 'B-p.Org-p.Ancillary': '#6a5b9c',
57
+ 'B-p.Agent-p.Gestalt': '#f373bf',
58
+ 'B-p.SocialRel-p.Ancillary': '#4ee1dc',
59
+ 'B-p.Circumstance-p.Locus': '#38abe5',
60
+ 'B-p.Circumstance-p.Circumstance': '#69caeb',
61
+ 'B-p.Path-p.Path': '#3637c0',
62
+ 'B-p.Whole-p.Whole': '#00d816',
63
+ 'I-p.Locus-p.Locus': '#4c39c8',
64
+ 'B-p.Manner-p.Locus': '#67fc5f',
65
+ 'I-p.Manner-p.Locus': '#67fc5f',
66
+ 'B-p.QuantityItem-p.QuantityItem': '#dbbc2d',
67
+ 'B-p.Theme-p.Purpose': '#cb56ba',
68
+ 'B-p.Goal-p.Locus': '#b3597f',
69
+ 'B-p.Extent-p.Extent': '#5cadfa',
70
+ 'I-p.Extent-p.Extent': '#5cadfa',
71
+ 'B-p.Experiencer-p.Gestalt': '#8275f4',
72
+ 'B-p.Means-p.Means': '#b1bfb7',
73
+ 'B-p.Beneficiary-p.Beneficiary': '#0e9582',
74
+ 'B-p.Org-p.Beneficiary': '#c48ea7',
75
+ 'B-p.Stimulus-p.Topic': '#a6af3a',
76
+ 'B-p.Recipient-p.Ancillary': '#a5ff4b',
77
+ 'B-p.Beneficiary-p.Possessor': '#c941dc',
78
+ 'B-p.Agent-p.Ancillary': '#d18ce9',
79
+ 'B-p.Theme-p.Gestalt': '#b71c4f',
80
+ 'B-p.StartTime-p.StartTime': '#9b3cf9',
81
+ 'I-p.ComparisonRef-p.ComparisonRef': '#4df5a9',
82
+ 'B-p.Cost-p.Extent': '#117f70',
83
+ 'B-p.Manner-p.Source': '#460233',
84
+ 'I-p.Manner-p.Source': '#460233',
85
+ 'B-p.Characteristic-p.Source': '#41c518',
86
+ 'I-p.Characteristic-p.Source': '#41c518',
87
+ 'B-p.Locus-p.Path': '#d3c136',
88
+ 'I-p.Topic-p.Topic': '#976cae',
89
+ 'B-p.Manner-p.ComparisonRef': '#32cbcb',
90
+ 'B-p.Extent-p.Whole': '#94454f',
91
+ 'I-p.Extent-p.Whole': '#94454f',
92
+ 'B-p.Experiencer-p.Beneficiary': '#1f2d98',
93
+ 'B-p.Theme-p.ComparisonRef': '#ef3f97',
94
+ 'I-p.Time-p.Time': '#4605b0',
95
+ 'B-p.Stuff-p.Stuff': '#9919e8',
96
+ 'B-p.Theme-p.Goal': '#d7c6d1',
97
+ 'B-p.Interval-p.Interval': '#042206',
98
+ 'B-p.Time-p.Whole': '#ecf0a1',
99
+ 'I-p.Circumstance-p.Circumstance': '#69caeb',
100
+ 'B-p.Stimulus-p.Beneficiary': '#af168a',
101
+ 'B-p.Time-p.Interval': '#5cc4a8',
102
+ 'B-p.Characteristic-p.Locus': '#ac54e6',
103
+ 'B-p.Characteristic-p.Extent': '#0ec04c',
104
+ 'B-p.EndTime-p.EndTime': '#29e89e',
105
+ 'B-p.Experiencer-p.Ancillary': '#bce155',
106
+ 'B-p.Agent-p.Agent': '#aac43b',
107
+ 'B-p.PartPortion-p.Source': '#9eb3c3',
108
+ 'B-p.Org-p.Locus': '#434851',
109
+ 'I-p.Characteristic-p.Locus': '#ac54e6',
110
+ 'B-p.Locus-p.Source': '#7121d7',
111
+ 'I-p.Locus-p.Source': '#7121d7',
112
+ 'B-p.Duration-p.Extent': '#ca1096',
113
+ 'B-p.Characteristic-p.Identity': '#345c8d',
114
+ 'B-p.Possession-p.PartPortion': '#e592aa',
115
+ 'B-p.Possession-p.Theme': '#a59bec',
116
+ 'B-p.Whole-p.Locus': '#0bc209',
117
+ 'B-p.Direction-p.Goal': '#9d90cd',
118
+ 'B-p.Gestalt-p.Locus': '#97f830',
119
+ 'B-p.Org-p.Gestalt': '#2f2c3c',
120
+ 'B-p.Stimulus-p.Goal': '#c40f02',
121
+ 'B-p.Theme-p.Instrument': '#a312ed',
122
+ 'B-p.Stimulus-p.Force': '#d98ddb',
123
+ 'I-p.Purpose-p.Purpose': '#554065',
124
+ 'B-p.Beneficiary-p.Theme': '#68fdb4',
125
+ 'B-p.Characteristic-p.Goal': '#a60b97',
126
+ 'I-p.Characteristic-p.Goal': '#a60b97',
127
+ 'B-p.Time-p.Goal': '#97567c',
128
+ 'I-p.Direction-p.Direction': '#687447',
129
+ 'B-p.Explanation-p.Time': '#90f72f',
130
+ 'B-p.Instrument-p.Manner': '#2b1869',
131
+ 'B-p.Possession-p.Ancillary': '#a9672c',
132
+ 'B-p.Instrument-p.Instrument': '#6eb1ef',
133
+ 'B-p.Ensemble-p.Ancillary': '#93fb41',
134
+ 'I-p.Cost-p.Locus': '#fe5990',
135
+ 'B-p.Recipient-p.Gestalt': '#0674a2',
136
+ 'B-p.Agent-p.Source': '#bf427f',
137
+ 'I-p.Circumstance-p.Locus': '#38abe5',
138
+ 'B-p.Whole-p.Source': '#dae5cb',
139
+ 'B-p.Stimulus-p.Explanation': '#108bd6',
140
+ 'B-p.Stimulus-p.Direction': '#aa0f64',
141
+ 'I-p.Explanation-p.Explanation': '#852e58',
142
+ 'I-p.Approximator-p.Approximator': '#553ee1',
143
+ 'B-p.ComparisonRef-p.Purpose': '#65fb63',
144
+ 'B-p.ComparisonRef-p.Locus': '#e48da2',
145
+ 'I-p.QuantityItem-p.Whole': '#5f3ba4',
146
+ 'B-p.Theme-p.Ancillary': '#685b19',
147
+ 'I-p.Manner-p.Manner': '#436097',
148
+ 'B-p.Identity-p.ComparisonRef': '#caac20',
149
+ 'I-p.Goal-p.Locus': '#b3597f',
150
+ 'B-p.QuantityItem-p.Stuff': '#a1f649',
151
+ 'B-p.Recipient-p.Direction': '#a8ba9d',
152
+ 'B-p.Path-p.Locus': '#03c408',
153
+ 'B-p.Originator-p.Agent': '#b46878',
154
+ 'B-p.Beneficiary-p.Gestalt': '#26eaf0',
155
+ 'B-p.Possessor-p.Ancillary': '#dd8d5e',
156
+ 'B-p.Beneficiary-p.Goal': '#212bd7',
157
+ 'B-p.OrgMember-p.PartPortion': '#bd7620',
158
+ 'B-p.PartPortion-p.ComparisonRef': '#6fd197',
159
+ 'B-p.Frequency-p.Extent': '#8a9e22',
160
+ 'B-p.Beneficiary-p.Direction': '#094599',
161
+ 'B-p.Characteristic-p.Stuff': '#02889c',
162
+ 'B-p.Manner-p.Extent': '#686d06',
163
+ 'I-p.Cost-p.Cost': '#f4b518',
164
+ 'B-p.Theme-p.Whole': '#5a51fb',
165
+ 'B-p.Frequency-p.Frequency': '#d26bc7',
166
+ 'B-p.Purpose-p.Locus': '#80e1ac',
167
+ 'B-p.Force-p.Gestalt': '#1063d3',
168
+ 'B-p.Characteristic-p.Ancillary': '#947622',
169
+ 'B-p.ComparisonRef-p.Source': '#b0954c',
170
+ 'B-p.Org-p.Instrument': '#e2bfce',
171
+ 'B-p.Theme-p.Characteristic': '#44b67f',
172
+ 'B-p.Characteristic-p.Topic': '#b90264',
173
+ 'I-p.Characteristic-p.Topic': '#b90264',
174
+ 'B-p.Locus-p.Goal': '#5d62c0',
175
+ 'B-p.Locus-p.Whole': '#e4222b',
176
+ 'B-p.Theme-p.Locus': '#60211c',
177
+ 'B-p.Frequency-p.Manner': '#6b5831',
178
+ 'I-p.Frequency-p.Manner': '#6b5831',
179
+ 'I-p.Ensemble-p.Ancillary': '#93fb41',
180
+ 'B-p.Locus-p.Ancillary': '#8de37d',
181
+ 'B-p.Topic-p.Identity': '#10a385',
182
+ 'B-p.Org-p.Goal': '#b42090',
183
+ 'B-p.SetIteration-p.SetIteration': '#11e7a6',
184
+ 'B-p.PartPortion-p.Goal': '#ee8159',
185
+ 'B-p.ComparisonRef-p.Ancillary': '#3270a9',
186
+ 'B-p.Force-p.Force': '#dc6a3a',
187
+ 'B-p.Approximator-p.Extent': '#005d48',
188
+ 'I-p.Duration-p.Duration': '#5e454e',
189
+ 'B-p.Manner-p.Stuff': '#920903',
190
+ 'B-p.Path-p.Goal': '#543e80',
191
+ 'B-p.Explanation-p.Source': '#e65656',
192
+ 'B-p.Topic-p.Goal': '#31bcfc',
193
+ 'I-p.Manner-p.ComparisonRef': '#32cbcb',
194
+ 'B-p.Possession-p.Locus': '#1312e3',
195
+ 'B-p.Circumstance-p.Path': '#8b9109',
196
+ 'B-p.Gestalt-p.Source': '#7050ae',
197
+ 'B-p.Agent-p.Locus': '#c9846e',
198
+ 'B-p.Stimulus-p.Source': '#180a5f',
199
+ 'B-p.Org-p.Whole': '#2a3053',
200
+ 'I-p.Locus-p.Direction': '#12b336',
201
+ 'B-p.Org-p.Source': '#ad1e85',
202
+ 'B-p.Time-p.Extent': '#b1d4fa',
203
+ 'I-p.Goal-p.Goal': '#6bfc3c',
204
+ 'B-p.Possessor-p.Locus': '#ae306d',
205
+ 'B-p.Force-p.Source': '#727a29',
206
+ 'B-p.Gestalt-p.Topic': '#f47f98',
207
+ 'I-p.Whole-p.Whole': '#00d816',
208
+ 'B-p.Cost-p.Manner': '#a61141',
209
+ 'B-p.Means-p.Path': '#54d11a',
210
+ 'B-p.Originator-p.Instrument': '#44fe8a',
211
+ 'B-p.PartPortion-p.Instrument': '#4f7170',
212
+ 'B-p.Possession-p.Possession': '#d3abe4',
213
+ 'I-p.Possession-p.Possession': '#d3abe4',
214
+ 'B-p.Agent-p.Beneficiary': '#1c515e',
215
+ 'B-p.Instrument-p.Locus': '#4460b0',
216
+ 'B-p.Instrument-p.Theme': '#1bed0b',
217
+ 'B-p.Duration-p.Gestalt': '#2f787f',
218
+ 'I-p.Path-p.Path': '#3637c0',
219
+ 'B-p.Theme-p.Source': '#54a6f9',
220
+ 'B-p.Time-p.Gestalt': '#24ff12',
221
+ 'B-p.Time-p.Direction': '#9e135c',
222
+ 'B-p.Goal-p.Whole': '#5fad91',
223
+ 'B-p.Explanation-p.Manner': '#983754',
224
+ 'I-p.Explanation-p.Manner': '#983754',
225
+ 'I-p.Time-p.Interval': '#5cc4a8',
226
+ 'I-p.Org-p.Locus': '#434851',
227
+ 'B-p.Gestalt-p.Purpose': '#9ff474',
228
+ 'B-p.Stimulus-p.Theme': '#12dfa1',
229
+ 'B-p.Locus-p.Gestalt': '#636042',
230
+ 'B-p.Extent-p.Identity': '#1414fd',
231
+ 'B-p.ComparisonRef-p.Beneficiary': '#f47ef3',
232
+ 'B-p.Experiencer-p.Agent': '#21883e',
233
+ 'B-p.Time-p.Duration': '#98b42b',
234
+ 'B-p.SocialRel-p.Source': '#4f3f8f',
235
+ 'B-p.Whole-p.Circumstance': '#c70411',
236
+ 'B-p.Purpose-p.Goal': '#f2f199'}
237
+
238
  token_classifier = pipeline("token-classification", model="WesScivetti/SNACS_English",
239
  aggregation_strategy="simple")
240
 
 
254
  output += html.escape(text[last_idx:start])
255
 
256
  # Add highlighted entity
257
+ color = color_dict.get(label, "#D3D3D3") # default light gray
258
  output += f"<span style='background-color: {color}; padding: 2px; border-radius: 4px;' title='{label}'>{word}</span>"
259
 
260
  last_idx = end