-
Notifications
You must be signed in to change notification settings - Fork 0
/
tables.py
184 lines (165 loc) · 6.29 KB
/
tables.py
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
from py2tex import Document, Table
import numpy as np
doc = Document('Comick_table', doc_type='article', filepath='.', options=('10pt',))
n_languages = 23
n_rows = n_languages + 3
n_tasks = 2
n_models = 3
n_metrics = 2
n_cols = n_tasks * n_models * n_metrics + 1
table = doc.new(Table(shape=(n_rows, n_cols), float_format='.1f'))
table.caption = "us VS them"
### Ici est l'endroit où on met les vrais résultats. Tu peux faire des slices différentes avec une boucle for si c'est pas dans un gros numpy array
dummy_data = np.random.rand(n_languages, n_tasks*n_models*n_metrics)
pos_data = """ 79.03993988 82.09876251 85.0843
82.92046356 86.66093063 87.6879
89.31977081 90.09206581 91.571
88.24430302 88.90108054 89.9972
93.65546926 94.38464864 94.9796
93.35256141 94.2382322 95.1718
97.65939903 98.1129303 98.4698
97.93044535 98.23765098 98.593
96.334729 97.12365532 97.6299
93.79890468 94.55925935 95.8387
95.68625736 96.62819195 97.1607
95.7772611 96.32789739 96.5079
93.03076511 93.46057722 93.4496
92.48313332 92.83579063 92.9639
96.74218216 96.98924866 97.1528
95.66993427 96.04122925 96.2331
96.55020342 97.16500051 97.3369
94.43669013 94.83850259 95.2787
96.12512762 96.33505249 96.6096
96.29913217 96.56465771 96.8248
97.4767313 97.68402863 97.9137
94.69199066 94.90881958 95.3213
98.39009032 98.53761896 98.7273"""
morph_data = """0.6075268817 0.6451612903 0.6612903225806451
0.8792703664 0.9012212088 0.9189982995826248
0.8336376329 0.8474922135 0.8738051766727527
- - -
0.9074754902 0.8933823529 0.9087775735294118
0.941132452 0.9436268396 0.9525234888168288
0.9650190623 0.9703698749 0.9739147883084743
0.9728622897 0.97592079 0.9807936549078562
0.9578709191 0.9684301261 0.9737097295550049
0.925830167 0.9349131051 0.9506508689493919
0.9267857143 0.9351708075 0.9489906832298136
0.9543096387 0.962956221 0.9707836534085738
- - -
0.8820403826 0.8788522848 0.8894792773645058
0.9620902988 0.9670264578 0.9691325523232855
0.9497361844 0.9511246876 0.9571785615106915
0.9753051338 0.9791074666 0.9823550106898324
0.9631800014 0.9650430188 0.9686674344556602
0.9613355419 0.9610134658 0.9693567681972945
0.9657220315 0.9681502575 0.9712026057107193
0.9822927879 0.98401507 0.9873519913885899
0.9718914121 0.9710037725 0.9801020785561062
0.9708419023 0.9729764555 0.9784476254579795"""
pos_oov_data = """0.5679012346 0.8024691358 0.7777777777777778
0.6213017751 0.8224852071 0.8609467455621301
0.6138392857 0.7165178571 0.7991071428571429
0.7574750831 0.7790697674 0.8064784053156147
0.7760141093 0.860670194 0.91005291005291
0.806372549 0.8831699346 0.9084967320261438
0.8517350158 0.9022082019 0.9242902208201893
0.8922155689 0.9288090486 0.9514304723885563
0.8776775648 0.9413754228 0.9650507328072153
0.7432483834 0.8269303918 0.8748573602130088
0.8619139371 0.9132947977 0.9299935773924213
0.7761506276 0.8556485356 0.8682008368200836
0.8615819209 0.9110169492 0.9096045197740112
0.8822216712 0.8916439375 0.8918918918918919
0.7009345794 0.7975077882 0.822429906542056
0.86900369 0.9049815498 0.9178966789667896
0.8590797042 0.9083812654 0.9141331142152835
0.7285714286 0.7993197279 0.8428571428571429
0.8420758929 0.890625 0.9045758928571429
0.8239247312 0.8884408602 0.8998655913978495
0.9275362319 0.9594202899 0.9623188405797102
0.7702349869 0.8093994778 0.8276762402088773
0.9385781782 0.9516536644 0.9594000659268213"""
morph_oov_data = """0.3559322034 0.4745762712 0.5423728813559322
0.7034649476 0.8074133763 0.8742949234488316
0.6166263115 0.6779661017 0.7990314769975787
- - -
0.796596755 0.8523941433 0.9050257222002375
0.8980775605 0.9197878687 0.9461385482267153
0.8363892807 0.9196050776 0.9365303244005642
0.9148837209 0.9420155039 0.9561240310077519
0.8673656182 0.9244466633 0.9524047262439674
0.7950217173 0.8533244237 0.8884062813230872
0.7989711934 0.8609053498 0.8833333333333333
0.7298624754 0.8310412574 0.8752455795677799
- - -
0.8909090909 0.8727272727 0.8909090909090909
0.6144278607 0.7835820896 0.835820895522388
0.8822727273 0.9222727273 0.9413636363636364
0.9080033497 0.9450891255 0.9563344897715038
0.8243137255 0.8737254902 0.9270588235294117
0.7905890805 0.8448275862 0.9137931034482759
0.893301719 0.9407231772 0.9432918395573997
0.9280245023 0.9647779479 0.9793261868300153
0.7182835821 0.7817164179 0.8171641791044776
0.919315942 0.940173913 0.9520347826086957"""
languages_data = """kk
ta
lv
vi
hu
tr
el
bg
sv
eu
ru
da
id
zh
fa
he
ro
en
ar
hi
it
es
cs"""
pos_values = [[round(float(value), 1) if value is not '-' else '-' for value in line.strip().split("\t") ] for line in pos_data.split("\n")]
pos_oov_values = [[round(float(value)*100, 1) if value is not '-' else '-' for value in line.strip().split("\t") ] for line in pos_oov_data.split("\n")]
morph_values = [[round(float(value)*100, 1) if value is not '-' else '-' for value in line.strip().split("\t") ] for line in morph_data.split("\n")]
morph_oov_values = [[round(float(value)*100, 1) if value is not '-' else '-' for value in line.strip().split("\t") ] for line in morph_oov_data.split("\n")]
all_values = list()
for pos, pos_oov, morph, morph_oov in zip(pos_values, pos_oov_values, morph_values, morph_oov_values):
line = pos + pos_oov + morph + morph_oov
# for p, po in zip(pos, pos_oov):
# line += [p, po]
# for m, mo in zip(morph, morph_oov):
# line += [m, mo]
all_values.append(line)
languages_values = [l.strip() for l in languages_data.split("\n")]
table[3:,1:] = all_values
###
# languages = ['fr', 'en', 'es', 'kk'] + ['??']*(n_languages - 4)
table[3:,0] = languages_values
table[0,1:n_models*n_metrics+1] = 'POS'
table[0,n_models*n_metrics+1:] = 'MORPH'
metrics = ['', 'All', '', '', 'OOV', '']
table[1,1:n_models*n_metrics+1] = metrics
table[1,n_models*n_metrics+1:] = metrics
table[1,1:n_models+1].add_rule(trim_right=True)
table[1,n_models+1:n_metrics*n_models+1].add_rule(trim_right=True, trim_left=True)
table[1,n_metrics*n_models+1:n_metrics*n_models+4].add_rule(trim_right=True, trim_left=True)
table[1,n_metrics*n_models+4:].add_rule(trim_left=True)
models = ['Random', 'Mimick', 'Ours'] * n_tasks * n_metrics
table[2, 1:] = models
table[2,1:n_models*n_metrics+1].add_rule(trim_right=True)
table[2,n_models*n_metrics+1:].add_rule(trim_left=True)
for i in range(2,n_rows):
table[i, 1:4].highlight_best()
table[i, 4:7].highlight_best()
table[i, 7:10].highlight_best()
table[i, 10:].highlight_best()
# table[i, 4:8].highlight_best()
doc.build()