Aprendizaje Profundo en snapADDY

por

Deep Learning Ansatz bei snapADDY

El artículo de hoy trata sobre el uso del Aprendizaje Profundo que actualmente desarrollamos y utilizamos para mejorar los resultados de nuestro analizador de datos. Nos gustaría darle una breve idea del funcionamiento interno de nuestro Departamento de Desarrollo y mostrarle cómo nuestro analizador utiliza los nuevos avances técnicos para mejorar aún más la calidad de la obtención de datos en su sistema CRM. Actualmente trabajamos en el continuo desarrollo del analizador que pondremos a disposición de nuestros clientes en el transcurso del año.

Nuestra labor principal: Buscar y reconocer datos de contacto de calidad

Muchas compañías no están satisfechas con la calidad de los datos de su sistema CRM. La documentación manual de notas de reuniones y la digitación de datos de contacto hacen que la calidad de los resultados sea baja y que se pierda tiempo valioso. Pensando en una solución a este problema, hemos resuelto que lo ideal es recopilar datos automáticamente.

Una de las funciones principales de nuestros productos es el reconocimiento automático de datos de contacto que lleva a cabo nuestro algoritmo. Con sólo escribir el nombre de una empresa en la barra de búsqueda, el algoritmo de snapADDY encuentra individualmente el aviso legal de la página web, analiza el texto encontrado y reconoce los posibles datos de contacto que clasifica automáticamente en las casillas designadas. Luego, exporta el resultado como contacto directo al sistema CRM, reduciendo la carga de trabajo a tan solo dos minutos por contacto.

El problema principal: ¿Cómo se pueden reconocer automáticamente los datos de contacto en un texto?

Cuando nosotros como humanos leemos un texto, instantáneamente reconocemos un nombre y un correo electrónico con sólo leer secuencias de caracteres que forman oraciones, textos o serie numéricas. Además, entendemos el contexto, extraemos la información relevante en el menor tiempo y la clasificamos de acuerdo con la experiencia que tengamos. Entonces, ¿qué tan difícil puede ser hacer que un dispositivo procese por sí solo la información al igual que lo haría un humano?

Este trabajo resulta ser bastante difícil pues un computador básicamente no comprende por sí solo un texto o al menos no lo procesa igual que un humano. Al no comprender secuencias de signos como palabras y oraciones, no distingue cualitativamente entre casa y 72 97 117 115. Entonces, ¿cómo se supone que un dispositivo procese datos automáticamente?

Dos estrategias en contraste: 1. Asignación de datos por medio de listas

Al principio en snapADDY, utilizábamos listas de palabras que nuestro software pudiera emplear para determinar si una secuencia de caracteres se refería a un "nombre" o un "título de trabajo" en la lista. Así, si encontraba el cargo de una persona de ventas en un texto en el aviso legal de la página web, lo reconocía como cargo porque la misma secuencia de caracteres se encontraba en la lista clasificado como cargo.

Parece una solución fácil, ¿no? ¿Qué pasa entonces con la empresa Pedro Martínez SA en la Calle José Moreno 123? ¿Cómo puede un dispositivo decidir si Pedro es un nombre personal o el nombre de la compañía? Este problema básico no se puede resolver trivialmente comparando palabras con diferentes listas. Por esta razón, nuestro Departamento de Datos está trabajando ampliamente en sistemas más inteligentes que puedan desarrollar individualmente patrones de reconocimiento de datos de contacto para que no tengamos que crearlos manualmente.

Además, recopilar listas con nombres de personas, ciudades y empresas requiere de un extenso trabajo manual. Nuestro Departamento de Datos en snapADDY invierte mucho tiempo creando y comprobando listas para determinar la eficacia de la clasificación de datos (por ejemplo, Pedro = nombre) según criterios estadísticos. Con esta forma de proceder snapADDY logra una gran precisión en muchos campos. Así pues, este enfoque produce básicamente buenos resultados, pero a medida que aumenta el rendimiento del reconocimiento y la cantidad de datos, se hace evidente que las reglas y las listas tienen sus limitaciones. Con el tiempo, es cada vez más difícil configurar la precisión del analizador requiriendo de mucho más esfuerzo y trabajo para crear nuevas reglas. En este caso es cuando ayuda una tecnología de los 60 que está volviendo a florecer: El Aprendizaje Profundo.

Dos estrategias en contraste: 2. Reconocimiento de patrones con el Aprendizaje Profundo

El Aprendizaje Profundo es uno de los conceptos de moda de los últimos años. No es fácil resumir simplemente todo lo que hay detrás de este término, pero la idea detrás de él lo explicamos por medio de un problema específico sin entrar mucho en detalles técnicos. Básicamente, el Aprendizaje Profundo es la respuesta a la pregunta: ¿Qué puedo hacer si quisiera evitar hacer por mí mismo que un dispositivo reconozca las reglas relevantes de reconocimiento de datos?

Con el Aprendizaje Profundo ya no tenemos que introducir individualmente las reglas y ni siquiera tenemos que escribir listas de palabras en los dispositivos. La idea es simple: En lugar de escribir reglas explícitas y programar la lógica en el software, preparamos instrucciones para que el dispositivo reconozca los patrones por sí solo. Estos patrones superan incluso reglas muy complejas creadas para utilizar en una gran variedad de aplicaciones.

Aprendizaje Profundo en snapADDY: Un algoritmo de aprendizaje independiente por medio de casos de prueba

Por lo general, el Aprendizaje Profundo hace referencia al uso de las Redes Neuronales Artificiales para crear modelos generales que resuelvan un problema específico (como clasificación de datos, traducción, reconocimiento de textos, etc.). Una red neuronal puede aprender de la experiencia basándose en datos de muestra, por ejemplo, aprende qué palabras aparecen con frecuencia en conjunto y a qué clases pertenecen. La experiencia viene en forma de datos de muestra cuyas palabras ingresamos a la red y luego clasificamos.

Deep Learning bei snapADDY

A partir de estos pares entre palabra-clase, la red neuronal intenta derivar las reglas generales con las que puede encontrar la clase correspondiente a cada palabra, incluso si esta palabra no está incluida en las instrucciones iniciales. Estas reglas simulan una serie de cálculos dentro de la red que tienden a representar funciones matemáticas. En primer lugar, se eligen al azar los parámetros utilizados cuyas soluciones suelen ser inconclusas al principio. Durante la prueba, la red compara constantemente la solución que encontró con la respuesta correcta y cambia los parámetros correspondientes cada vez que encuentra un error. Así, los parámetros se ajustarán hasta que no haya más errores por mejorar.

De esta manera, podemos mejorar significativamente la detección de casillas individuales en nuestro sistema de pruebas. Por ejemplo, el reconocimiento de los nombres de empresas ha aumentado del 70% a más del 80%. Con este método, el reconocimiento de nombres y apellidos está ahora muy por encima del 90% en el sistema de pruebas. Tan pronto como el analizador de Aprendizaje Profundo esté listo para un uso productivo, nuestros clientes podrán sacar provecho de un reconocimiento de datos automatizado todavía mejor. Cuando esté disponible, informaremos a través de nuestros canales habituales (redes sociales, newsletters, etc.).

Siguiente paso: Actualización automática de datos de contacto en el sistema CRM

En snapADDY mejoramos constantemente la precisión de una de nuestras funciones clave por medio del uso de nuevas tecnologías. Seguimos entrenando nuestro modelo de Aprendizaje Profundo con datos adicionales de muestra para lograr una mayor precisión. En el futuro, nuestro Departamento de Datos podrá centrarse en los próximos retos que harán aún más fácil el trabajo de los usuarios de snapADDY . Por el momento, le garantizamos que la actualización automática de datos de contacto y otras funciones interesantes las tiene al alcance de la mano.