doctorlinux commited on
Commit
f853b58
·
verified ·
1 Parent(s): ccbef8f

Upload 3 files

Browse files
Files changed (3) hide show
  1. README.md +28 -13
  2. app.py +97 -0
  3. requirements.txt +2 -0
README.md CHANGED
@@ -1,13 +1,28 @@
1
- ---
2
- title: Spacy
3
- emoji:
4
- colorFrom: blue
5
- colorTo: blue
6
- sdk: gradio
7
- sdk_version: 5.47.0
8
- app_file: app.py
9
- pinned: false
10
- license: gpl
11
- ---
12
-
13
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: Analizador de Texto Español
3
+ emoji: 🔍
4
+ colorFrom: blue
5
+ colorTo: purple
6
+ sdk: gradio
7
+ sdk_version: 4.0.0
8
+ app_file: app.py
9
+ pinned: false
10
+ ---
11
+
12
+ # Analizador de Texto en Español con spaCy
13
+
14
+ Esta aplicación utiliza spaCy para analizar texto en español:
15
+
16
+ - **Tokens y POS Tagging**: Identifica partes del discurso
17
+ - **Entidades Nombradas**: Reconoce personas, organizaciones, lugares, etc.
18
+ - **Análisis de Dependencias**: Muestra relaciones gramaticales
19
+
20
+ ## Cómo usar
21
+ 1. Escribe o pega texto en español en el cuadro de texto
22
+ 2. Haz clic en "Analizar Texto"
23
+ 3. Revisa los resultados del análisis lingüístico
24
+
25
+ ## Tecnologías
26
+ - spaCy
27
+ - Gradio
28
+ - Modelo: es_core_news_sm
app.py ADDED
@@ -0,0 +1,97 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # requirements.txt
2
+ # spacy
3
+ # https://github.com/explosion/spacy-models/releases/download/es_core_news_sm-3.7.0/es_core_news_sm-3.7.0-py3-none-any.whl
4
+
5
+ import gradio as gr
6
+ import spacy
7
+ import os
8
+
9
+ # Descargar el modelo si no existe
10
+ def descargar_modelo():
11
+ try:
12
+ nlp = spacy.load("es_core_news_sm")
13
+ print("✅ Modelo ya descargado")
14
+ except OSError:
15
+ print("📥 Descargando modelo de spaCy...")
16
+ os.system("python -m spacy download es_core_news_sm")
17
+ nlp = spacy.load("es_core_news_sm")
18
+ print("✅ Modelo descargado correctamente")
19
+
20
+ # Cargar modelo después de asegurar que existe
21
+ descargar_modelo()
22
+ nlp = spacy.load("es_core_news_sm")
23
+
24
+ def analizar_texto(texto):
25
+ if not texto.strip():
26
+ return "❌ Por favor, ingresa un texto para analizar."
27
+
28
+ doc = nlp(texto)
29
+
30
+ resultado = "🔍 ANÁLISIS COMPLETO:\n"
31
+ resultado += "=" * 50 + "\n"
32
+
33
+ # 1. Tokens y POS tagging
34
+ resultado += "\n📝 TOKENS Y GRAMÁTICA:\n"
35
+ for token in doc:
36
+ resultado += f"{token.text:15} {token.pos_:10} {spacy.explain(token.pos_)}\n"
37
+
38
+ # 2. Entidades nombradas
39
+ resultado += "\n🏷️ ENTIDADES RECONOCIDAS:\n"
40
+ if doc.ents:
41
+ for ent in doc.ents:
42
+ resultado += f"{ent.text:20} {ent.label_:15} {spacy.explain(ent.label_)}\n"
43
+ else:
44
+ resultado += "No se encontraron entidades nombradas.\n"
45
+
46
+ # 3. Análisis de dependencias
47
+ resultado += "\n🔗 DEPENDENCIAS:\n"
48
+ for token in doc:
49
+ if token.dep_ != "punct": # Ignorar puntuación
50
+ resultado += f"{token.text:10} <-{token.dep_:10}- {token.head.text:10}\n"
51
+
52
+ return resultado
53
+
54
+ # Crear interfaz Gradio
55
+ with gr.Blocks(title="Analizador de Texto con spaCy") as demo:
56
+ gr.Markdown("# 🇪🇸 Analizador de Texto en Español")
57
+ gr.Markdown("Analiza texto en español usando spaCy: tokens, POS tagging, entidades nombradas y dependencias.")
58
+
59
+ with gr.Row():
60
+ texto_input = gr.Textbox(
61
+ label="Ingresa tu texto en español",
62
+ placeholder="Ej: El presidente de Microsoft, Satya Nadella, anunció nuevas inversiones en España.",
63
+ lines=3,
64
+ max_lines=6
65
+ )
66
+
67
+ with gr.Row():
68
+ analizar_btn = gr.Button("🔍 Analizar Texto")
69
+
70
+ with gr.Row():
71
+ resultado_output = gr.Textbox(
72
+ label="Resultado del Análisis",
73
+ lines=20,
74
+ interactive=False
75
+ )
76
+
77
+ # Ejemplos
78
+ gr.Markdown("### Ejemplos:")
79
+ ejemplos = [
80
+ "El presidente de Microsoft, Satya Nadella, anunció nuevas inversiones en España.",
81
+ "La Universidad de Buenos Aires fue fundada en 1821.",
82
+ "María compró manzanas en el mercado central de Madrid."
83
+ ]
84
+ gr.Examples(
85
+ examples=ejemplos,
86
+ inputs=texto_input
87
+ )
88
+
89
+ # Conectar el botón
90
+ analizar_btn.click(
91
+ fn=analizar_texto,
92
+ inputs=texto_input,
93
+ outputs=resultado_output
94
+ )
95
+
96
+ if __name__ == "__main__":
97
+ demo.launch()
requirements.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ spacy
2
+ https://github.com/explosion/spacy-models/releases/download/es_core_news_sm-3.7.0/es_core_news_sm-3.7.0-py3-none-any.whl