lik07 commited on
Commit
09a8de9
verified
1 Parent(s): 37944ec

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -7
app.py CHANGED
@@ -8,8 +8,20 @@ import os
8
 
9
  # Cargar el modelo de SpaCy en espa帽ol
10
  nlp = spacy.load('zh_core_web_trf')
 
11
 
12
- # Funci贸n para extraer nombres de personas
 
 
 
 
 
 
 
 
 
 
 
13
  def extract_names_from_docx(docx_file):
14
  # Cargar el archivo DOCX
15
  document = Document(docx_file)
@@ -20,17 +32,20 @@ def extract_names_from_docx(docx_file):
20
  # Unir todo el texto
21
  text = ' '.join(full_text)
22
 
23
- # Procesar el texto con SpaCy
24
- doc = nlp(text)
25
 
26
- # Extraer los nombres de las personas (entidades PERSON)
27
- persons = [ent.text for ent in doc.ents if ent.label_ == 'PERSON']
 
 
 
28
 
29
  # Eliminar duplicados
30
- persons = list(set(persons))
31
 
32
  # Crear un DataFrame
33
- df = pd.DataFrame(persons, columns=['Nombres'])
34
 
35
  # Crear un archivo temporal para guardar el Excel
36
  temp_dir = tempfile.mkdtemp()
 
8
 
9
  # Cargar el modelo de SpaCy en espa帽ol
10
  nlp = spacy.load('zh_core_web_trf')
11
+ nlp.max_length = 3000000 # Aumenta el l铆mite a 3 millones de caracteres
12
 
13
+ # Funci贸n para procesar bloques de texto y extraer nombres de personas
14
+ def extract_names_from_text(text):
15
+ doc = nlp(text)
16
+ # Extraer las entidades de tipo PERSON
17
+ persons = [ent.text for ent in doc.ents if ent.label_ == 'PERSON']
18
+ return persons
19
+
20
+ # Funci贸n para dividir el texto en fragmentos m谩s peque帽os
21
+ def split_text(text, max_length=100000):
22
+ return [text[i:i+max_length] for i in range(0, len(text), max_length)]
23
+
24
+ # Funci贸n principal para extraer nombres de personas desde un archivo DOCX
25
  def extract_names_from_docx(docx_file):
26
  # Cargar el archivo DOCX
27
  document = Document(docx_file)
 
32
  # Unir todo el texto
33
  text = ' '.join(full_text)
34
 
35
+ # Dividir el texto en fragmentos si es necesario
36
+ text_fragments = split_text(text)
37
 
38
+ # Extraer los nombres de cada fragmento y combinarlos
39
+ all_persons = []
40
+ for fragment in text_fragments:
41
+ persons = extract_names_from_text(fragment)
42
+ all_persons.extend(persons)
43
 
44
  # Eliminar duplicados
45
+ all_persons = list(set(all_persons))
46
 
47
  # Crear un DataFrame
48
+ df = pd.DataFrame(all_persons, columns=['Nombres'])
49
 
50
  # Crear un archivo temporal para guardar el Excel
51
  temp_dir = tempfile.mkdtemp()