Update app.py
Browse files
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 |
-
#
|
24 |
-
|
25 |
|
26 |
-
# Extraer los nombres de
|
27 |
-
|
|
|
|
|
|
|
28 |
|
29 |
# Eliminar duplicados
|
30 |
-
|
31 |
|
32 |
# Crear un DataFrame
|
33 |
-
df = pd.DataFrame(
|
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()
|