Apprentissage automatique et traitement du langage naturel [fermé]

supposons que vous connaissez un étudiant qui veut étudier L'apprentissage automatique et le traitement du langage naturel.

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

Je ne cherche pas vos sujets et outils préférés, mais plutôt les normes de l'industrie.

exemple : je devine que connaître Prolog et Matlab pourrait les aider. Ils pourraient aussi vouloir étudier les Structures discrètes*, le calcul, et les statistiques.

*Graphes et des 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é discrète. Logique: calcul des propositions, calcul des prédicats du premier ordre. Raisonnement formel: déduction naturelle, résolution. Les Applications de programme correction et raisonnement automatique. Introduction aux structures algébriques en informatique.

41
demandé sur Stephano 2010-02-10 02:54:05

9 réponses

cette question liée à stackoverflow a quelques belles réponses: Quels sont les bons points de départ pour quelqu'un qui s'intéresse au traitement du langage naturel?

C'est un très grand champ. Les prérequis sont principalement la probabilité / statistique, l'algèbre linéaire, et l'informatique de base, bien que le traitement du langage naturel nécessite une formation plus intensive en informatique pour commencer (couvrant souvent certains AI de base). Concernant langages spécifiques: Lisp a été créé "comme une pensée après" pour faire de la recherche AI , tandis que Prolog (avec ses racines dans la logique formelle) est spécialement destiné au traitement du langage naturel, et de nombreux cours utiliseront Prolog, Scheme, Matlab, R, ou un autre langage fonctionnel (par exemple OCaml est utilisé pour ce cours à Cornell ) car ils sont très adaptés à ce type d'analyse.

voici quelques conseils plus spécifiques:

For Machine Learning, Stanford CS 229: Machine Learning est grand: il comprend tout, y compris les vidéos complètes des conférences (également sur iTunes), notes de cours, ensembles de problèmes, etc, et il a été très bien enseigné par Andrew Ng .

noter les conditions préalables:

les étudiants sont censés avoir les antécédents suivants: base principes et compétences en informatique, à un niveau suffisant pour écrire un programme informatique raisonnablement non trivial. Familiarité avec la théorie des probabilités de base. La familiarité avec l'algèbre linéaire de base.

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

Naturel Traitement de la langue, le NLP group à Stanford fournit de nombreuses bonnes ressources. 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 adéquate de la programmation et des structures formelles. Programmation les projets seront écrits en Java 1.5, si connaissance de Java (ou une volonté pour en savoir sur votre propre) est nécessaire. Connaissance des concepts standards l'intelligence artificielle et/ou linguistique computationnelle. Base familiarité avec la logique, les espaces vectoriels, et la probabilité.

quelques textes recommandés:

La condition computational linguistics course dans la base de la programmation informatique des structures de données et de connaissances, et utilise les mêmes livres de texte. Le cours requis sur l'intelligence artificielle est également disponible en ligne avec toutes les notes de conférence et utilise:

c'est le texte standard de L'Intelligence artificielle et il vaut également la peine d'être lu.

j'utilise R pour la machine apprendre moi-même et vraiment le recommander. Pour cela, je suggère de regarder les éléments de L'apprentissage statistique , pour lequel le texte complet est disponible en ligne gratuitement. Vous pouvez vous référer aux vues Machine Learning et Natural Language Processing sur le CRAN pour des fonctionnalités spécifiques.

54
répondu Shane 2017-05-23 11:46:30

algorithmes de chaîne de caractères, y compris les arbres de suffixe. Calcul intégral et d'algèbre linéaire. Différentes variétés de statistiques. Algorithmes d'optimisation de l'intelligence artificielle. Techniques de regroupement des données... et un million d'autres choses. C'est, d'une part, dès maintenant, en fonction de ce que vous comptez faire.

peu importe la langue dans laquelle vous optez. Python, par exemple, a le NLTK, qui est un joli paquet gratuit pour bricoler avec computational Linguistique.

5
répondu San Jacinto 2010-02-10 00:21:05

je dirais probabily & statistiques est la condition la plus importante. En particulier Gaussian Mixture Models (GMMs) et Hidden Markov Models ( HMMs ) sont très importants à la fois dans l'apprentissage machine et le traitement du langage naturel (bien sûr, ces sujets peuvent faire partie du cours s'il est introductif).

alors, je dirais que les connaissances CS de base sont également utiles, par exemple algorithmes , langues formelles et de base complexité théorie.

5
répondu 3lectrologos 2010-02-10 00:24:13

Stanford CS 224: Natural Language Processing cours qui a déjà été mentionné comprend également vidéos en ligne (en plus d'autres documents de cours). Les vidéos ne sont pas liées sur le site Web du cours, donc beaucoup de gens ne les remarqueront pas.

5
répondu michau 2010-06-04 03:03:31

Jurafsky et Martin de la Parole et du Traitement du Langage http://www.amazon.com/Speech-Language-Processing-Daniel-Jurafsky/dp/0131873210/ est très bon. Malheureusement, les projets de chapitres de la deuxième édition ne sont plus gratuits en ligne maintenant qu'ils ont été publiés: (

aussi, si vous êtes un programmeur décent, il n'est jamais trop tôt pour jouer avec les programmes NLP. NLTK vient à l'esprit (Python). Il a un livre que vous pouvez lire gratuitement en ligne qui a été publié (par OReilly je pense).

3
répondu Yuvi Masory 2010-02-10 00:26:42

Que Diriez-vous de Markdown et une Introduction à L'analyse grammaires Expression (PEG) publié par cletus sur son site cforcoding ?

ANTLR semble être un bon point de départ pour le traitement du langage naturel. Je ne suis pas expert.

2
répondu Binary Nerd 2017-05-23 12:17:11

Large question, mais je pense certainement qu'une connaissance des automates d'état finis et des modèles Markov cachés serait utile. Cela exige une connaissance de l'apprentissage statistique, de L'estimation des paramètres bayésiens et de l'entropie.

l'indexation sémantique latente est un outil couramment utilisé récemment dans de nombreux problèmes d'apprentissage machine. Certaines méthodes sont assez faciles à comprendre. Il y a un tas de projets de base potentiels.

  1. Trouver co-occurrences dans des corpus de textes de document/paragraphe/phrase de clustering.
  2. classifie le mood d'un corpus de texte.
  3. automatiquement annoter ou résumer document.
  4. trouver relations parmi des documents distincts pour générer automatiquement un" graphe " parmi les documents.

EDIT: nonnegative Matrix factorization (NMF) est un outil qui a considérablement augmenté en popularité en raison de sa simplicité et l'efficacité. Il est facile à comprendre. Je fais actuellement des recherches sur l'utilisation du NMF pour la récupération d'information musicale; le NMF s'est également révélé utile pour l'indexation sémantique latente des corps de texte. Voici un papier. PDF

2
répondu Steve Tjoa 2010-02-10 00:30:28

Prolog ne les aidera que sur le plan académique.il est également limité pour les contraintes logiques et le travail sémantique basé sur la NLP. Prolog n'est pas encore un langage convivial pour l'industrie, donc pas encore pratique dans le monde réel. Et matlab est aussi un outil académique à moins qu'ils ne fassent beaucoup de travail scientifique ou basé sur quants ils n'en auraient pas vraiment besoin. Pour commencer ils pourraient vouloir ramasser le livre "Norvig" et entrer dans le monde D'AI obtenir une mise à la terre dans tous les domaines. Comprendre quelques notions de base les probabilités, les statistiques, bases de données, système d'exploitation, structures de données, et le plus probable, de la compréhension et de l'expérience avec un langage de programmation. Ils doivent être capables de se prouver à eux-mêmes pourquoi les techniques D'IA fonctionnent et où elles ne fonctionnent pas. Ensuite, examinez plus en détail des domaines spécifiques tels que l'apprentissage automatique et la NLP. En fait, le livre de norvig sources références après chaque chapitre donc ils ont déjà beaucoup d'autres lectures disponibles. Il ya beaucoup de matériel de référence disponibles pour eux sur internet, Livres, journal papiers pour obtenir des conseils. Ne vous contentez pas de lire le livre essayez de construire des outils dans un langage de programmation puis extrapolez des résultats "significatifs". A l'algorithme d'apprentissage réellement apprendre comme prévu, si elle n'a pas de pourquoi était-ce le cas, comment pourrait-il en être fixé.

1
répondu meme 2011-05-30 09:11:11