43 votes

Apprentissage automatique et traitement du langage naturel

Supposons que vous connaissiez un étudiant qui souhaite étudier l'apprentissage automatique et le traitement du langage naturel.

Quelles sont les matières informatiques spécifiques sur lesquelles ils devraient se concentrer et quels sont les langages de programmation spécifiquement conçus pour résoudre ces types de problèmes ?

Je ne recherche pas vos sujets et outils préférés, mais plutôt des normes industrielles.

Exemple : Je suppose que le fait de connaître Prolog et Matlab pourrait les aider. Ils pourraient également vouloir étudier les structures discrètes*, le calcul et les statistiques.

*Graphes et arbres. Fonctions : propriétés, définitions récursives, résolution de récurrences. Relations : propriétés, équivalence, ordre partiel. Techniques de preuve, preuve inductive. Techniques de comptage et probabilités discrètes. Logique : calcul propositionnel, calcul des prédicats du premier ordre. Raisonnement formel : déduction naturelle, résolution. Applications à la correction des programmes et au raisonnement automatique. Introduction aux structures algébriques en informatique.

0 votes

Une question connexe (sur le sujet) est la suivante datascience.stackexchange.com/questions/36463/

54voto

Shane Points 40885

Cette question connexe de stackoverflow contient des réponses intéressantes : Quels sont les bons points de départ pour une personne intéressée par le traitement du langage naturel ?

Il s'agit d'un domaine très vaste. Les prérequis consistent principalement en probabilités/statistiques, algèbre linéaire et informatique de base, bien que le traitement des langues naturelles nécessite une formation informatique plus intensive au départ (couvrant souvent quelques bases d'IA). En ce qui concerne les langages spécifiques : Lisp a été créé "La recherche sur l'intelligence artificielle n'est qu'un pis-aller tandis que Prolog (qui trouve ses racines dans la logique formelle) est particulièrement destiné au traitement du langage naturel, et de nombreux cours utilisent Prolog, Scheme, Matlab, R, ou un autre langage fonctionnel (par ex. OCaml est utilisé pour ce cours à Cornell ) car ils sont très adaptés à ce type d'analyse.

Voici quelques conseils plus spécifiques :

Pour l'apprentissage automatique, Stanford CS 229 : Apprentissage automatique est excellent : il comprend tout, y compris les vidéos complètes des cours (également disponibles sur iTunes), les notes de cours, les séries de problèmes, etc. Andrew Ng .

Notez les conditions préalables :

Les étudiants doivent posséder les connaissances suivantes : Connaissance des des principes et des compétences de base en informatique, à un niveau suffisant pour écrire un programme informatique raisonnablement non trivial. Familiarité avec la théorie de base des probabilités. Familiarité avec l'algèbre linéaire de base.

Le cours utilise Matlab et/ou Octave. Il recommande également les lectures suivantes (bien que les notes de cours elles-mêmes soient très complètes) :

Pour le traitement du langage naturel, le Groupe PNL à Stanford fournit de nombreuses ressources de qualité. Le cours d'introduction Stanford CS 224 : Traitement du langage naturel comprend toutes les conférences en ligne et a les prérequis suivants :

Expérience suffisante en matière de p et des structures formelles. Les projets Les projets de programmation seront écrits en Java 1.5, la connaissance de Java (ou la volonté d'apprendre par soi-même) est donc requise. (ou une volonté d'apprendre par soi-même) est requise. Connaissance des concepts standards en intelligence artificielle et/ou linguistique informatique. Connaissance de base familiarité avec la logique, les espaces vectoriels et les probabilités.

Certains textes sont recommandés :

La condition préalable cours de linguistique informatique nécessite des connaissances de base en programmation informatique et en structures de données, et utilise les mêmes manuels. Le cours d'intelligence artificielle requis est également disponible en ligne ainsi que toutes les notes de cours et les utilisations :

Il s'agit du texte standard sur l'intelligence artificielle, qui mérite également d'être lu.

J'utilise R pour l'apprentissage automatique et je le recommande vivement. Pour cela, je suggérerais de regarder Les éléments de l'apprentissage statistique dont le texte intégral est disponible gratuitement en ligne. Vous pouvez vous référer à la Apprentissage automatique y Traitement du langage naturel sur le CRAN pour des fonctionnalités spécifiques.

7voto

Fabian Steeg Points 24261

Je recommanderais l'un ou l'autre ou l'ensemble (en fonction de sa quantité et de son domaine d'intérêt) de ces éléments :

The Oxford Handbook of Computational Linguistics (Manuel d'Oxford sur la linguistique informatique) :

The Oxford Handbook of Computational Linguistics
(source : <a href="http://ukcatalogue.oup.com/images/en_US/covers/medium/9780199276349_140.jpg" rel="nofollow noreferrer">oup.com </a>)

Fondements du traitement statistique du langage naturel :

Foundations of Statistical Natural Language Processing

Introduction à la recherche d'informations :

Introduction to Information Retrieval

5voto

3lectrologos Points 4673

Je dirais probabilités et statistiques est la condition préalable la plus importante. En particulier, les Modèles de mélange gaussien (MGM) et Modèles de Markov cachés ( HMMs ) sont très importants à la fois pour l'apprentissage automatique et le traitement du langage naturel (bien entendu, ces sujets peuvent faire partie du cours s'il s'agit d'un cours d'introduction).

Ensuite, je dirais que des connaissances de base en informatique sont également utiles, par exemple Algorithmes , Langages formels et de base Complexité théorie.

5voto

San Jacinto Points 6109

Algorithmes de chaînes de caractères, y compris les arbres de suffixe. Calcul et algèbre linéaire. Diverses variétés de statistiques. Algorithmes d'optimisation de l'intelligence artificielle. Techniques de regroupement de données... et un million d'autres choses. Il s'agit d'un domaine très actif à l'heure actuelle, en fonction de ce que vous avez l'intention de faire.

La langue dans laquelle vous choisissez d'opérer n'a pas vraiment d'importance. Python, par exemple, dispose du NLTK, qui est un package gratuit très intéressant pour bricoler avec la linguistique informatique.

5voto

michau Points 106

Stanford CS 224 : Traitement du langage naturel Le cours qui a déjà été mentionné comprend également vidéos en ligne (en plus des autres supports de cours). Les vidéos ne sont pas liées au site web du cours, de sorte que de nombreuses personnes peuvent ne pas les remarquer.

0 votes

+1 Wow, vieille question, mais merci pour la mise à jour.

0 votes

Il n'y a plus de vidéos sur ce lien, @michau.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X