Update app.py
Browse files
app.py
CHANGED
@@ -3,6 +3,8 @@ import spacy
|
|
3 |
import pandas as pd
|
4 |
from docx import Document
|
5 |
from io import BytesIO
|
|
|
|
|
6 |
|
7 |
# Cargar el modelo de SpaCy en español
|
8 |
nlp = spacy.load('zh_core_web_trf')
|
@@ -22,7 +24,7 @@ def extract_names_from_docx(docx_file):
|
|
22 |
doc = nlp(text)
|
23 |
|
24 |
# Extraer los nombres de las personas (entidades PERSON)
|
25 |
-
persons = [ent.text for ent in doc.ents if ent.label_ == '
|
26 |
|
27 |
# Eliminar duplicados
|
28 |
persons = list(set(persons))
|
@@ -30,19 +32,21 @@ def extract_names_from_docx(docx_file):
|
|
30 |
# Crear un DataFrame
|
31 |
df = pd.DataFrame(persons, columns=['Nombres'])
|
32 |
|
33 |
-
#
|
34 |
-
|
35 |
-
|
|
|
|
|
|
|
36 |
df.to_excel(writer, index=False)
|
37 |
-
output.seek(0)
|
38 |
|
39 |
-
return
|
40 |
|
41 |
# Interfaz de Gradio
|
42 |
iface = gr.Interface(
|
43 |
fn=extract_names_from_docx,
|
44 |
inputs=gr.File(file_types=[".docx"]),
|
45 |
-
outputs=
|
46 |
title="Extractor de Nombres",
|
47 |
description="Sube un archivo .docx y extrae los nombres de las personas usando NLP con SpaCy. Descarga el resultado en un archivo Excel."
|
48 |
)
|
|
|
3 |
import pandas as pd
|
4 |
from docx import Document
|
5 |
from io import BytesIO
|
6 |
+
import tempfile
|
7 |
+
import os
|
8 |
|
9 |
# Cargar el modelo de SpaCy en español
|
10 |
nlp = spacy.load('zh_core_web_trf')
|
|
|
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))
|
|
|
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()
|
37 |
+
temp_file_path = os.path.join(temp_dir, "nombres_personas.xlsx")
|
38 |
+
|
39 |
+
# Guardar el DataFrame en un archivo Excel
|
40 |
+
with pd.ExcelWriter(temp_file_path, engine='openpyxl') as writer:
|
41 |
df.to_excel(writer, index=False)
|
|
|
42 |
|
43 |
+
return temp_file_path # Devolver la ruta del archivo temporal
|
44 |
|
45 |
# Interfaz de Gradio
|
46 |
iface = gr.Interface(
|
47 |
fn=extract_names_from_docx,
|
48 |
inputs=gr.File(file_types=[".docx"]),
|
49 |
+
outputs=gr.File(),
|
50 |
title="Extractor de Nombres",
|
51 |
description="Sube un archivo .docx y extrae los nombres de las personas usando NLP con SpaCy. Descarga el resultado en un archivo Excel."
|
52 |
)
|