Utilización de lenguaje natural en INEbaseR

Una mejora planteada en este proyecto es desarrollar una solución para la obtención de series mediante cruce de metadatos y la obtención de los n últimos datos de series mediante el cruce de metadatos utilizando lenguaje natural.

Obtener series mediante cruce de metadatos

Desde la API del INE podemos obtener series mediante cruce de metadatos, siguiendo la siguiente definición:

  • Consulta: Series mensuales de la operación IPC cuya definición en términos de metadatos (variables y valores)  cumple lo siguiente:
    • “Provincias” =  “Madrid”
    • “Tipo de dato”  = “Variación mensual”  
    • “Grupos ECOICOP” = Todos los grupos

Para obtener los datos mencionados deberemos generar la siguiente URL:

http://servicios.ine.es/wstempus/js/ES/SERIE_METADATAOPERACION/IPC?g1=115:29&g2=3:84&g3=762:&p=1

Con los siguientes parámetros:

  • {input} = Código identificativo de la operación (IOE30138 /IPC/ 25) y códigos identificativos de las variables y valores:
    • “Provincias” (FK_VARIABLE=115) = “Madrid” (FK_VALOR=29)  ⇒  g1=115:29
    • “Tipo de dato” (FK_VARIABLE=3) = “Variación mensual”   (FK_VALOR=84) ⇒ g2=3:84
    • “Grupos ECOICOP” (FK_VARIABLE=762) = “Todos los grupos ECOICOP” (FK_VALOR=null) ⇒  g3=762:
    • “Serie mensual” (FK_PERIODICIDAD=1) ⇒  p=1  (Ver PUBLICACIONES_OPERACION)

Esto es un poco complejo, ya que tendremos que buscar el identificador de cada variable o valor para luego generar la URL correspondiente que nos devuelva los datos deseados.

Con el package INEbaseR podremos obtener los mismos datos utilizando lenguaje natural de una forma similar a una consulta SQL haciendo una llamada a la función get_series_metadataoperation:

get_series_metadataoperation("IPC", query = "Provincias = Madrid AND Tipo de dato = Variación mensual AND Grupos ECOICOP = NULL")

Obtener n los últimos datos de series mediante el cruce de metadatos

Lo mismo podremos hacer para la obtención de los “n” últimos datos de series mediante el cruce de metadatos.

La URL que debemos generar en este caso es la siguiente:

http://servicios.ine.es/wstempus/js/ES/DATOS_METADATAOPERACION/IPC?g1=115:29&g2=3:84&g3=762:&p=1&nult=1

En este caso, cambian algunos valores, pero la llamada a la función del package INEbaseR para obtener los mismos valores que con la URL quedaría de la siguiente manera:

get_data_metadataoperation("IPC", query = "Provincias = Madrid AND Tipo de dato = Variación mensual AND Grupos ECOICOP = NULL", nult = 1)

Proceso de transformación

Bueno, la pregunta es cómo se ha desarrollado este proceso para transformar una consulta, parecida a SQL, desde lenguaje natural a una URL entendible por la API del INE (Insituto Nacional de Estadística).

El proceso es el siguiente:

  1. Se separa la cadena (consulta) de la variable query por la cadena AND.
  2. Las cadenas resultantes ahora serán del tipo VARIABLE = VALOR.
  3. Se vuelve a seprar cada cadena por el caracter =.
  4. Se obtienen los id de las variables y los valores.
  5. Se generan cadenas del tipo: g1=id_variable_1:id_valor_1, g2=id_variable_2:id_valor_2,…,gn=id_variable_n:id_valor_n
  6. Por último se une todo para formar una URL.
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s