GPalomeque commited on
Commit
3d2e947
1 Parent(s): d0d2f52

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +38 -18
app.py CHANGED
@@ -4,26 +4,46 @@ import gradio as gr
4
  examples =[["Una persona promovió juicio de amparo indirecto contra el auto por el cual el presidente de la Junta fijó fecha lejana para llevar a cabo su reinstalación, ordenada en el laudo que le fue favorable, pues en su opinión, ello constituía una tardanza excesiva de proveer adecuadamente. Por su parte, el Juez Federal negó la suspensión provisional, al considerar que de concederse, los efectos dejarían sin materia una eventual sentencia protectora, dado que la restitución que aquél solicita coincidiría exactamente, en su caso, con los del fallo protector"],
5
  ["En un juicio ordinario civil, una persona moral ejerció acción reivindicatoria respecto de una fracción de un bien inmueble que refiere es de su propiedad, mientras que su contraparte aduce que es un bien del dominio público, al tratarse de un anexo que forma parte de un monumento histórico"],["El artículo 47 DE LA LEY DEL REGISTRO CIVIL del menor a que se le registre inmediatamente después de su nacimiento, se le asigne un nombre y apellidos, se le respete su derecho a la identidad y filiación en un sentido de pertenencia con sus progenitores biológicos y se protejan su desarrollo y bienestar integral, al garantizársele y reconocérsele sus lazos familiares, prerrogativas que salvaguardan los artículos de la Carta Magna y de los tratados internacionales invocados."]]
6
 
7
- def ner_tagging(text):
8
- model_name = "hackathon-pln-es/jurisbert-finetuning-ner"
9
- tokenizer = AutoTokenizer.from_pretrained(model_name, add_prefix_space=True)
10
 
11
- model = AutoModelForTokenClassification.from_pretrained(model_name)
12
- nlp = pipeline("ner", model=model, tokenizer=tokenizer)
13
- ner_results = nlp(text.lower())
14
-
15
- output = []
16
-
17
- text_2 = text.split(" ")
18
-
19
- for i in range(len(text_2)):
20
- ent = ner_results[i]["entity"]
21
- if ent != "O":
22
- output.extend([(text_2[i], ent), (" ", None)])
23
- else:
24
- output.extend([(text_2[i], None), (" ", None)])
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
 
26
- return output
 
 
 
27
 
28
  def process(text):
29
  entidades = ner_tagging(text)
 
4
  examples =[["Una persona promovió juicio de amparo indirecto contra el auto por el cual el presidente de la Junta fijó fecha lejana para llevar a cabo su reinstalación, ordenada en el laudo que le fue favorable, pues en su opinión, ello constituía una tardanza excesiva de proveer adecuadamente. Por su parte, el Juez Federal negó la suspensión provisional, al considerar que de concederse, los efectos dejarían sin materia una eventual sentencia protectora, dado que la restitución que aquél solicita coincidiría exactamente, en su caso, con los del fallo protector"],
5
  ["En un juicio ordinario civil, una persona moral ejerció acción reivindicatoria respecto de una fracción de un bien inmueble que refiere es de su propiedad, mientras que su contraparte aduce que es un bien del dominio público, al tratarse de un anexo que forma parte de un monumento histórico"],["El artículo 47 DE LA LEY DEL REGISTRO CIVIL del menor a que se le registre inmediatamente después de su nacimiento, se le asigne un nombre y apellidos, se le respete su derecho a la identidad y filiación en un sentido de pertenencia con sus progenitores biológicos y se protejan su desarrollo y bienestar integral, al garantizársele y reconocérsele sus lazos familiares, prerrogativas que salvaguardan los artículos de la Carta Magna y de los tratados internacionales invocados."]]
6
 
7
+ def get_entities(example):
8
+ model_name = "hackathon-pln-es/jurisbert-finetuning-ner"
9
+ tokenizer = AutoTokenizer.from_pretrained(model_name, add_prefix_space=True)
10
 
11
+ model = AutoModelForTokenClassification.from_pretrained(model_name)
12
+ token_classifier = pipeline("token-classification", aggregation_strategy="simple", model=model, tokenizer=tokenizer)
13
+ results = token_classifier(example.lower())
14
+
15
+ output = []
16
+
17
+ i=0
18
+ prev_item = None
19
+ next_item = None
20
+ while i < (len(results)):
21
+ item = results[i]
22
+ p=i-1
23
+ n=i+1
24
+
25
+ if p > 0:
26
+ prev_item = results[p]
27
+
28
+
29
+ if n<(len(results)):
30
+ next_item = results[n]
31
+
32
+
33
+ if (i==0):
34
+ if item["start"]>0:
35
+ output.extend([(example[0:item["start"]], None)])
36
+ output.extend([(example[item["start"]:item["end"]], item["entity_group"])])
37
+ if (next_item!=None):
38
+ ##verificar el tramo entre actual y siguiente
39
+ if(item["end"]!=next_item["start"]):
40
+ output.extend([(example[item["end"]:next_item["start"]], None)])
41
+ i=i+1
42
 
43
+ if item["end"] < len(example):
44
+ output.extend([(example[item["end"]:len(example)], None)])
45
+
46
+ return output
47
 
48
  def process(text):
49
  entidades = ner_tagging(text)