diff --git a/.gitignore b/.gitignore index ed97b14..ba16d2d 100644 --- a/.gitignore +++ b/.gitignore @@ -202,3 +202,4 @@ pyvenv.cfg .venv pip-selfcheck.json +# Opencode Auxiliary Files \ No newline at end of file diff --git a/.serena/.gitignore b/.serena/.gitignore new file mode 100644 index 0000000..2e510af --- /dev/null +++ b/.serena/.gitignore @@ -0,0 +1,2 @@ +/cache +/project.local.yml diff --git a/.serena/project.yml b/.serena/project.yml new file mode 100644 index 0000000..2c1c587 --- /dev/null +++ b/.serena/project.yml @@ -0,0 +1,132 @@ +# the name by which the project can be referenced within Serena +project_name: "fuentes_dolores_digitalizacion_2026" + + +# list of languages for which language servers are started; choose from: +# al angular ansible bash clojure +# cpp cpp_ccls crystal csharp csharp_omnisharp +# dart elixir elm erlang fortran +# fsharp go groovy haskell haxe +# hlsl html java json julia +# kotlin lean4 lua luau markdown +# matlab msl nix ocaml pascal +# perl php php_phpactor powershell python +# python_jedi python_ty r rego ruby +# ruby_solargraph rust scala scss solidity +# svelte swift systemverilog terraform toml +# typescript typescript_vts vue yaml zig +# (This list may be outdated. For the current list, see values of Language enum here: +# https://github.com/oraios/serena/blob/main/src/solidlsp/ls_config.py +# For some languages, there are alternative language servers, e.g. csharp_omnisharp, ruby_solargraph.) +# Note: +# - For C, use cpp +# - For JavaScript, use typescript +# - For Angular projects, use angular (subsumes typescript+html; requires `npm install` in the project root) +# - For Svelte projects, use svelte (subsumes typescript/javascript for .svelte projects; requires npm) +# - For SCSS / Sass / plain CSS, use scss (some-sass-language-server handles all three) +# - For Free Pascal/Lazarus, use pascal +# Special requirements: +# Some languages require additional setup/installations. +# See here for details: https://oraios.github.io/serena/01-about/020_programming-languages.html#language-servers +# When using multiple languages, the first language server that supports a given file will be used for that file. +# The first language is the default language and the respective language server will be used as a fallback. +# Note that when using the JetBrains backend, language servers are not used and this list is correspondingly ignored. +languages: [] + +# the encoding used by text files in the project +# For a list of possible encodings, see https://docs.python.org/3.11/library/codecs.html#standard-encodings +encoding: "utf-8" + +# line ending convention to use when writing source files. +# Possible values: unset (use global setting), "lf", "crlf", or "native" (platform default) +# This does not affect Serena's own files (e.g. memories and configuration files), which always use native line endings. +line_ending: + +# The language backend to use for this project. +# If not set, the global setting from serena_config.yml is used. +# Valid values: LSP, JetBrains +# Note: the backend is fixed at startup. If a project with a different backend +# is activated post-init, an error will be returned. +language_backend: + +# whether to use project's .gitignore files to ignore files +ignore_all_files_in_gitignore: true + +# advanced configuration option allowing to configure language server-specific options. +# Maps the language key to the options. +# Have a look at the docstring of the constructors of the LS implementations within solidlsp (e.g., for C# or PHP) to see which options are available. +# No documentation on options means no options are available. +ls_specific_settings: {} + +# list of additional workspace folder paths for cross-package reference support (e.g. in monorepos). +# Paths can be absolute or relative to the project root. +# Each folder is registered as an LSP workspace folder, enabling language servers to discover +# symbols and references across package boundaries. +# Currently supported for: TypeScript. +# Example: +# additional_workspace_folders: +# - ../sibling-package +# - ../shared-lib +additional_workspace_folders: [] + +# list of additional paths to ignore in this project. +# Same syntax as gitignore, so you can use * and **. +# Note: global ignored_paths from serena_config.yml are also applied additively. +ignored_paths: [] + +# whether the project is in read-only mode +# If set to true, all editing tools will be disabled and attempts to use them will result in an error +# Added on 2025-04-18 +read_only: false + +# list of tool names to exclude. +# This extends the existing exclusions (e.g. from the global configuration) +# Find the list of tools here: https://oraios.github.io/serena/01-about/035_tools.html +excluded_tools: [] + +# list of tools to include that would otherwise be disabled (particularly optional tools that are disabled by default). +# This extends the existing inclusions (e.g. from the global configuration). +# Find the list of tools here: https://oraios.github.io/serena/01-about/035_tools.html +included_optional_tools: [] + +# fixed set of tools to use as the base tool set (if non-empty), replacing Serena's default set of tools. +# This cannot be combined with non-empty excluded_tools or included_optional_tools. +# Find the list of tools here: https://oraios.github.io/serena/01-about/035_tools.html +fixed_tools: [] + +# list of mode names that are to be activated by default, overriding the setting in the global configuration. +# The full set of modes to be activated is base_modes (from global config) + default_modes + added_modes. +# If the setting is undefined/empty, the default_modes from the global configuration (serena_config.yml) apply. +# Otherwise, this overrides the setting from the global configuration (serena_config.yml). +# Therefore, you can set this to [] if you do not want the default modes defined in the global config to apply +# for this project. +# This setting can, in turn, be overridden by CLI parameters (--mode). +# See https://oraios.github.io/serena/02-usage/050_configuration.html#modes +default_modes: + +# list of mode names to be activated additionally for this project, e.g. ["query-projects"] +# The full set of modes to be activated is base_modes (from global config) + default_modes + added_modes. +# See https://oraios.github.io/serena/02-usage/050_configuration.html#modes +added_modes: + +# initial prompt for the project. It will always be given to the LLM upon activating the project +# (contrary to the memories, which are loaded on demand). +initial_prompt: "" + +# time budget (seconds) per tool call for the retrieval of additional symbol information +# such as docstrings or parameter information. +# This overrides the corresponding setting in the global configuration; see the documentation there. +# If null or missing, use the setting from the global configuration. +symbol_info_budget: + +# list of regex patterns which, when matched, mark a memory entry as read‑only. +# Extends the list from the global configuration, merging the two lists. +read_only_memory_patterns: [] + +# list of regex patterns for memories to completely ignore. +# Matching memories will not appear in list_memories or activate_project output +# and cannot be accessed via read_memory or write_memory. +# To access ignored memory files, use the read_file tool on the raw file path. +# Extends the list from the global configuration, merging the two lists. +# Example: ["_archive/.*", "_episodes/.*"] +ignored_memory_patterns: [] diff --git a/preliminar_analysis_exploration.ipynb b/preliminar_analysis_exploration.ipynb index a729541..e886805 100644 --- a/preliminar_analysis_exploration.ipynb +++ b/preliminar_analysis_exploration.ipynb @@ -36,6 +36,1556 @@ "cell_type": "markdown", "id": "13fb63e3", "metadata": {}, + "source": [ + "Buscamos encontrar patrones que nos permitan decidir entre diferentes quejas o puntos de dolor que puedas ser susceptibles de resolverse con un software." + ] + }, + { + "cell_type": "markdown", + "id": "78908327", + "metadata": {}, + "source": [ + "## 2. Inspección inicial de los datos" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "dcdef49a", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import os" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "7c0e5e49", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
idestadofecha_publicacionactorempresaactividadempleados_evidenciaprocesoepisodio_resumidofuente_publicacionfuente_empresa_o_tamanocriterio_observadonotasdimension_tipogrupo_similitud
0EXP-001incluido2026-08 aprox.Cristóbal Hernández MoraRecapol SAFabricación y transformación de carrocerías pa...35 en 2025 según eInforma; actividad industria...Operaciones/planificación de capacidadEl gerente describe cómo ausencias en taller p...https://es.linkedin.com/posts/cristobal-hernan...https://www.recapol.com/recapol-carrocerias-co...Primera persona y autoría empresarial verifica...Ficha archivada: textos_fuente/EXP-001.txt. Fe...Organización y personasSobrecarga, ausencias y dependencia de persona...
1EXP-002incluido2025 aprox.Alex Espel RiberaInprisa AutomFabricación/instalación industrial B2B20 empleados informados para 2025; por debajo ...Producción/compras/atención a clientesRelato directo sobre retrasos de proyectos, pl...https://es.linkedin.com/posts/alex-espel-riber...https://www.inprisa.com/ | https://www.einform...Autoría directiva y actividad industrial B2B v...Ficha de exclusión archivada: textos_fuente/EX...Planificación y operacionesUrgencias, coordinación y planificación diaria
2EXP-003incluido2026-10 aprox.Javier SantosCyklop StrapesaFabricación de sistemas de embalaje industrial...26 empleados en 2025 según eInforma; por debaj...Operaciones/plantaEl director general relata que las urgencias y...https://es.linkedin.com/posts/javiersantospalo...https://www.cyklop.es/ | https://www.einforma....Autoría directiva y actividad industrial B2B v...Ficha de exclusión archivada: textos_fuente/EX...Planificación y operacionesUrgencias, coordinación y planificación diaria
\n", + "
" + ], + "text/plain": [ + " id estado fecha_publicacion actor \\\n", + "0 EXP-001 incluido 2026-08 aprox. Cristóbal Hernández Mora \n", + "1 EXP-002 incluido 2025 aprox. Alex Espel Ribera \n", + "2 EXP-003 incluido 2026-10 aprox. Javier Santos \n", + "\n", + " empresa actividad \\\n", + "0 Recapol SA Fabricación y transformación de carrocerías pa... \n", + "1 Inprisa Autom Fabricación/instalación industrial B2B \n", + "2 Cyklop Strapesa Fabricación de sistemas de embalaje industrial... \n", + "\n", + " empleados_evidencia \\\n", + "0 35 en 2025 según eInforma; actividad industria... \n", + "1 20 empleados informados para 2025; por debajo ... \n", + "2 26 empleados en 2025 según eInforma; por debaj... \n", + "\n", + " proceso \\\n", + "0 Operaciones/planificación de capacidad \n", + "1 Producción/compras/atención a clientes \n", + "2 Operaciones/planta \n", + "\n", + " episodio_resumido \\\n", + "0 El gerente describe cómo ausencias en taller p... \n", + "1 Relato directo sobre retrasos de proyectos, pl... \n", + "2 El director general relata que las urgencias y... \n", + "\n", + " fuente_publicacion \\\n", + "0 https://es.linkedin.com/posts/cristobal-hernan... \n", + "1 https://es.linkedin.com/posts/alex-espel-riber... \n", + "2 https://es.linkedin.com/posts/javiersantospalo... \n", + "\n", + " fuente_empresa_o_tamano \\\n", + "0 https://www.recapol.com/recapol-carrocerias-co... \n", + "1 https://www.inprisa.com/ | https://www.einform... \n", + "2 https://www.cyklop.es/ | https://www.einforma.... \n", + "\n", + " criterio_observado \\\n", + "0 Primera persona y autoría empresarial verifica... \n", + "1 Autoría directiva y actividad industrial B2B v... \n", + "2 Autoría directiva y actividad industrial B2B v... \n", + "\n", + " notas \\\n", + "0 Ficha archivada: textos_fuente/EXP-001.txt. Fe... \n", + "1 Ficha de exclusión archivada: textos_fuente/EX... \n", + "2 Ficha de exclusión archivada: textos_fuente/EX... \n", + "\n", + " dimension_tipo \\\n", + "0 Organización y personas \n", + "1 Planificación y operaciones \n", + "2 Planificación y operaciones \n", + "\n", + " grupo_similitud \n", + "0 Sobrecarga, ausencias y dependencia de persona... \n", + "1 Urgencias, coordinación y planificación diaria \n", + "2 Urgencias, coordinación y planificación diaria " + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "path = os.path.join(os.getcwd(), \n", + " '07_muestra_exploratoria', \n", + " 'casos_agrupados_por_dimensiones.csv'\n", + " )\n", + "\n", + "df = pd.read_csv(path)\n", + "df.head(3)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "deb945c5", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "4672d52f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 90 entries, 0 to 89\n", + "Data columns (total 15 columns):\n", + " # Column Non-Null Count Dtype\n", + "--- ------ -------------- -----\n", + " 0 id 90 non-null str \n", + " 1 estado 90 non-null str \n", + " 2 fecha_publicacion 90 non-null str \n", + " 3 actor 90 non-null str \n", + " 4 empresa 90 non-null str \n", + " 5 actividad 90 non-null str \n", + " 6 empleados_evidencia 90 non-null str \n", + " 7 proceso 90 non-null str \n", + " 8 episodio_resumido 90 non-null str \n", + " 9 fuente_publicacion 90 non-null str \n", + " 10 fuente_empresa_o_tamano 90 non-null str \n", + " 11 criterio_observado 90 non-null str \n", + " 12 notas 90 non-null str \n", + " 13 dimension_tipo 90 non-null str \n", + " 14 grupo_similitud 90 non-null str \n", + "dtypes: str(15)\n", + "memory usage: 10.7 KB\n" + ] + } + ], + "source": [ + "df.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "8037d49c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
idestadofecha_publicacionactorempresaactividadempleados_evidenciaprocesoepisodio_resumidofuente_publicacionfuente_empresa_o_tamanocriterio_observadonotasdimension_tipogrupo_similitud
count909090909090909090909090909090
unique9028588868689909089888990817
topEXP-001incluido2026-08 aprox.Sergio Ferrer FernándezStellantis España S.L. — planta de VigoFabricación de vehículos de motor; automoción90 empleados en 2026 segun eInforma/Empresite;...Operaciones/planificación de capacidadEl gerente describe cómo ausencias en taller p...https://es.linkedin.com/posts/rodrigo-moralejo...https://www.einforma.com/informacion-empresa/f...Autoría directiva y actividad industrial B2B v...Ficha archivada: textos_fuente/EXP-001.txt. Fe...Planificación y operacionesFlujo de trabajo, capacidad y pedidos
freq189223521122212113
\n", + "
" + ], + "text/plain": [ + " id estado fecha_publicacion actor \\\n", + "count 90 90 90 90 \n", + "unique 90 2 85 88 \n", + "top EXP-001 incluido 2026-08 aprox. Sergio Ferrer Fernández \n", + "freq 1 89 2 2 \n", + "\n", + " empresa \\\n", + "count 90 \n", + "unique 86 \n", + "top Stellantis España S.L. — planta de Vigo \n", + "freq 3 \n", + "\n", + " actividad \\\n", + "count 90 \n", + "unique 86 \n", + "top Fabricación de vehículos de motor; automoción \n", + "freq 5 \n", + "\n", + " empleados_evidencia \\\n", + "count 90 \n", + "unique 89 \n", + "top 90 empleados en 2026 segun eInforma/Empresite;... \n", + "freq 2 \n", + "\n", + " proceso \\\n", + "count 90 \n", + "unique 90 \n", + "top Operaciones/planificación de capacidad \n", + "freq 1 \n", + "\n", + " episodio_resumido \\\n", + "count 90 \n", + "unique 90 \n", + "top El gerente describe cómo ausencias en taller p... \n", + "freq 1 \n", + "\n", + " fuente_publicacion \\\n", + "count 90 \n", + "unique 89 \n", + "top https://es.linkedin.com/posts/rodrigo-moralejo... \n", + "freq 2 \n", + "\n", + " fuente_empresa_o_tamano \\\n", + "count 90 \n", + "unique 88 \n", + "top https://www.einforma.com/informacion-empresa/f... \n", + "freq 2 \n", + "\n", + " criterio_observado \\\n", + "count 90 \n", + "unique 89 \n", + "top Autoría directiva y actividad industrial B2B v... \n", + "freq 2 \n", + "\n", + " notas \\\n", + "count 90 \n", + "unique 90 \n", + "top Ficha archivada: textos_fuente/EXP-001.txt. Fe... \n", + "freq 1 \n", + "\n", + " dimension_tipo grupo_similitud \n", + "count 90 90 \n", + "unique 8 17 \n", + "top Planificación y operaciones Flujo de trabajo, capacidad y pedidos \n", + "freq 21 13 " + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.describe(include='all')" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "2e94fc5a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "id 0\n", + "estado 0\n", + "fecha_publicacion 0\n", + "actor 0\n", + "empresa 0\n", + "actividad 0\n", + "empleados_evidencia 0\n", + "proceso 0\n", + "episodio_resumido 0\n", + "fuente_publicacion 0\n", + "fuente_empresa_o_tamano 0\n", + "criterio_observado 0\n", + "notas 0\n", + "dimension_tipo 0\n", + "grupo_similitud 0\n", + "dtype: int64" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.isna().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "6497c801", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "np.int64(0)" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.duplicated().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "2d648fe6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "--- estado (2 únicos)---\n", + "estado\n", + "incluido 89\n", + "excluido 1\n", + "Name: count, dtype: int64\n", + "\n", + "--- actor (88 únicos)---\n", + "actor\n", + "Sergio Ferrer Fernández 2\n", + "Sergio Ferrer Fernandez, CEO de Finestres Macrisal (publicacion personal) 2\n", + "Cristóbal Hernández Mora 1\n", + "Alex Espel Ribera 1\n", + "Javier Santos 1\n", + " ..\n", + "Joan Sánchez García, vinculado a ANSA Montajes Metálicos, S.L. en LinkedIn 1\n", + "Svelt Spain (cuenta corporativa; relato de proyecto conjunto) 1\n", + "Antonio Monteiro, gerente de MPS Soluciones 3D 1\n", + "Daniel F., director general/propietario (según perfil de LinkedIn) 1\n", + "Manuel Marrama Esteve, vinculado a STALART en LinkedIn 1\n", + "Name: count, Length: 88, dtype: int64\n", + "\n", + "--- actividad (86 únicos)---\n", + "actividad\n", + "Fabricación de vehículos de motor; automoción 5\n", + "Fabricación y transformación de carrocerías para vehículos industriales; B2B 1\n", + "Fabricación/instalación industrial B2B 1\n", + "Fabricación de sistemas de embalaje industrial B2B 1\n", + "Fabricación de ventanas y cerramientos aluminio/PVC para instaladores y otros clientes profesionales; Cataluña, España 1\n", + " ..\n", + "Fabricación y montaje de estructuras metálicas industriales; B2B 1\n", + "Fabricación de soluciones de acceso y equipamiento especial; suministro industrial B2B 1\n", + "Servicios de escaneado 3D, ingeniería inversa y fabricación aditiva para industria B2B 1\n", + "Fabricación y montaje de estructuras metálicas, calderería y bienes de equipo; B2B industrial 1\n", + "Diseño, fabricación y suministro de estructuras Steel Frame; B2B 1\n", + "Name: count, Length: 86, dtype: int64\n", + "\n", + "--- dimension_tipo (8 únicos)---\n", + "dimension_tipo\n", + "Planificación y operaciones 21\n", + "Continuidad y recuperación 18\n", + "Organización y personas 12\n", + "Demanda y estructura industrial 11\n", + "Equipos, instalaciones y seguridad 10\n", + "Sistemas y digitalización 7\n", + "Suministro y dependencias externas 6\n", + "Comercial y proyectos 5\n", + "Name: count, dtype: int64\n", + "\n", + "--- grupo_similitud (17 únicos)---\n", + "grupo_similitud\n", + "Flujo de trabajo, capacidad y pedidos 13\n", + "Ajuste, cierre o traslado de capacidad/planta 11\n", + "DANA: daños, interrupción y recuperación de planta/servicio 9\n", + "Fiabilidad, averías, mantenimiento y seguridad industrial 9\n", + "Incendio: parada, traslado y recuperación productiva 7\n", + "Adopción, integración y calidad de sistemas de información 6\n", + "Contratación, disponibilidad y formación de perfiles 6\n", + "Condiciones comerciales, coordinación de cliente y proyecto 5\n", + "Falta de componentes, servicios o recursos esenciales 5\n", + "Sobrecarga, ausencias y dependencia de personas clave 4\n", + "Urgencias, coordinación y planificación diaria 4\n", + "Control de producción, inventario y visibilidad operativa 4\n", + "Delegación, estructura y orientación organizativa 2\n", + "Interrupción técnica o retraso de puesta en marcha 2\n", + "Obsolescencia de equipos de proceso 1\n", + "Captura manual y transcripción de pedidos 1\n", + "Planificación de demanda, suministro y compras 1\n", + "Name: count, dtype: int64\n", + "\n", + "--- fuente_publicacion (89 únicos)---\n", + "fuente_publicacion\n", + "https://es.linkedin.com/posts/rodrigo-moralejo-248016123_porque-detr%C3%A1s-de-cada-f%C3%A1brica-hay-muchas-activity-7399358414637748224-eiik 2\n", + "https://es.linkedin.com/posts/cristobal-hernandez-mora-622989186_pymes-empresarios-activity-7492840134887964672-uLCL 1\n", + "https://es.linkedin.com/posts/alex-espel-ribera_crear-una-empresa-es-como-hacer-una-lasa%C3%B1a-activity-7302961121433444352-lJTL 1\n", + "https://es.linkedin.com/posts/javiersantospalomo_un-director-general-deber%C3%ADa-bajar-m%C3%A1s-a-planta-activity-7508405307010908160-5LXW 1\n", + "https://es.linkedin.com/posts/sergio-ferrer-fern%C3%A1ndez-50b52111a_hace-poco-rechazamos-un-pedido-grande-de-activity-7507719567067066369-cvx8 1\n", + " ..\n", + "https://es.linkedin.com/posts/joan-sg_te-lo-digo-claro-nadie-quiere-recibir-la-activity-7386431546712428545-bUZg 1\n", + "https://es.linkedin.com/pulse/el-proyecto-la-confianza-nos-eligen-svelt-spain-vhcbe 1\n", + "https://es.linkedin.com/posts/antonio-monteiro-99798414_fabricacion-ingenieria-industria-activity-7483067848039436289-LBrD 1\n", + "https://es.linkedin.com/pulse/por-qu%C3%A9-algunas-empresas-industriales-hemos-dejado-de-daniel-plkle 1\n", + "https://es.linkedin.com/posts/manuel-marrama-esteve-b2903230_se-nos-ha-ca%C3%ADdo-un-proyecto-el-dise%C3%B1o-cerrado-activity-7501169980604874754-dv8D 1\n", + "Name: count, Length: 89, dtype: int64\n" + ] + } + ], + "source": [ + "def col_distribution(df):\n", + " col_array = [\"estado\", \"actor\", \"actividad\", \"dimension_tipo\", \"grupo_similitud\", \"fuente_publicacion\"]\n", + "\n", + " for col in col_array:\n", + " print(f\"\\n--- {col} ({df[col].nunique()} únicos)---\")\n", + " print(df[col].value_counts())\n", + "\n", + "col_distribution(df)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "1fcebc57", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Rango Temporal 2024-11-03 00:00:00 a 2026-10-22 00:00:00\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\Toni Ramos\\AppData\\Local\\Temp\\ipykernel_6872\\4052223768.py:1: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", + " df[\"fecha_publicacion\"] = pd.to_datetime(df[\"fecha_publicacion\"], errors='coerce')\n" + ] + } + ], + "source": [ + "df[\"fecha_publicacion\"] = pd.to_datetime(df[\"fecha_publicacion\"], errors='coerce')\n", + "print(\"Rango Temporal\", df[\"fecha_publicacion\"].min(), \"a\", df[\"fecha_publicacion\"].max())" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "ff7a928e", + "metadata": {}, + "outputs": [], + "source": [ + "df[\"texto_normalizado\"] = df[\"episodio_resumido\"].str.lower()\n", + "df[\"longitud_texto\"] = df[\"texto_normalizado\"].str.len()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "3a6c453b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "89" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = df[df[\"estado\"] == \"incluido\"].copy()\n", + "len(df)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "0550010e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dimension_tipo\n", + "Planificación y operaciones 21\n", + "Continuidad y recuperación 18\n", + "Organización y personas 11\n", + "Demanda y estructura industrial 11\n", + "Equipos, instalaciones y seguridad 10\n", + "Sistemas y digitalización 7\n", + "Suministro y dependencias externas 6\n", + "Comercial y proyectos 5\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[\"dimension_tipo\"].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "19d02aff", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "grupo_similitud\n", + "Flujo de trabajo, capacidad y pedidos 13\n", + "Ajuste, cierre o traslado de capacidad/planta 11\n", + "DANA: daños, interrupción y recuperación de planta/servicio 9\n", + "Fiabilidad, averías, mantenimiento y seguridad industrial 9\n", + "Incendio: parada, traslado y recuperación productiva 7\n", + "Adopción, integración y calidad de sistemas de información 6\n", + "Condiciones comerciales, coordinación de cliente y proyecto 5\n", + "Contratación, disponibilidad y formación de perfiles 5\n", + "Falta de componentes, servicios o recursos esenciales 5\n", + "Sobrecarga, ausencias y dependencia de personas clave 4\n", + "Urgencias, coordinación y planificación diaria 4\n", + "Control de producción, inventario y visibilidad operativa 4\n", + "Delegación, estructura y orientación organizativa 2\n", + "Interrupción técnica o retraso de puesta en marcha 2\n", + "Obsolescencia de equipos de proceso 1\n", + "Captura manual y transcripción de pedidos 1\n", + "Planificación de demanda, suministro y compras 1\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[\"grupo_similitud\"].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "038919d5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "fecha_publicacion\n", + "2024-11 1\n", + "2024-12 1\n", + "2025-01 2\n", + "2025-03 1\n", + "2025-04 3\n", + "2025-05 1\n", + "2025-06 1\n", + "2025-07 2\n", + "2025-08 1\n", + "2025-09 1\n", + "2025-10 1\n", + "2025-11 3\n", + "2025-12 2\n", + "2026-01 3\n", + "2026-02 5\n", + "2026-03 1\n", + "2026-04 2\n", + "2026-05 4\n", + "2026-06 4\n", + "2026-07 2\n", + "2026-08 1\n", + "2026-09 3\n", + "2026-10 6\n", + "Freq: M, Name: count, dtype: int64" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[\"fecha_publicacion\"].dt.to_period(\"M\").value_counts().sort_index()" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "f70379f0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "count 89.000000\n", + "mean 190.157303\n", + "std 81.263446\n", + "min 6.000000\n", + "25% 156.000000\n", + "50% 190.000000\n", + "75% 257.000000\n", + "max 341.000000\n", + "Name: longitud_texto, dtype: float64" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[\"longitud_texto\"].describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "9e26a65c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "np.int64(52)" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[\"actividad\"].str.contains(\"B2B\", case=False, na=False).sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "0dcfba56", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
idepisodio_resumidogrupo_similitud
31EXP-032control de calidad e información financieraAdopción, integración y calidad de sistemas de...
32EXP-033pedidos e incidenciasControl de producción, inventario y visibilida...
35EXP-036Preimpresión y fabricación de planchasObsolescencia de equipos de proceso
37EXP-038Recepción y transcripción de pedidos B2BCaptura manual y transcripción de pedidos
41EXP-042DiseñoPlanificación de demanda, suministro y compras
47EXP-048Fiabilidad productiva y mantenimiento preventivoFiabilidad, averías, mantenimiento y seguridad...
50EXP-051Seguridad de instalaciones de la nave de montajeFiabilidad, averías, mantenimiento y seguridad...
\n", + "
" + ], + "text/plain": [ + " id episodio_resumido \\\n", + "31 EXP-032 control de calidad e información financiera \n", + "32 EXP-033 pedidos e incidencias \n", + "35 EXP-036 Preimpresión y fabricación de planchas \n", + "37 EXP-038 Recepción y transcripción de pedidos B2B \n", + "41 EXP-042 Diseño \n", + "47 EXP-048 Fiabilidad productiva y mantenimiento preventivo \n", + "50 EXP-051 Seguridad de instalaciones de la nave de montaje \n", + "\n", + " grupo_similitud \n", + "31 Adopción, integración y calidad de sistemas de... \n", + "32 Control de producción, inventario y visibilida... \n", + "35 Obsolescencia de equipos de proceso \n", + "37 Captura manual y transcripción de pedidos \n", + "41 Planificación de demanda, suministro y compras \n", + "47 Fiabilidad, averías, mantenimiento y seguridad... \n", + "50 Fiabilidad, averías, mantenimiento y seguridad... " + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[df[\"longitud_texto\"] < 50][[\"id\", \"episodio_resumido\", \"grupo_similitud\"]]" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "4c9a8514", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
fecha_publicacion202420252026
grupo_similitud
Adopción, integración y calidad de sistemas de información020
Ajuste, cierre o traslado de capacidad/planta029
Condiciones comerciales, coordinación de cliente y proyecto001
Contratación, disponibilidad y formación de perfiles012
Control de producción, inventario y visibilidad operativa020
DANA: daños, interrupción y recuperación de planta/servicio110
Delegación, estructura y orientación organizativa010
Falta de componentes, servicios o recursos esenciales014
Fiabilidad, averías, mantenimiento y seguridad industrial052
Flujo de trabajo, capacidad y pedidos1010
Interrupción técnica o retraso de puesta en marcha011
Obsolescencia de equipos de proceso001
Planificación de demanda, suministro y compras010
Sobrecarga, ausencias y dependencia de personas clave010
Urgencias, coordinación y planificación diaria001
\n", + "
" + ], + "text/plain": [ + "fecha_publicacion 2024 2025 2026\n", + "grupo_similitud \n", + "Adopción, integración y calidad de sistemas de ... 0 2 0\n", + "Ajuste, cierre o traslado de capacidad/planta 0 2 9\n", + "Condiciones comerciales, coordinación de client... 0 0 1\n", + "Contratación, disponibilidad y formación de per... 0 1 2\n", + "Control de producción, inventario y visibilidad... 0 2 0\n", + "DANA: daños, interrupción y recuperación de pla... 1 1 0\n", + "Delegación, estructura y orientación organizativa 0 1 0\n", + "Falta de componentes, servicios o recursos esen... 0 1 4\n", + "Fiabilidad, averías, mantenimiento y seguridad ... 0 5 2\n", + "Flujo de trabajo, capacidad y pedidos 1 0 10\n", + "Interrupción técnica o retraso de puesta en marcha 0 1 1\n", + "Obsolescencia de equipos de proceso 0 0 1\n", + "Planificación de demanda, suministro y compras 0 1 0\n", + "Sobrecarga, ausencias y dependencia de personas... 0 1 0\n", + "Urgencias, coordinación y planificación diaria 0 0 1" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.crosstab(df[\"grupo_similitud\"], df[\"fecha_publicacion\"].dt.to_period(\"Y\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "d51bbe01", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
dimension_tipoComercial y proyectosContinuidad y recuperaciónDemanda y estructura industrialEquipos, instalaciones y seguridadOrganización y personasPlanificación y operacionesSistemas y digitalizaciónSuministro y dependencias externas
grupo_similitud
Adopción, integración y calidad de sistemas de información00000060
Ajuste, cierre o traslado de capacidad/planta001100000
Captura manual y transcripción de pedidos00000010
Condiciones comerciales, coordinación de cliente y proyecto50000000
Contratación, disponibilidad y formación de perfiles00005000
Control de producción, inventario y visibilidad operativa00000400
DANA: daños, interrupción y recuperación de planta/servicio09000000
Delegación, estructura y orientación organizativa00002000
Falta de componentes, servicios o recursos esenciales00000005
Fiabilidad, averías, mantenimiento y seguridad industrial00090000
Flujo de trabajo, capacidad y pedidos000001300
Incendio: parada, traslado y recuperación productiva07000000
Interrupción técnica o retraso de puesta en marcha02000000
Obsolescencia de equipos de proceso00010000
Planificación de demanda, suministro y compras00000001
Sobrecarga, ausencias y dependencia de personas clave00004000
Urgencias, coordinación y planificación diaria00000400
\n", + "
" + ], + "text/plain": [ + "dimension_tipo Comercial y proyectos \\\n", + "grupo_similitud \n", + "Adopción, integración y calidad de sistemas de ... 0 \n", + "Ajuste, cierre o traslado de capacidad/planta 0 \n", + "Captura manual y transcripción de pedidos 0 \n", + "Condiciones comerciales, coordinación de client... 5 \n", + "Contratación, disponibilidad y formación de per... 0 \n", + "Control de producción, inventario y visibilidad... 0 \n", + "DANA: daños, interrupción y recuperación de pla... 0 \n", + "Delegación, estructura y orientación organizativa 0 \n", + "Falta de componentes, servicios o recursos esen... 0 \n", + "Fiabilidad, averías, mantenimiento y seguridad ... 0 \n", + "Flujo de trabajo, capacidad y pedidos 0 \n", + "Incendio: parada, traslado y recuperación produ... 0 \n", + "Interrupción técnica o retraso de puesta en marcha 0 \n", + "Obsolescencia de equipos de proceso 0 \n", + "Planificación de demanda, suministro y compras 0 \n", + "Sobrecarga, ausencias y dependencia de personas... 0 \n", + "Urgencias, coordinación y planificación diaria 0 \n", + "\n", + "dimension_tipo Continuidad y recuperación \\\n", + "grupo_similitud \n", + "Adopción, integración y calidad de sistemas de ... 0 \n", + "Ajuste, cierre o traslado de capacidad/planta 0 \n", + "Captura manual y transcripción de pedidos 0 \n", + "Condiciones comerciales, coordinación de client... 0 \n", + "Contratación, disponibilidad y formación de per... 0 \n", + "Control de producción, inventario y visibilidad... 0 \n", + "DANA: daños, interrupción y recuperación de pla... 9 \n", + "Delegación, estructura y orientación organizativa 0 \n", + "Falta de componentes, servicios o recursos esen... 0 \n", + "Fiabilidad, averías, mantenimiento y seguridad ... 0 \n", + "Flujo de trabajo, capacidad y pedidos 0 \n", + "Incendio: parada, traslado y recuperación produ... 7 \n", + "Interrupción técnica o retraso de puesta en marcha 2 \n", + "Obsolescencia de equipos de proceso 0 \n", + "Planificación de demanda, suministro y compras 0 \n", + "Sobrecarga, ausencias y dependencia de personas... 0 \n", + "Urgencias, coordinación y planificación diaria 0 \n", + "\n", + "dimension_tipo Demanda y estructura industrial \\\n", + "grupo_similitud \n", + "Adopción, integración y calidad de sistemas de ... 0 \n", + "Ajuste, cierre o traslado de capacidad/planta 11 \n", + "Captura manual y transcripción de pedidos 0 \n", + "Condiciones comerciales, coordinación de client... 0 \n", + "Contratación, disponibilidad y formación de per... 0 \n", + "Control de producción, inventario y visibilidad... 0 \n", + "DANA: daños, interrupción y recuperación de pla... 0 \n", + "Delegación, estructura y orientación organizativa 0 \n", + "Falta de componentes, servicios o recursos esen... 0 \n", + "Fiabilidad, averías, mantenimiento y seguridad ... 0 \n", + "Flujo de trabajo, capacidad y pedidos 0 \n", + "Incendio: parada, traslado y recuperación produ... 0 \n", + "Interrupción técnica o retraso de puesta en marcha 0 \n", + "Obsolescencia de equipos de proceso 0 \n", + "Planificación de demanda, suministro y compras 0 \n", + "Sobrecarga, ausencias y dependencia de personas... 0 \n", + "Urgencias, coordinación y planificación diaria 0 \n", + "\n", + "dimension_tipo Equipos, instalaciones y seguridad \\\n", + "grupo_similitud \n", + "Adopción, integración y calidad de sistemas de ... 0 \n", + "Ajuste, cierre o traslado de capacidad/planta 0 \n", + "Captura manual y transcripción de pedidos 0 \n", + "Condiciones comerciales, coordinación de client... 0 \n", + "Contratación, disponibilidad y formación de per... 0 \n", + "Control de producción, inventario y visibilidad... 0 \n", + "DANA: daños, interrupción y recuperación de pla... 0 \n", + "Delegación, estructura y orientación organizativa 0 \n", + "Falta de componentes, servicios o recursos esen... 0 \n", + "Fiabilidad, averías, mantenimiento y seguridad ... 9 \n", + "Flujo de trabajo, capacidad y pedidos 0 \n", + "Incendio: parada, traslado y recuperación produ... 0 \n", + "Interrupción técnica o retraso de puesta en marcha 0 \n", + "Obsolescencia de equipos de proceso 1 \n", + "Planificación de demanda, suministro y compras 0 \n", + "Sobrecarga, ausencias y dependencia de personas... 0 \n", + "Urgencias, coordinación y planificación diaria 0 \n", + "\n", + "dimension_tipo Organización y personas \\\n", + "grupo_similitud \n", + "Adopción, integración y calidad de sistemas de ... 0 \n", + "Ajuste, cierre o traslado de capacidad/planta 0 \n", + "Captura manual y transcripción de pedidos 0 \n", + "Condiciones comerciales, coordinación de client... 0 \n", + "Contratación, disponibilidad y formación de per... 5 \n", + "Control de producción, inventario y visibilidad... 0 \n", + "DANA: daños, interrupción y recuperación de pla... 0 \n", + "Delegación, estructura y orientación organizativa 2 \n", + "Falta de componentes, servicios o recursos esen... 0 \n", + "Fiabilidad, averías, mantenimiento y seguridad ... 0 \n", + "Flujo de trabajo, capacidad y pedidos 0 \n", + "Incendio: parada, traslado y recuperación produ... 0 \n", + "Interrupción técnica o retraso de puesta en marcha 0 \n", + "Obsolescencia de equipos de proceso 0 \n", + "Planificación de demanda, suministro y compras 0 \n", + "Sobrecarga, ausencias y dependencia de personas... 4 \n", + "Urgencias, coordinación y planificación diaria 0 \n", + "\n", + "dimension_tipo Planificación y operaciones \\\n", + "grupo_similitud \n", + "Adopción, integración y calidad de sistemas de ... 0 \n", + "Ajuste, cierre o traslado de capacidad/planta 0 \n", + "Captura manual y transcripción de pedidos 0 \n", + "Condiciones comerciales, coordinación de client... 0 \n", + "Contratación, disponibilidad y formación de per... 0 \n", + "Control de producción, inventario y visibilidad... 4 \n", + "DANA: daños, interrupción y recuperación de pla... 0 \n", + "Delegación, estructura y orientación organizativa 0 \n", + "Falta de componentes, servicios o recursos esen... 0 \n", + "Fiabilidad, averías, mantenimiento y seguridad ... 0 \n", + "Flujo de trabajo, capacidad y pedidos 13 \n", + "Incendio: parada, traslado y recuperación produ... 0 \n", + "Interrupción técnica o retraso de puesta en marcha 0 \n", + "Obsolescencia de equipos de proceso 0 \n", + "Planificación de demanda, suministro y compras 0 \n", + "Sobrecarga, ausencias y dependencia de personas... 0 \n", + "Urgencias, coordinación y planificación diaria 4 \n", + "\n", + "dimension_tipo Sistemas y digitalización \\\n", + "grupo_similitud \n", + "Adopción, integración y calidad de sistemas de ... 6 \n", + "Ajuste, cierre o traslado de capacidad/planta 0 \n", + "Captura manual y transcripción de pedidos 1 \n", + "Condiciones comerciales, coordinación de client... 0 \n", + "Contratación, disponibilidad y formación de per... 0 \n", + "Control de producción, inventario y visibilidad... 0 \n", + "DANA: daños, interrupción y recuperación de pla... 0 \n", + "Delegación, estructura y orientación organizativa 0 \n", + "Falta de componentes, servicios o recursos esen... 0 \n", + "Fiabilidad, averías, mantenimiento y seguridad ... 0 \n", + "Flujo de trabajo, capacidad y pedidos 0 \n", + "Incendio: parada, traslado y recuperación produ... 0 \n", + "Interrupción técnica o retraso de puesta en marcha 0 \n", + "Obsolescencia de equipos de proceso 0 \n", + "Planificación de demanda, suministro y compras 0 \n", + "Sobrecarga, ausencias y dependencia de personas... 0 \n", + "Urgencias, coordinación y planificación diaria 0 \n", + "\n", + "dimension_tipo Suministro y dependencias externas \n", + "grupo_similitud \n", + "Adopción, integración y calidad de sistemas de ... 0 \n", + "Ajuste, cierre o traslado de capacidad/planta 0 \n", + "Captura manual y transcripción de pedidos 0 \n", + "Condiciones comerciales, coordinación de client... 0 \n", + "Contratación, disponibilidad y formación de per... 0 \n", + "Control de producción, inventario y visibilidad... 0 \n", + "DANA: daños, interrupción y recuperación de pla... 0 \n", + "Delegación, estructura y orientación organizativa 0 \n", + "Falta de componentes, servicios o recursos esen... 5 \n", + "Fiabilidad, averías, mantenimiento y seguridad ... 0 \n", + "Flujo de trabajo, capacidad y pedidos 0 \n", + "Incendio: parada, traslado y recuperación produ... 0 \n", + "Interrupción técnica o retraso de puesta en marcha 0 \n", + "Obsolescencia de equipos de proceso 0 \n", + "Planificación de demanda, suministro y compras 1 \n", + "Sobrecarga, ausencias y dependencia de personas... 0 \n", + "Urgencias, coordinación y planificación diaria 0 " + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.crosstab(df[\"grupo_similitud\"], df[\"dimension_tipo\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "e9f0dd9a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " excel: 0\n", + " whatsapp: 0\n", + " manual: 3\n", + " papel: 1\n", + " a mano: 0\n", + " hoja de calculo: 0\n", + " software: 0\n", + " erp: 2\n", + " app: 0\n", + " llamada: 0\n", + " email: 0\n" + ] + } + ], + "source": [ + "communication_keywords = [\"excel\", \"whatsapp\", \"manual\", \"papel\", \"a mano\", \"hoja de calculo\",\n", + " \"software\", \"erp\", \"app\", \"llamada\", \"email\"]\n", + "for kw in communication_keywords:\n", + " print(f\"{kw:>16}: {df['texto_normalizado'].str.contains(kw, na=False).sum()}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3312e42c", + "metadata": {}, + "outputs": [], "source": [] } ], @@ -46,7 +1596,15 @@ "name": "python3" }, "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", "version": "3.14.4" } },