{"id":29341986,"url":"https://github.com/k31ner/inmopipeline","last_synced_at":"2026-05-08T15:32:34.125Z","repository":{"id":301258989,"uuid":"1008682669","full_name":"K31NER/InmoPipeline","owner":"K31NER","description":"Proyecto integral de análisis y modelado predictivo de datos inmobiliarios, que abarca recolección, transformación, visualización y machine learning utilizando Python y herramientas modernas de ingeniería y ciencia de datos.","archived":false,"fork":false,"pushed_at":"2025-07-10T04:57:58.000Z","size":6007,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-10T13:26:28.216Z","etag":null,"topics":["data-analysis","data-engineering","data-science","fastapi","python","streamlit"],"latest_commit_sha":null,"homepage":"https://inmopipeline.streamlit.app","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/K31NER.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-25T23:53:19.000Z","updated_at":"2025-07-10T04:58:02.000Z","dependencies_parsed_at":"2025-07-10T08:29:18.660Z","dependency_job_id":"a8166dae-c8be-41f5-b80e-854bad1b7a11","html_url":"https://github.com/K31NER/InmoPipeline","commit_stats":null,"previous_names":["k31ner/inmopipeline"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/K31NER/InmoPipeline","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/K31NER%2FInmoPipeline","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/K31NER%2FInmoPipeline/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/K31NER%2FInmoPipeline/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/K31NER%2FInmoPipeline/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/K31NER","download_url":"https://codeload.github.com/K31NER/InmoPipeline/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/K31NER%2FInmoPipeline/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32785979,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"ssl_error","status_checked_at":"2026-05-08T08:22:45.650Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-analysis","data-engineering","data-science","fastapi","python","streamlit"],"created_at":"2025-07-08T10:13:42.010Z","updated_at":"2026-05-08T15:32:34.120Z","avatar_url":"https://github.com/K31NER.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"img/logo.png\" alt=\"InmoPipeline Logo\" width=\"200\"/\u003e\n\n# 🏡 InmoPipeline\n### *Pipeline Completo de Análisis del Mercado Inmobiliario Colombiano*\n\n![Status](https://img.shields.io/badge/Status-Production-brightgreen?style=flat-square)\n![Model](https://img.shields.io/badge/Model_R²-70.07%25-blue?style=flat-square)\n![Validation](https://img.shields.io/badge/External_Error-19.44%25-orange?style=flat-square)\n![API](https://img.shields.io/badge/API-Live-success?style=flat-square\u0026logo=render)\n![Tests](https://img.shields.io/badge/Tests-282_Properties-informational?style=flat-square)\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Python-Data_Engineering-3776ab?style=for-the-badge\u0026logo=python\u0026logoColor=white\" alt=\"Python\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/DuckDB-Analytics_Database-FFF000?style=for-the-badge\u0026logo=duckdb\u0026logoColor=black\" alt=\"DuckDB\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Playwright-Web_Scraping-2EAD33?style=for-the-badge\u0026logo=playwright\u0026logoColor=white\" alt=\"Playwright\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Streamlit-Interactive_Dashboards-FF4B4B?style=for-the-badge\u0026logo=streamlit\u0026logoColor=white\" alt=\"Streamlit\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Scikit_Learn-Machine_Learning-F7931E?style=for-the-badge\u0026logo=scikit-learn\u0026logoColor=white\" alt=\"Scikit-Learn\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/FastAPI-ML_\u0026_MCP_Server-009688?style=for-the-badge\u0026logo=fastapi\u0026logoColor=white\" alt=\"FastAPI\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/n8n-Workflow_Automation-EA4B71?style=for-the-badge\u0026logo=n8n\u0026logoColor=white\" alt=\"n8n\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Render-Cloud_Deployment-46E3B7?style=for-the-badge\u0026logo=render\u0026logoColor=white\" alt=\"Render\"\u003e\n\u003c/p\u003e\n\n\u003c/div\u003e\n\n## 📋 Tabla de Contenidos\n\n- [📊 Descripción](#-descripción)\n- [🏗️ Arquitectura del Proyecto](#️-arquitectura-del-proyecto)\n- [🔄 Flujo del Pipeline](#-flujo-del-pipeline)\n- [⚙️ Tecnologías Utilizadas](#️-tecnologías-utilizadas)\n- [🔮 Roadmap del Proyecto](#-roadmap-del-proyecto)\n\n---\n\n## 📊 Descripción\n\n**InmoPipeline** es un proyecto end-to-end de ingeniería y ciencia de datos que implementa un pipeline completo para el análisis del mercado inmobiliario colombiano. El proyecto integra las tres disciplinas fundamentales del ecosistema de datos moderno:\n\n### 🔧 **Ingeniería de Datos**\n- **Web Scraping Automatizado**: Extracción de datos en tiempo real desde FincaRaiz.com.co\n- **ETL Pipeline**: Procesos de extracción, transformación y carga optimizados\n- **Data Warehousing**: Almacenamiento eficiente con DuckDB\n\n### 📊 **Análisis de Datos**\n- **Análisis Exploratorio**: Identificación de patrones y tendencias del mercado\n- **Dashboards Interactivos**: Visualizaciones dinámicas con Streamlit\n- **KPIs del Mercado**: Métricas clave del sector inmobiliario\n\n### 🤖 **Ciencia de Datos**\n- **Machine Learning**: Modelo Random Forest entrenado con **R² = 0.7007** y **MSE = 0.197**\n- **Validación Externa**: Testeo con **282 propiedades nuevas** obtenidas por web scraping\n- **Error Absoluto**: **19.44%** en datos reales (concordante con métricas de entrenamiento)\n- **API de Predicción**: Endpoints REST desplegados en **Render Cloud** ↗️ [**inmopipeline.onrender.com**](https://inmopipeline.onrender.com)\n- **Automatización**: Workflows inteligentes con **n8n** para consultas automatizadas\n\n---\n\n## 🏗️ Arquitectura del Proyecto\n\n```mermaid\ngraph TB\n    subgraph \"🌐 Data Sources\"\n        A[FincaRaiz.com.co]\n    end\n    \n    subgraph \"⚡ Data Ingestion\"\n        B[Playwright Scraper]\n        C[Data Validation]\n    end\n    \n    subgraph \"🗃️ Data Storage\"\n        D[DuckDB Database]\n        E[CSV Exports]\n    end\n    \n    subgraph \"🔄 Data Processing\"\n        F[Pandas/Polars ETL]\n        G[Data Cleaning]\n        H[Feature Engineering]\n    end\n    \n    subgraph \"📊 Analytics Layer\"\n        I[Streamlit EDA]\n        J[Statistical Analysis]\n        K[Interactive Dashboard]\n    end\n    \n    subgraph \"🤖 ML Pipeline\"\n        L[Scikit-Learn Models]\n        M[Model Training]\n        N[Model Validation]\n        O[Model Persistence]\n    end\n    \n    subgraph \"🚀 Deployment\"\n        P[FastAPI Service]\n        Q[Render Cloud]\n        R[Model Endpoints]\n        S[n8n Workflows]\n    end\n    \n    A --\u003e B\n    B --\u003e C\n    C --\u003e D\n    C --\u003e E\n    E --\u003e F\n    F --\u003e G\n    G --\u003e H\n    H --\u003e I\n    H --\u003e J\n    H --\u003e K\n    D --\u003e L\n    L --\u003e M\n    M --\u003e N\n    N --\u003e O\n    O --\u003e P\n    P --\u003e Q\n    P --\u003e R\n    I --\u003e S\n    S --\u003e Q\n```\n\n---\n\n## 🔄 Flujo del Pipeline\n\n### Pipeline Detallado por Fases\n\n#### **Fase 1: 🕷️ Data Extraction**\n```mermaid\ngraph LR\n    A[🌐 FincaRaiz Portal] --\u003e B[🤖 Playwright Scraper]\n    B --\u003e C[📊 Raw Data Collection]\n    C --\u003e D[✅ Data Validation]\n    D --\u003e E[🗃️ DuckDB Storage]\n```\n\n#### **Fase 2: 🔄 Data Transformation**\n```mermaid\ngraph LR\n    A[🗃️ Raw Database] --\u003e B[🧹 Data Cleaning]\n    B --\u003e C[🔧 Feature Engineering]\n    C --\u003e D[📈 Statistical Analysis]\n    D --\u003e E[💾 Processed Dataset]\n```\n\n#### **Fase 3: 📊 Analytics \u0026 Visualization**\n```mermaid\ngraph LR\n    A[💾 Clean Data] --\u003e B[🎛️ Streamlit EDA]\n    A --\u003e C[📈 Statistical Analysis]\n    B --\u003e D[📈 Business Insights]\n    C --\u003e D\n```\n\n#### **Fase 4: 🤖 Machine Learning**\n```mermaid\ngraph LR\n    A[💾 Features Dataset] --\u003e B[🧠 Model Training]\n    B --\u003e C[✅ Model Validation]\n    C --\u003e D[� External Testing]\n    D --\u003e E[�💾 Model Persistence]\n    E --\u003e F[🚀 Render Deployment]\n    F --\u003e G[🔄 n8n Automation]\n```\n\n---\n\n## ⚙️ Tecnologías Utilizadas\n\n\u003cdiv align=\"center\"\u003e\n\n### 🔧 **Data Engineering Stack**\n| Tecnología | Propósito |\n|------------|-----------|\n| ![Playwright](https://img.shields.io/badge/Playwright-2EAD33?style=flat\u0026logo=playwright\u0026logoColor=white) | Web Scraping Dinámico |\n| ![DuckDB](https://img.shields.io/badge/DuckDB-FFF000?style=flat\u0026logo=duckdb\u0026logoColor=black) | OLAP Database |\n| ![Pandas](https://img.shields.io/badge/Pandas-150458?style=flat\u0026logo=pandas\u0026logoColor=white) | Data Manipulation |\n\n### 📊 **Analytics \u0026 Visualization**\n| Tecnología | Propósito |\n|------------|-----------|\n| ![Streamlit](https://img.shields.io/badge/Streamlit-FF4B4B?style=flat\u0026logo=streamlit\u0026logoColor=white) | Interactive Dashboards |\n\n### 🤖 **Machine Learning \u0026 Deployment**\n| Tecnología | Propósito |\n|------------|-----------|\n| ![Scikit-Learn](https://img.shields.io/badge/Scikit_Learn-F7931E?style=flat\u0026logo=scikit-learn\u0026logoColor=white) | Random Forest (R²=0.7007) |\n| ![FastAPI](https://img.shields.io/badge/FastAPI-009688?style=flat\u0026logo=fastapi\u0026logoColor=white) | ML \u0026 MCP API Server |\n| ![Render](https://img.shields.io/badge/Render-46E3B7?style=flat\u0026logo=render\u0026logoColor=white) | Cloud Deployment |\n| ![n8n](https://img.shields.io/badge/n8n-EA4B71?style=flat\u0026logo=n8n\u0026logoColor=white) | Workflow Automation |\n| ![Joblib](https://img.shields.io/badge/Joblib-FF6B6B?style=flat) | Model Persistence |\n\n\u003c/div\u003e\n\n---\n\n## 📊 Métricas y Rendimiento del Modelo\n\n\u003cdiv align=\"center\"\u003e\n\n### 🎯 **Resultados de Entrenamiento**\n| Métrica | Valor | Descripción |\n|---------|--------|-------------|\n| **R² Score** | `0.7007` | El modelo explica el 70% de la varianza en precios |\n| **MSE** | `0.1966` | Error cuadrático medio en escala logarítmica |\n| **Datos de Entrenamiento** | `1,050` | Propiedades utilizadas para entrenamiento |\n| **Features** | `8` | Variables predictivas optimizadas |\n\n### 🔍 **Validación Externa**\n| Métrica | Valor | Descripción |\n|---------|--------|-------------|\n| **Datos de Prueba** | `282` | Propiedades nuevas obtenidas por web scraping |\n| **Error Absoluto Promedio** | `19.44%` | Error en predicciones con datos reales |\n| **Consistencia** | `✅ Validado` | Error concuerda con métricas de entrenamiento |\n| **Rango de Confianza** | `70-80%` | Precisión esperada en predicciones |\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"img/validacion/porcentaje_error.png\" alt=\"Distribución de Errores de Validación\" width=\"600\"/\u003e\n\u003cp\u003e\u003cem\u003eDistribución del porcentaje de error en 282 propiedades de validación externa\u003c/em\u003e\u003c/p\u003e\n\u003c/div\u003e\n\n\u003c/div\u003e\n\n---\n\n## 🤖 Modelo de Machine Learning\n\n### 📋 **Especificaciones Técnicas**\n\n**Algoritmo**: Random Forest Regressor  \n**Optimización**: Grid Search con validación cruzada (K=5)  \n**Target**: Precios en escala logarítmica (`log1p`)  \n\n#### **Hiperparámetros Optimizados**\n```python\nRandomForestRegressor(\n    n_estimators=500,      # Árboles en el bosque\n    max_depth=30,          # Profundidad máxima\n    min_samples_split=5,   # Mínimo para dividir nodo\n    min_samples_leaf=2,    # Mínimo en hoja\n    max_features=\"sqrt\",   # Features por división\n    random_state=42,       # Reproducibilidad\n    n_jobs=-1             # Paralelización\n)\n```\n\n#### **Features Engineering**\n| Feature | Descripción | Importancia |\n|---------|-------------|------------|\n| `metros_cuadrados` | Área de la propiedad | 26.5% |\n| `log_metros_cuadrados` | Área en escala logarítmica | 22.6% |\n| `m2_x_costo_vida` | Interacción área-región | 17.7% |\n| `densidad` | (hab + baños) / m² | 12.1% |\n| `baños` | Número de baños | 9.2% |\n| `hab_x_baños` | Interacción habitaciones-baños | 6.3% |\n| `habitaciones` | Número de habitaciones | 3.6% |\n| `costo_vida` | Factor regional | 2.0% |\n\n### 🎯 **Validación y Pruebas**\n\n#### **Métricas de Entrenamiento**\n- **Datos**: 1,050 propiedades procesadas\n- **División**: 67% entrenamiento, 33% validación\n- **R² Score**: 0.7007 (70.07% de varianza explicada)\n- **RMSE**: 0.4433 (en escala logarítmica)\n- **MAE**: 0.3291 (en escala logarítmica)\n\n#### **Validación Externa Rigurosa**\n- **Datos nuevos**: 282 propiedades obtenidas por web scraping independiente\n- **Error absoluto promedio**: 19.44%\n- **Rango de error**: 5.8% - 25.0%\n- **Consistencia**: ✅ Error concordante con R² (0.30 faltante ≈ 19% error)\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"img/validacion/Real_vs_prediccion.png\" alt=\"Comparación Precios Reales vs Predicciones\" width=\"700\"/\u003e\n\u003cp\u003e\u003cem\u003eAnálisis comparativo entre precios reales del mercado y predicciones del modelo\u003c/em\u003e\u003c/p\u003e\n\u003c/div\u003e\n\n---\n\n## 🔄 Automatización con n8n\n\n### 🤖 **Agente Inmobiliario IA**\n\nImplementamos un workflow inteligente en **n8n** que actúa como un agente de consultas inmobiliarias automatizado:\n\n#### **Características del Agente**\n- **Modelo LLM**: Google Gemini 2.5 Pro\n- **Protocolo**: Model Context Protocol (MCP)\n- **Endpoints**: Conectado a API de InmoPipeline\n- **Capacidades**: Consultas automáticas sin intervención humana\n\n#### **Funcionalidades Disponibles**\n1. **📍 Consultas por Región**: `/propiedades_region/{region}`\n2. **🏙️ Consultas por Ciudad**: `/propiedades_ciudad/{ciudad}`  \n3. **🎯 Predicción de Precios**: `/model` (ML endpoint)\n4. **📊 Información del Modelo**: Métricas y rendimiento automático\n\n#### **Workflow n8n**\n```mermaid\ngraph LR\n    A[💬 Chat Input] --\u003e B[🤖 Gemini Agent]\n    B --\u003e C[🔗 MCP Client]\n    C --\u003e D[🌐 API InmoPipeline]\n    D --\u003e E[📊 Response Processing]\n    E --\u003e F[💬 Chat Output]\n```\n\n**Ejemplo de Uso**:\n\u003e *Usuario*: \"¿Cuánto cuesta un apartamento de 80m² con 3 habitaciones en Bogotá?\"  \n\u003e *Agente*: Ejecuta automáticamente `/model` → Responde con predicción + métricas del modelo\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"img/n8n agent/agent.png\" alt=\"Agente Inmobiliario IA con n8n\" width=\"800\"/\u003e\n\u003cp\u003e\u003cem\u003eInterfaz del agente inmobiliario IA desarrollado en n8n con Google Gemini\u003c/em\u003e\u003c/p\u003e\n\u003c/div\u003e\n\n---\n\n## 🔮 Roadmap del Proyecto\n\n- [x] ✅ **v1.0**: Web Scraping y ETL Pipeline\n- [x] ✅ **v1.1**: Base de datos DuckDB y exportación CSV\n- [x] ✅ **v2.0**: Análisis exploratorio completo con Streamlit\n- [x] ✅ **v2.1**: Dashboard interactivo con métricas y visualizaciones\n- [x] ✅ **v3.0**: Modelo Random Forest entrenado (R²=0.7007)\n- [x] ✅ **v3.1**: Validación externa con 282 propiedades (19.44% error)\n- [x] ✅ **v3.2**: API REST con FastAPI desplegada en Render\n- [x] ✅ **v3.3**: Automatización con n8n workflows\n- [ ] � **v4.0**: Containerización con Docker\n- [ ] 📋 **v4.1**: CI/CD Pipeline automatizado\n- [ ] 🔄 **v4.2**: Reentrenamiento automático del modelo\n\n---\n\n## 🌐 Enlaces y Recursos\n\n- 🚀 **API en Producción**: [inmopipeline.onrender.com](https://inmopipeline.onrender.com)\n- 📊 **Dashboard Streamlit**: [inmopipeline.streamlit.app](https://inmopipeline.streamlit.app)\n- 🔄 **Workflows n8n**: Automatización de consultas inmobiliarias\n- 📈 **Documentación API**: [/docs](https://inmopipeline.onrender.com/docs) (Swagger UI)\n- 🔗 **MCP Server**: [/mcp](https://inmopipeline.onrender.com/mcp) (Model Context Protocol)\n\n---\n\n## 🏆 Resultados Destacados\n\n### 📈 **Logros del Proyecto**\n\n- ✅ **Pipeline End-to-End Completo**: Desde web scraping hasta predicción en producción\n- ✅ **Modelo Validado Externamente**: 19.44% error absoluto con datos reales nuevos\n- ✅ **Precisión Robusta**: R² = 0.7007 confirmado en 282 propiedades independientes\n- ✅ **Automatización Inteligente**: Agente IA con n8n para consultas automáticas\n- ✅ **Despliegue en Producción**: API funcionando 24/7 en Render Cloud\n- ✅ **Concordancia de Métricas**: Error externo consistente con métricas de entrenamiento\n\n### 🎯 **Casos de Uso Validados**\n\n| Tipo de Propiedad | Predicción Promedio | Precisión |\n|-------------------|-------------------|-----------|\n| Apartamentos urbanos | $400M - $600M COP | ±15-20% |\n| Casas residenciales | $600M - $1.2B COP | ±18-25% |\n| Propiedades premium | $1B+ COP | ±20-30% |\n\n### 🔬 **Validación Científica**\n\nEl modelo ha sido rigurosamente validado:\n- **Entrenamiento**: 1,050 propiedades con validación cruzada K=5\n- **Testing externo**: 282 propiedades completamente nuevas\n- **Error coherente**: 19.44% externo vs 30% esperado del R² faltante\n- **Distribución de errores**: Normal, sin sesgos sistemáticos\n\n---\n\n## 📸 Galería de Resultados\n\n### 🎯 **Visualizaciones del Modelo**\n\n\u003cdiv align=\"center\"\u003e\n\n| Métrica de Validación | Análisis de Precisión |\n|:---------------------:|:---------------------:|\n| \u003cimg src=\"img/validacion/porcentaje_error.png\" alt=\"Distribución de Errores\" width=\"400\"/\u003e | \u003cimg src=\"img/validacion/Precio real.png\" alt=\"Análisis de Precios\" width=\"400\"/\u003e |\n| *Distribución del error absoluto en validación externa* | *Precio real del inmueble* |\n\n---\n\n## ⭐ Objetivo\n\nEste proyecto fue desarrollado como parte de un pipeline completo de ingeniería y ciencia de datos, integrando:\n\n- **Data Engineering**: ETL automatizado y almacenamiento optimizado\n- **Machine Learning**: Modelo predictivo con validación externa rigurosa  \n- **MLOps**: Despliegue automatizado y monitoreo en producción\n- **Automation**: Workflows inteligentes con n8n y MCP\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**🚀 InmoPipeline - Análisis Inmobiliario Inteligente**  \n*Desarrollado con ❤️ para el mercado inmobiliario colombiano*\n\n[![API Status](https://img.shields.io/badge/API-Check_Status-blue?style=for-the-badge\u0026logo=render)](https://inmopipeline.onrender.com)\n[![Documentation](https://img.shields.io/badge/Docs-API_Reference-green?style=for-the-badge\u0026logo=swagger)](https://inmopipeline.onrender.com/docs)\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fk31ner%2Finmopipeline","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fk31ner%2Finmopipeline","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fk31ner%2Finmopipeline/lists"}