Cómo escribir una aplicación simple de autoaprendizaje usando Scala que comprenda las entradas del lenguaje natural

El procesamiento del lenguaje natural de uso general sigue siendo un problema sin resolver. Sin embargo, hay algunas aplicaciones muy exitosas con dominio limitado.

Al igual que con cualquier tarea que no desee comenzar desde cero, hay muchas buenas bibliotecas y algunos buenos servicios para ayudar con este proceso. Incluso sin comprender los detalles de su problema, puedo sugerir Stanford nlp y Apache openNLP como algunos buenos lugares para comenzar. Sin embargo, esto no resolverá su problema. Esto lo ayudará a descomponer el texto en formas más estructuradas y normalizadas, no le dirá la intención del usuario en su dominio.

Una receta amplia sería definir el dominio de su problema, tener una estructura de datos comprensible por computadora bien estructurada que defina su entrada. Cuanto más limitado sea el dominio, mayores serán las posibilidades de éxito. Luego debe traducir la entrada humana a su propia forma estructurada (o fallar como entrada no válida).

Un enfoque muy simple sería usar algunas reglas codificadas, usar algunas herramientas de procesamiento de texto y muchas reglas codificadas a mano pueden llevarlo razonablemente lejos. Para una codificación manual de dominio más amplia, todas las reglas se vuelven inviables y se requieren técnicas de aprendizaje automático. Las técnicas de clasificación clásicas, pero más recientemente, las redes neuronales profundas están ganando popularidad y específicamente las redes neuronales recurrentes que exhiben LSTM (memoria a corto y largo plazo).

Esto es más una lista de lectura, nada de esto es “fácil”, especialmente la parte de aprendizaje automático y redes neuronales. Algún análisis de texto básico y un sistema basado en reglas es probablemente el camino a seguir si no tiene antecedentes significativos de NLP / ML (aunque siempre estoy a favor de estudiar).

La comprensión del lenguaje natural es uno de los grandes temas de investigación en la actualidad. Gigantes como Google, Apple y Microsoft están gastando miles de millones de dólares en ello. Están logrando un éxito considerable, pero al precio de una gran potencia informática y cientos de investigadores de alta calidad. Es muy poco probable que logre algo similar por su cuenta.