Buscador de empresas

¿Qué es el buscador de empresas?

graph

Empresas permite generar gráficas que representan las diferentes relaciones entre las personas y las empresas a partir de su nombre.

Las relaciones mostradas en las gráficas se establecen en función del cargo que ocupa una persona dentro de una empresa.

Errores y robots software

Debido a la gran cantidad de documentos a tratar se ha automatizado todo el proceso mediante robots software (bots software o agentes software). Estos robots son muy rápidos pero carecen de entendimiento, por esto, a veces, pueden aparecer errores obvios en los resultados ofrecidos por la aplicación.

Otros errores menos obvios son fruto de la manera en que se confecciona el BORME: los datos son introducidos por el personal, manualmente, y no se tiene en cuenta identificadores únicos para las personas o las empresas (como podría ser el DNI y el CIF, respectivamente).

Estos errores son:

  • Dos empresas (o dos personas) distintas se toman por la misma, si tienen el mismo nombre.
  • Si una empresa (o persona) se introdujo en distintos documentos con nombres distintos, por errores mecanográficos u otras causas, se toman como sujetos diferentes.

Abrir el BORME

La información usada en Empresas fue extraída del Boletín Oficial del Registro Mercantil (BORME), donde se publicitan los actos jurídicos que deben ser de conocimiento público del Registro Mercantil de España.

Más de 50.000 documentos fueron procesados: descargados, leídos y analizados para crear esta aplicación. Los documentos procesados abarcan desde el 1 de Enero de 2009 hasta hoy. Cuando se publican nuevos documentos del BORME, son procesados por los robots de Empresas. Estos documentos se publican en PDF.

El 1 de Enero de 2009 los encargados del BORME cambiaron su formato de PDF y tuvieron una buena oportunidad para publicar en un formato estructurado como JSON o XML. Por razones que desconocemos no lo hicieron.

Que los documentos estén en PDF y no en un formato estructurado hace muy difícil la tarea de procesar automáticamente estos documentos, esto lo explicamos en una entrada anterior:

Con este programa queremos colaborar con la corriente de datos abiertos (open data, en inglés).

Arquitectura

En otras entradas del Blog profundizaremos más en la arquitectura y en breve estará disponible el código fuente de toda la aplicación en nuestro repositorio . Por el momento sólo enumeraremos las partes de que consta la aplicación.

Robot extractor de documentos PDFs

Se conecta a la página web del BORME, revisa el calendario y va descargando los documentos entre dos fechas indicadas.

Usa las tecnologías:

  • Python
  • BeutifulSoup: Parser de páginas web.

Analizador de PDFs

Es un parser de dos pasadas. En la primera pasada transforma el PDF en un fichero JSON sencillo al cuál llamamos RAW, en la segunda, transforma este fichero RAW en otro con una estructura más compleja y le llamamos PROCESSED.

Usa las tecnologías:

  • Python
  • PDFminer: Parser y analizador de PDFs.
  • PLY: (Python Lex Yacc) Implementación de los parsers lex y yacc para Python.

Planificador

El planificador controla los dos programas anteriores.

El planificador tiene una base de datos en la que lleva la cuenta de los documentos descargados y el estado en el que se encuentran, su objetivo es tener todos los documentos que hay en la web del BORME bien procesados.

Usa las tecnologías:

  • Python
  • PostgreSQL: Base de datos.

API REST del Planificador

Usando la base de datos del planificador y los ficheros PROCESSED ofrece:

  • La lista de documentos disponibles,
  • La lista de errores, de haberlos, en cada parte del proceso,
  • Los datos del documento estructurado en JSON,

Usa las tecnologías:

  • Python
  • PostgreSQL
  • Django: Framework web.
  • Django REST Framework: Framework para construir APIs Webs REST.

Web del buscador

Es la intefaz web donde se pueden buscar empresas o personas y visualizar sus relaciones.

Uso de las tecnologías:

  • Python
  • Javascript
  • Neo4j: Base de datos orientada a grafos.
  • PostgreSQL
  • Django
  • Bootstrap: Framework para desarrollar interfaces web.
  • jQuery: Librería javascript.
  • D3.js: Librería para manipular datos y visualizarlos.
Buscador de empresas
Tagged on:                                 

Deja un comentario