lik07 commited on
Commit
37944ec
·
verified ·
1 Parent(s): 1e9f8ab

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -7
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_ == 'PER']
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
- # Guardar el resultado en un archivo Excel en memoria
34
- output = BytesIO()
35
- with pd.ExcelWriter(output, engine='openpyxl') as writer:
 
 
 
36
  df.to_excel(writer, index=False)
37
- output.seek(0)
38
 
39
- return output, "nombres_personas.xlsx"
40
 
41
  # Interfaz de Gradio
42
  iface = gr.Interface(
43
  fn=extract_names_from_docx,
44
  inputs=gr.File(file_types=[".docx"]),
45
- outputs=[gr.File(), "text"],
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
  )