textos texto spanish sentimientos pln natural mineria lenguaje language inteligencia español ejemplos con artificial analisis math machine-learning nlp

math - texto - Aprendizaje automático y procesamiento del lenguaje natural



pln python (9)

Supongamos que conoce a un estudiante que quiere estudiar Machine Learning y Natural Language Processing.

¿En qué asignaturas específicas de informática deberían centrarse y qué lenguajes de programación están específicamente diseñados para resolver este tipo de problemas?

No estoy buscando sus temas y herramientas favoritas, sino más bien estándares de la industria.

Ejemplo : supongo que saber Prolog y Matlab podría ayudarlos. También pueden querer estudiar Estructuras Discretas *, Cálculo y Estadísticas.

* Gráficos y árboles. Funciones: propiedades, definiciones recursivas, resolución de recurrencias. Relaciones: propiedades, equivalencia, orden parcial. Técnicas de prueba, prueba inductiva. Técnicas de conteo y probabilidad discreta. Lógica: cálculo proposicional, cálculo de predicados de primer orden. Razonamiento formal: deducción natural, resolución. Aplicaciones para programar la corrección y el razonamiento automático. Introducción a las estructuras algebraicas en informática.



Algoritmos de cadena, incluidos árboles de sufijos. Cálculo y álgebra lineal. Diversas variedades de estadísticas. Algoritmos de optimización de inteligencia artificial. Técnicas de agrupamiento de datos ... y un millón de otras cosas. Este es un campo muy activo en este momento, según lo que pretendas hacer.

Realmente no importa en qué idioma elijas operar. Python, por ejemplo, tiene el NLTK, que es un paquete gratuito bastante bueno para jugar con la lingüística computacional.


Esta pregunta relacionada con el tiene algunas buenas respuestas: ¿Cuáles son buenos puntos de partida para alguien interesado en el procesamiento del lenguaje natural?

Este es un campo muy grande. Los requisitos previos consisten principalmente en la probabilidad / estadística, el álgebra lineal y la informática básica, aunque el procesamiento del lenguaje natural requiere un conocimiento más intensivo de la informática para empezar (con frecuencia se cubre una IA básica). En cuanto a lenguajes específicos: Lisp fue creado "como una ocurrencia tardía" para hacer investigación de IA , mientras que Prolog (con sus raíces en la lógica formal) está especialmente dirigido al procesamiento del lenguaje natural, y muchos cursos usarán Prolog, Scheme, Matlab, R u otro lenguaje funcional (por ejemplo OCaml se utiliza para este curso en Cornell ) ya que son muy adecuados para este tipo de análisis.

Aquí hay algunos indicadores más específicos:

Para Machine Learning, Stanford CS 229: Machine Learning es excelente: incluye todo, incluidos videos completos de las conferencias (también en iTunes), notas de cursos, conjuntos de problemas, etc., y fue muy bien enseñado por Andrew Ng .

Tenga en cuenta los requisitos previos:

Se espera que los estudiantes tengan los siguientes antecedentes: Conocimiento de los principios y habilidades básicas de informática, a un nivel suficiente para escribir un programa informático razonablemente no trivial. Familiaridad con la teoría de la probabilidad básica. Familiaridad con el álgebra lineal básica.

El curso usa Matlab y / u Octave. También recomienda las siguientes lecturas (aunque las notas del curso en sí son muy completas):

Para el procesamiento del lenguaje natural, el grupo PNL en Stanford ofrece muchos buenos recursos. El curso introductorio Stanford CS 224: procesamiento del lenguaje natural incluye todas las conferencias en línea y tiene los siguientes requisitos previos:

Experiencia adecuada con programación y estructuras formales. Los proyectos de programación se escribirán en Java 1.5, por lo que se requiere conocimiento de Java (o la voluntad de aprender por su cuenta). Conocimiento de conceptos estándar en inteligencia artificial y / o lingüística computacional. Familiaridad básica con la lógica, los espacios vectoriales y la probabilidad.

Algunos textos recomendados son:

El curso de lingüística computacional prerrequisito requiere conocimientos básicos de programación de computadoras y estructuras de datos, y usa los mismos libros de texto. El curso de inteligencia artificial requerido también está disponible en línea junto con todas las notas y usos de la clase :

Este es el texto estándar de Inteligencia Artificial y también vale la pena leerlo.

Utilizo R para aprender a máquina y realmente lo recomiendo. Para esto, sugiero consultar Los elementos del aprendizaje estadístico , cuyo texto completo está disponible en línea de forma gratuita. Es posible que desee consultar las vistas de Machine Learning y Natural Language Processing en CRAN para obtener una funcionalidad específica.


Gran pregunta, pero ciertamente creo que sería útil conocer los autómatas de estado finitos y los modelos ocultos de Markov. Eso requiere conocimiento de aprendizaje estadístico, estimación de parámetros bayesianos y entropía.

La indexación semántica latente es una herramienta usada recientemente en muchos problemas de aprendizaje automático. Algunos de los métodos son bastante fáciles de entender. Hay muchos proyectos básicos potenciales.

  1. Encuentre co-ocurrencias en corpus de texto para agrupamiento de documento / párrafo / oración.
  2. Clasifica el estado de ánimo de un corpus de texto.
  3. Anotar o resumir automáticamente un documento.
  4. Encuentre relaciones entre documentos separados para generar automáticamente un "gráfico" entre los documentos.

EDITAR: La factorización de matriz no negativa (NMF) es una herramienta que ha crecido considerablemente en popularidad debido a su simplicidad y efectividad. Es fácil de entender Actualmente investigo el uso de NMF para la recuperación de información musical; El NMF también ha demostrado ser útil para la indexación semántica latente de los corpus de texto. Aquí hay un papel. PDF


Jurafsky y Martin Speech and Language Processing http://www.amazon.com/Speech-Language-Processing-Daniel-Jurafsky/dp/0131873210/ es muy bueno. Desafortunadamente, los borradores de los capítulos de la segunda edición ya no son gratuitos en línea ahora que han sido publicados :(

Además, si eres un programador decente, nunca es demasiado temprano para jugar con los programas de PNL. NLTK viene a la mente (Python). Tiene un libro que puedes leer gratis en línea que fue publicado (por OReilly, creo).



Yo diría que la probabilidad y la estadística es el requisito previo más importante. Especialmente los Modelos de Mezcla Gaussiana (GMM) y los Modelos Ocultos de Markov ( HMMs ) son muy importantes tanto en el aprendizaje automático como en el procesamiento del lenguaje natural (por supuesto, estos temas pueden ser parte del curso si es introductorio).

Entonces, diría que el conocimiento básico de CS también es útil, por ejemplo, Algoritmos , Lenguajes formales y Teoría básica de Complejidad .


Stanford CS 224: el curso de procesamiento del lenguaje natural que ya se mencionó incluye también videos en línea (además de otros materiales del curso). Los videos no están vinculados en el sitio web del curso, por lo que muchas personas pueden no notarlos.


Prolog solo los ayudará académicamente, también está limitado por restricciones lógicas y trabajo semántico basado en PNL. Prolog aún no es un lenguaje amigable con la industria, por lo que aún no es práctico en el mundo real. Y, matlab también es una herramienta académica a menos que estén haciendo un montón de trabajos basados ​​en científicos o en cuánticos que realmente no necesitarían mucho. Para empezar, tal vez quieran recoger el libro ''Norvig'' y entrar en el mundo de la IA para obtener una base en todas las áreas. Comprender algunas probabilidades básicas, estadísticas, bases de datos, sistemas operativos, estructuras de datos, y muy probablemente una comprensión y experiencia con un lenguaje de programación. Deben poder demostrarse a sí mismos por qué las técnicas de IA funcionan y dónde no. Luego, consulte áreas específicas, como el aprendizaje automático y la PNL, con más detalle. De hecho, el libro norvig fuentes referencias después de cada capítulo por lo que ya tienen muchas lecturas adicionales disponibles. Hay una gran cantidad de material de referencia disponible para ellos a través de Internet, libros, periódicos para orientación. No solo lea el libro intente construir herramientas en un lenguaje de programación y luego extrapolar resultados ''significativos''. Si el algoritmo de aprendizaje realmente aprendiera como se esperaba, si no fuera así, ¿por qué fue así? ¿Cómo podría solucionarse?