Spaces:
Sleeping
Sleeping
verificador de coincidencias token originales vs anonimizados
Browse files
app.py
CHANGED
@@ -127,7 +127,27 @@ class Model:
|
|
127 |
a = out_json(t.replace('##','').replace('Ġ','').replace('Ċ',''),pre_tokens[i].replace('▁',''))
|
128 |
list.append(a)
|
129 |
i=i+1
|
130 |
-
return MyEncoder().encode(list)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
131 |
def salida_texto( self,tokens,pre_tokens):
|
132 |
new_labels = []
|
133 |
current_word = None
|
@@ -306,16 +326,23 @@ class Model:
|
|
306 |
|
307 |
if etiquetas:
|
308 |
out2 = self.salida_texto(new_tokens,new_identificadores)#solo identificadores
|
|
|
|
|
309 |
else:
|
310 |
-
out2 = self.salida_texto(new_tokens,self.reemplazo_fake(new_identificadores))
|
|
|
|
|
|
|
|
|
311 |
|
312 |
|
313 |
return (
|
314 |
|
315 |
|
316 |
out1,
|
317 |
-
str(out2)
|
318 |
-
|
|
|
319 |
|
320 |
)
|
321 |
class ModeloDataset:
|
@@ -666,8 +693,8 @@ def procesar(texto,archivo, etiquetas):
|
|
666 |
if len(texto)>0:
|
667 |
print('text')
|
668 |
model.identificacion_idioma(texto[:1700])
|
669 |
-
labels, textoProcesado= model.predict(etiquetas)
|
670 |
-
return model.idioma + "/" + model.categoria_texto,labels, textoProcesado,gr.Dataframe(),gr.File()
|
671 |
else:
|
672 |
|
673 |
if archivo.name.split(".")[1]=="csv":
|
@@ -687,7 +714,7 @@ def procesar(texto,archivo, etiquetas):
|
|
687 |
print('out csv:',out)
|
688 |
df_new[item] = modelo.unir_array(out)
|
689 |
|
690 |
-
return modelo.idioma,"","", df_new, df_new.to_csv(sep='\t', encoding='utf-8',index=False)
|
691 |
|
692 |
else:
|
693 |
print('json')
|
@@ -711,9 +738,9 @@ def procesar(texto,archivo, etiquetas):
|
|
711 |
print('un')
|
712 |
|
713 |
|
714 |
-
return modelo.idioma,"","", df_new, df_new.to_csv(sep='\t', encoding='utf-8',index=False)
|
715 |
|
716 |
-
demo = gr.Interface(fn=procesar,inputs=["text",gr.File(), "checkbox"] , outputs=[gr.Label(label="idioma/categoría"),gr.Textbox(label="etiquetas"),gr.Textbox(label="texto procesado"),gr.Dataframe(label="Datos procesados en dataframe",interactive=False),gr.Textbox(label="datos csv")])
|
717 |
#
|
718 |
demo.launch(share=True)
|
719 |
|
|
|
127 |
a = out_json(t.replace('##','').replace('Ġ','').replace('Ċ',''),pre_tokens[i].replace('▁',''))
|
128 |
list.append(a)
|
129 |
i=i+1
|
130 |
+
return MyEncoder().encode(list)
|
131 |
+
def tokens_identificados(self,tokens,pre_tokens):
|
132 |
+
list=[]
|
133 |
+
i=0
|
134 |
+
for t in tokens:
|
135 |
+
if pre_tokens[i]!='O':
|
136 |
+
a = t.replace('##','').replace('Ġ','').replace('Ċ','')
|
137 |
+
list.append(a)
|
138 |
+
i=i+1
|
139 |
+
return list
|
140 |
+
def metricas_anonimizacion(self,_f,t,id):
|
141 |
+
i=0
|
142 |
+
coincidencia=0
|
143 |
+
Z=['O']
|
144 |
+
_fake_filter= [x for x in _f if x not in Z]
|
145 |
+
new_tokens_filter= self.tokens_identificados(t,id)
|
146 |
+
for token in new_tokens_filter:
|
147 |
+
if token==_fake_filter[i]:
|
148 |
+
coincidencia=coincidencia+1
|
149 |
+
i=i+1
|
150 |
+
return str(coincidencia) + "/" + str(len(_fake_filter))
|
151 |
def salida_texto( self,tokens,pre_tokens):
|
152 |
new_labels = []
|
153 |
current_word = None
|
|
|
326 |
|
327 |
if etiquetas:
|
328 |
out2 = self.salida_texto(new_tokens,new_identificadores)#solo identificadores
|
329 |
+
out3=""
|
330 |
+
coincidencia=""
|
331 |
else:
|
332 |
+
#out2 = self.salida_texto(new_tokens,self.reemplazo_fake(new_identificadores))
|
333 |
+
_fake=self.reemplazo_fake(new_identificadores)
|
334 |
+
coincidencia=self.metricas_anonimizacion(_fake,new_tokens,new_identificadores)
|
335 |
+
out2 = self.salida_texto(new_tokens,_fake)
|
336 |
+
out3 = self.salida_json(_fake,new_identificadores)
|
337 |
|
338 |
|
339 |
return (
|
340 |
|
341 |
|
342 |
out1,
|
343 |
+
str(out2),
|
344 |
+
out3,
|
345 |
+
coincidencia
|
346 |
|
347 |
)
|
348 |
class ModeloDataset:
|
|
|
693 |
if len(texto)>0:
|
694 |
print('text')
|
695 |
model.identificacion_idioma(texto[:1700])
|
696 |
+
labels, textoProcesado, labels_fake, coincidencia= model.predict(etiquetas)
|
697 |
+
return model.idioma + "/" + model.categoria_texto,labels, textoProcesado,gr.Dataframe(),gr.File(),labels_fake, coincidencia
|
698 |
else:
|
699 |
|
700 |
if archivo.name.split(".")[1]=="csv":
|
|
|
714 |
print('out csv:',out)
|
715 |
df_new[item] = modelo.unir_array(out)
|
716 |
|
717 |
+
return modelo.idioma,"","", df_new, df_new.to_csv(sep='\t', encoding='utf-8',index=False),"",""
|
718 |
|
719 |
else:
|
720 |
print('json')
|
|
|
738 |
print('un')
|
739 |
|
740 |
|
741 |
+
return modelo.idioma,"","", df_new, df_new.to_csv(sep='\t', encoding='utf-8',index=False),"",""
|
742 |
|
743 |
+
demo = gr.Interface(fn=procesar,inputs=["text",gr.File(), "checkbox"] , outputs=[gr.Label(label="idioma/categoría"),gr.Textbox(label="etiquetas"),gr.Textbox(label="texto procesado"),gr.Dataframe(label="Datos procesados en dataframe",interactive=False),gr.Textbox(label="datos csv"),gr.Textbox(label="labels anonimizados"),gr.Label(label="coincidencia tokens originales")])
|
744 |
#
|
745 |
demo.launch(share=True)
|
746 |
|