¿Cuáles son los principios básicos del procesamiento del lenguaje natural?

Los conceptos fundamentales de PNL difieren de los de aprendizaje automático o ingeniería de software en general. Comenzaré con las cosas de nivel más bajo (lo que no significa “simple”) y luego intentaré mostrarle cómo crean un modelo de producción.

  1. Tokenizer
    Esta es una herramienta central para cada marco de PNL. Muchas técnicas de ML, ya sea que tengan como objetivo la clasificación o regresión de texto, usan n-gramas y características, producidas por ellos. Antes de comenzar a extraer funciones, debe obtener las palabras.
  2. POS-tagger y lemmatizer
    Esto es lo siguiente que necesitará, aunque, tal vez, no directamente. Las palabras pueden tomar muchas formas y las conexiones entre ellas (como verá más adelante) dependen de su POS. Los lematizadores están involucrados con mayor frecuencia cuando se necesita algo como TDM, porque naturalmente reducen la dimensionalidad y conducen a una mayor solidez general.
  3. NER
    Que significa reconocedores de entidad con nombre. Se basan en partes extraídas del discurso y gramáticas básicas, codificadas en marcos. Hay una parte separada de PNL, llamada recuperación de información, donde las personas hacen cosas realmente geniales, como una generación automatizada de informes basados ​​en varios mensajes sobre el tema. NER es ciertamente la mayor parte de esto. Si quieres entenderlo profundamente, puedes leer sobre Gramáticas sin contexto.
  4. Análisis de los sentimientos
    ¿Es esta crítica buena o mala? ¿Al crítico le gustó la película? Ponga estos 1 000 000 de comentarios en esta máquina y podrá saberlo. Hay varias formas de realizar análisis de sentimientos, algunas personas incluso usan el aprendizaje profundo (word2vec). Comienza con la extracción de características, por lo general, calcula TDM de 2-3 gramos, que contienen palabras relacionadas con sentimientos de los diccionarios (modelos semi y supervisados) o construye los diccionarios en función de la distribución de palabras en sí (modelos no supervisados ​​y semisupervisados). Luego, el TDM se usa como una matriz de características, que se alimenta a la red neuronal o SVM o cualquier algoritmo de punto final.

El proceso

Abordaré una tarea bastante conocida que se llama regresión de texto. Tienes un texto y un número asociado. El problema es que el texto en sí no es un conjunto de datos numérico, por lo que no puede usarlo directamente. Una de las formas más simples de hacerlo sería un algoritmo que puede implementar inmediatamente después de leer esta respuesta. No utiliza todo el poder de la PNL, pero proporciona una buena introducción.

  1. Transmita la prueba a minúsculas, elimine signos de puntuación, números, etc.
  2. Calcule las puntuaciones TF-IDF (consulte el artículo en Wikipedia) para cada palabra y póngalas en la tabla para que las columnas representen palabras y las filas representen documentos.
  3. Elimina las palabras con una cantidad excesiva de ceros. Lo que debe considerarse excesivo depende totalmente de usted. No te lo diré, prueba esto.
    Sugerencia: observe la distribución de “popularidad” entre las palabras.
  4. Ajustar un modelo y validarlo.

Al vacio

Hay infinitas formas de hacer que su aplicación sea más potente. Cada herramienta que describí en la primera parte de la respuesta puede proporcionarle cientos de características potenciales. Agregue una columna con una calificación de sentimiento. Extraiga todas las entidades del corpus y úselas como características cuando calcule TDM. Clusterice los documentos utilizando representaciones TF-IDF. Reduzca las palabras usando su POS – digamos, mantengamos solo sustantivos, verbos y adjetivos. ¿Qué pasará entonces?

Espero que esto brinde alguna perspectiva sobre cómo se puede aprender la PNL con fines prácticos. En cuanto a los académicos, podría leer algunos documentos de ACL, por ejemplo.

Enlaces útiles:

tf – idf
Asociación de Lingüística Computacional
word2vec: herramienta para calcular representaciones distribuidas continuas de palabras. – Alojamiento de proyectos de Google
Análisis de los sentimientos
El grupo Stanford NLP (procesamiento del lenguaje natural)

Roman ha informado de una manera muy elegante.
Solo daré algunos enlaces que lo ayudarán mucho con él.
1. Aula – Udacity
Toma de lo básico y tiene una ruta detallada para el análisis de texto. También tiene un mini proyecto en python que le dará experiencia práctica y conocimiento suficiente para continuar por su cuenta.
2. Minería de la web social, 2E
Este es un proyecto de análisis de sentimientos de Twitter y ha utilizado PNL.
3. NodeBox | Lingüística
Es una biblioteca de Python que tiene varias funciones basadas en el lenguaje.
4. Página en victoria.lviv.ua
Este es un libro que lo llevará desde cero hasta dominar la biblioteca de pitón NLTK. Es posible que deba dedicar bastante tiempo para leerlo.
5. Inicie sesión o regístrese
Un curso de edX que tiene una sección llamada análisis de texto. Explican junto con un ejemplo, que hace que la comprensión sea muy fácil.

PD: La mayoría de las cosas podrían estar en Python.
Estoy aprendiendo R y actualizaré la respuesta una vez que tenga suficiente experiencia en el procesamiento del lenguaje usando R

Este artículo es una entrevista con un experto en lingüística computacional. Es una buena lectura para los científicos de datos, investigadores, desarrolladores de software y profesionales que trabajan en medios, conocimientos del consumidor e inteligencia de mercado. Es para cualquiera que esté interesado o necesite saber sobre el procesamiento del lenguaje natural (PNL).

Una actualización interna sobre el procesamiento del lenguaje natural – Fusion Analytics World

Procesamiento del lenguaje natural gratuito y en línea para estudiantes de todo el mundo, continuando las emocionantes incursiones de Stanford en la enseñanza en línea a gran escala. Los estudiantes tienen acceso a videos de conferencias en pantalla, reciben preguntas, tareas y exámenes, reciben comentarios regulares sobre el progreso y pueden participar en un foro de discusión. Aquellos que completen con éxito el curso recibirán una declaración de logro. Impartido por los profesores Jurafsky y Manning, el plan de estudios se basa en los cursos de Stanford sobre procesamiento del lenguaje natural. Necesitará una conexión a Internet decente para acceder a los materiales del curso, pero debería poder ver los videos en su teléfono inteligente.

Aquí hay un buen artículo sobre el procesamiento del lenguaje: ¿Qué significa entender el lenguaje?

Yo diría que la PNL implica seguir los pasos.

1 – tokenización

2 – word2vec

3 – uso de cualquier algoritmo de aprendizaje profundo favorito

More Interesting

¿Cuál es el mejor instituto para la formación en ciencia de datos en Jaipur?

¿Por qué tantos datos se vuelven 'oscuros'?

¿Qué necesitaría para configurar una arquitectura de Big Data?

Tengo un dato de 50 filas de Lakh. ¿Cómo lo abro en R o Python? ¿O hay alguna otra alternativa que no sea usar Hadoop?

¿Podrá Kaggle sobrevivir a la explosión en la industria del software de análisis?

¿Cuál debería ser el contenido del curso 'Introducción al aprendizaje automático' para estudiantes de 6to semestre de CS sin conocimiento previo de ciencias de datos?

¿Qué tan grande será el mercado para el modelado de datos de crowdsourcing? ¿Qué sectores se beneficiarán más? ¿Qué tipos de expertos se ganarán la vida compitiendo en estos sitios en el futuro?

¿Será el estilo de datos un buen sitio para aprender Big Data y Hadoop?

Como posible pasante de Analista de datos, ¿cómo respondo al análisis de datos más desafiante que he hecho hasta ahora?

¿Cuál es el panorama del big data en 2016?

Siempre odié programar en idiomas de bajo nivel, ¿debería olvidarme de la ciencia de datos como una carrera potencial? Me refiero a C / C ++ en comparación con Matlab, R, Python

¿Por qué la mayoría de los científicos computacionales (p. Ej. Biólogos, astrofísicos) son malos programadores según los estándares de CS?

¿Qué es el analista de datos? ¿Qué él ha hecho?

¿Cuáles son algunos proyectos que un estudiante de ciencias de la computación puede hacer en el semestre final en el campo de big data y análisis de datos?

¿Hay alguna similitud entre el desarrollo front-end y la ciencia de datos?