¿Es un ‘predictor de la siguiente palabra’ que hice el aprendizaje automático o el procesamiento del lenguaje natural?

Un programa de PNL es PNL porque realiza el procesamiento del lenguaje natural, es decir: comprende el lenguaje, al menos lo suficiente como para descubrir cuáles son las palabras según la gramática del lenguaje. Un programa de PNL le diría que una palabra en particular en una oración en particular es un verbo, por ejemplo, y que otra es un artículo.

Su código es una forma (muy simplista) de Machine Learning, donde el código “aprende” las estadísticas de pares de palabras del texto de muestra que usted ingresa y luego usa esa información para producir predicciones. Su código sería un mejor ejemplo de la parte “Aprendizaje” de ML si lo divide en dos fases: la primera lee su texto, produce el recuento de pares de palabras y los almacena en un archivo / base de datos; luego la segunda fase (que podría ser un programa completamente diferente) lee la información “aprendida” y la usa para las predicciones. Más complejo, sí, pero esto demostraría que hay una parte de “aprendizaje” independiente de la parte de “uso”.

De hecho, su código es una forma de predicción probabilística en la que usted (implícitamente) determina la probabilidad de pares de palabras, de la forma [matemática] (anterior, siguiente) [/ matemática], y luego, conociendo una “palabra anterior” dada busque todos los pares que lo tengan en la primera posición, seleccione el par con la mayor probabilidad (o recuento) y escriba la “siguiente palabra” como su predicción.

Este método funciona, hasta cierto punto, para ejemplos simples como muestra en su código. Para corpus más complejos (también conocidos como grandes cuerpos de texto), puede producir predicciones mucho mejores mediante el uso de tripletes de palabras, cuadruplets o más grandes. Por supuesto, sus estructuras de datos ahora son más complejas y requieren una cuidadosa reflexión para evitar ralentizaciones severas en la fase de búsqueda.

Sin siquiera hacer PNL, puede extraer y determinar una gran cantidad de información de una manera “ingenua” simplemente usando distribuciones de probabilidad y el hecho de que no todos los pares de palabras, trillizos, etc. tienen la misma probabilidad de existir y, de hecho, muchos grupos de palabras simplemente nunca se usan en texto gramaticalmente correcto.

Por cierto, muchos “teclados virtuales” y “métodos de entrada” similares utilizan una forma similar de predicción de palabras para ayudar al usuario a escribir más rápido y correctamente.

Disfruta de tu incursión inicial en el aprendizaje automático probabilístico. Muchos de nosotros comenzamos a hacer este mismo tipo de ejercicios y luego, después de comprender sus limitaciones (y por qué existen esas limitaciones), “nos graduamos” a sistemas más complejos.

A2A.

Si. La complejidad no importa. Trabaja con lenguaje natural, por lo tanto, es procesamiento de lenguaje natural, y aprende de la experiencia pasada, por lo que puede considerarse aprendizaje automático.

More Interesting

¿Por qué ha sido tan efectivo OpenAI?

¿Hay alguna métrica de evaluación para chatbots?

¿Qué es un buen libro que discute los principios de la ingeniería de características, en el contexto del aprendizaje automático?

¿Es posible crear un 'ser' inteligente (AI) no una 'máquina'?

Quiero comenzar en PNL. ¿Vale la pena?

¿Cuáles son las diferencias entre los algoritmos CHAID y CART para el crecimiento de los árboles de decisión?

¿Por qué estudiar el procesamiento del lenguaje natural?

¿A qué tipo de problemas del mundo real se aplica el aprendizaje no supervisado?

¿Cómo encontrar un mentor que me ayude a construir una carrera en visión por computadora y aprendizaje profundo como investigador o académico? ¿Cuál es el camino definitivo hacia este objetivo?

¿Es posible usar 'Mínimo cuadrado (LS)' como la función objetivo cuando se trata con un problema de clasificación?

¿Ha publicado Factual.com algún trabajo de investigación (o algún asunto técnico importante) sobre las técnicas de aprendizaje automático que utilizan para rastrear y extraer de la web?

¿Hay alguna diferencia entre el modelado de temas y el clúster?

¿Mejor ejecución de trabajos de Machine Learning directamente desde Pyspark o integración de scikit-learn en, a través del método de paralelización SparkContext?

¿Soy un desarrollador de dinosaurios si no uso Github, no conozco CI / CD y docker y solo conozco el aprendizaje profundo de la palabra de moda?

¿Qué campos necesitan NLP (procesamiento del lenguaje natural) o técnicas de minería de texto?