política de cookies

Utilitzem cookies per a facilitar l'ús de la nostra pàgina web.

Les cookies que utilitzem no emmagatzemen cap dada personal, ni cap mena d'informació que pugui identificar-li. En cas de no voler rebre cookies, si us plau configuri el seu navegador d'Internet perquè les esborri del disc dur del seu ordinador, les bloquegi o li avisi en cas d'instal·lació d'aquestes. Per a continuar sense canvis en la configuració de les cookies, simplement continuï en la pàgina web. En visitar la nostra pàgina web, accepta la instal·lació d'aquestes cookies en el seu dispositiu.

x
Bitendian logo

Com fer un crawler per extreure informació d'interès automàticament. Episodi 2: Arquitectura

Paraules clau: aranya, robot de cerca, cerca i recuperació d'informació, bot, cercador, intel·ligència artificial, IA, search bot, search robot, robot, crawler, web crawler, information retrieval, information search and retrieval, artificial intelligence, AI

En aquest article, dividit en 4 parts, expliquem com implementar un Information Retriever. És a dir, un sistema software capaç d'aconseguir informació d'interès de forma automàtica/desassistida/intel·ligent a partir d'informació que s'està actualitzant constantment a internet.

A la primera part hem descrit l'escenari.

Aquesta segona part és per introduir en què consisteix l'Information Retriever, és a dir, la seva arquitectura. És a dir, quins components té i a on encaixa.

Arquitectura d'un Information Retriever

Expliquem ara com fer el crawler (en realitat dir-li crawler és resumir-ho, ja que consta de molts, com veurem) que és capaç d'extreure informació automàticament de fonts d'interès, i al qual ens referirem a partir d'ara com l'IR (Information Retriever). A tal efecte, primer describirem la situació actual (sense l'IR) i la situació a la qual volem arribar (amb l'IR)

Situació inicial (system-as-is)

Al Context (escenari genèric) hem descrit el que representem al diagrama: hi ha diverses fonts d'informació I1,I2,I3,... que van actualitzant la seva informació.

Empleats de l'empresa E accedeixen a aquestes fonts amb certa regularitat a consultar canvis, i la processen. És a dir, s'hi fixen només en la informació d'interès pels seus clients afectats A1,A2,A3, ...

Periòdicament (o en el moment que se n'adonin), si és que apareix alguna informació en les fonts que els empenyi a fer-ho, actualitzen els aplicatius d'E (l'ERP, el CRM,...). Si procedeix, contacten amb algun dels afectats per algun mitjà (mail, telèfon, whatsapp,...) o bé és el mateix ERP i/o CRM el que envia un mail. O bé són els mateixos clients els que tenen una intranet a la qual es connecten per a veure actualitzacions. En qualsevol cas, la part d'Information Retrieval no està automatitzada. És a dir, són els empleats d'E, i no programes, els que accedeixen a les fonts i actualitzen els afectats d'alguna manera.

És important puntualitzar que els empleats que fan aquesta tasca d'information retrieval i consegüent actualització dels afectats no és la única tasca que fan, però sí els consumeix una part substancial del seu temps.

 

Situació a on volem arribar (system-to-be)

Volem arribar a una situació com la inicial però amb tota la feina d'Information Retrieval dels empleats automatitzada per l'IR. Així, el temps alliberat a aquests empleats el podran dedicar a altres coses. Per exemple, descobrint noves fonts d'informació, o proposant millores a l'Information Retriever. També podran dedicar més temps a un tracte humà de més qualitat amb els clients existents, així com a la prospecció de nous. Al diagrama més abaix veiem com hi ha un sistema IR. Doncs bé, aquest sistema substitueix a gran part del temps d'alguns empleats.

Així doncs l'IR serà un nou sistema software que automatitzarà les següents tasques:

  1. detectar que hi ha informació nova a les fonts I1,I2,I3. Per fer-ho l'extreurà amb els seus crawlers.
  2. llegir-la i extreu-re la part que tingui interès. Per fer-ho l'analitzarà amb els seus parsers.
  3. actualitzar, si s'escau, i seguint unes regles, els aplicatius d'E. Això indirectament provocarà que els afectats (Stakeholders) siguin avisats tard o d'hora. Això serà gestionat automàticament pels brokers.

L'IR a més serà configurable, és a dir, se li podran afegir noves fonts fàcilment o ensenyar noves regles.

Al diagrama representem els components d'un IR i com treballen en equip. És a dir, representem l'arquitectura d'un IR:

arquitectura d'un information retriever (

Al proper episodi descriurem en detall cadascun dels components de l'IR i en donarem les pautes per implementar-los.

Glossari

Aclarim aquí alguns termes que anirem fent servir. Més enllà de donar la seva definició genèrica (que el lector podrà trobar a la wikipedia) ens hem esforçat per dir a què ens referim amb ells en aquest context.

Algorisme/Algoritme: procediment, estratègia.

API (Application Programming Interface): invocacions que ofereix una aplicació per tal que d'altres aplicacions puguin fer servir algunes de les seves funcionalitats.

BD (Base de Dades): una base de dades és un component d'un sistema de software a on es guarda informació de forma estructurada.

Bot: és un robot sense cos. És a dir, només el software.

Crawler / Aranya: bot (programa) que entra a pàgines d'internet i descarrega el seu contingut (allò que fa google amb totes les pàgines)

CRM (Customer Relationship Manager): aplicatiu que s'encarrega de mantenir els clients d'una empresa i la seva relació amb ells.

ERP (Enterprise Resource Planner): aplicatiu que s'ocupa de gestionar els processos de producció d'una empresa.

GUI (Graphical User Interface): controls que pot fer servir un usuari per utilitzar funcionalitats d'una aplicació.

IA (Intel·ligència Artificial): paradigma de programació consistent en pensar un algorisme de la mateixa manera que ho faria una persona si fos una persona qui hagués de fer la feina.

IR (Information Retriever): software que s'encarrega de trobar informació incumbent automàticament.

Magatzem de contingut descarregat: contingut descarregat pels crawlers pel seu posterior tractament.

Parser: programa que extreu informació d'un text.

Programa: és un algoritme escrit en un llenguatge que un ordinador entengui i així el pugui executar.

Robot: provè del polac "esclau" i és quelcom artifical construit per fer el que li diguis emulant el que faria un ésser humà.

robots.txt: els webs tenen un fitxer a la seva arrel que es diu robots.txt que són indicacions perquè si algu fa un crawler, les respecti. Consisteixen bàsicament en no entrar massa sovint i no entrar a segons quines rutes.

Sistema software / Sistema d'informació / Aplicatiu / Aplicació: conjunt de programes i dades que produeixen nova informació a partir d'informació existent.