Apprentissage automatique et de Traitement du Langage Naturel
Suppose que vous savez un étudiant qui veut étudier l'Apprentissage automatique et de Traitement du Langage Naturel.
Quel ordinateur spécifique des sujets scientifiques doivent-ils se concentrer sur et quels langages de programmation sont spécifiquement conçus pour résoudre ces types de problèmes?
Je ne suis pas à la recherche de vos sujets préférés et d'outils, mais plutôt les normes de l'industrie.
Exemple: je suppose que la connaissance de Prolog et Matlab peut les aider. Ils sont aussi susceptibles de vouloir étude des Structures Discrètes*, le Calcul et les Statistiques.
*Graphes et des arbres. Fonctions: propriétés, définitions récursives, la résolution de récidives. Relations: propriétés, l'équivalence partielle de la commande. La preuve techniques, inductive preuve. Les techniques de comptage et de probabilité discrète. Logique: calcul propositionnel, de premier ordre prédicat de calcul. Raisonnement formel: déduction naturelle, la résolution. Les demandes pour le programme de l'exactitude et de raisonnement automatique. Introduction aux structures algébriques dans le calcul.
- Un lien (sur le sujet) la question est datascience.stackexchange.com/questions/36463/...
Vous devez vous connecter pour publier un commentaire.
Cette stackoverflow question a quelques belles réponses: Ce sont de bons points de départ pour quelqu'un qui s'intéresse au traitement de la langue naturelle?
C'est un très grand champ. Les conditions préalables consistent principalement en des probabilités/statistiques, algèbre linéaire, et la base de l'informatique, bien que le Traitement du Langage Naturel nécessite une plus intensive de l'informatique de fond pour commencer (qui couvrent souvent de base de l'IA). Concernant les langues: Lisp a été créé "après coup" pour faire de la recherche en IA, tout en Prolog (avec ses racines dans la logique formelle) est spécialement destiné au Traitement de la Langue Naturelle, et de nombreux cours va utiliser Prolog, Régime, Matlab, R, ou un autre langage fonctionnel (par exemple,OCaml est utilisé pour ce cours à l'université de Cornell) car ils sont très bien adaptés à ce type d'analyse.
Ici sont un peu plus spécifiques pointeurs:
Pour l'Apprentissage de la Machine, Stanford CS 229: l'Apprentissage de la Machine est grand: il comprend tout, y compris les vidéos des conférences (également sur iTunes), notes de cours, des ensembles de problèmes, etc., et il était très bien enseigné par Andrew Ng.
Note les conditions préalables:
Le cours utilise Matlab et/ou à l'Octave. Il recommande également à la suite de lectures (même si les notes de cours sont eux-mêmes très complet):
Pour le Traitement de la Langue Naturelle, la La PNL groupe de Stanford offre beaucoup de bonnes ressources. Le cours d'introduction Stanford CS 224: Traitement du Langage Naturel comprend toutes les conférences en ligne et les conditions préalables suivantes:
Certains textes recommandés sont:
La condition préalable computational linguistics cours la base de la programmation informatique des structures de données et de connaissances, et utilise les mêmes livres de texte. La nécessaire articificial intelligence sûr est également disponible en ligne avec toutes les notes de cours et utilisations:
C'est la norme de l'Intelligence Artificielle texte et est également la peine de lire.
- Je utiliser R pour l'apprentissage de la machine moi-même et vous le recommande vraiment. Pour cela, je suggère de regarder à Les Éléments de l'Apprentissage Statistique, dont le texte intégral est disponible en ligne gratuitement. Vous pouvez vous référer à la L'Apprentissage De La Machine et Traitement Du Langage Naturel vues sur CRAN pour des fonctionnalités spécifiques.
Ma recommandation serait soit tout ou partie (en fonction de son montant et de la zone d'intérêt) de ces:
The Oxford Handbook of Computational Linguistics:
(source: oup.com)
Fondements de la Statistique, Traitement du Langage Naturel:
Introduction à la recherche d'Information:
Chaîne d'algorithmes, y compris le suffixe arbres. Calcul intégral et d'algèbre linéaire. Différentes variétés de statistiques. L'intelligence artificielle des algorithmes d'optimisation. Données techniques de clustering... et un million d'autres choses. C'est, d'une part, dès maintenant, en fonction de ce que vous comptez faire.
Il n'a pas vraiment d'importance ce que la langue de votre choix à opérer. Python, par exemple, a la NLTK, qui est un très joli package gratuit pour bricoler avec la linguistique computationnelle.
Je dirais probabily & statistiques est la condition la plus importante. Surtout de Modèles de mélanges Gaussiens (Mgm) et Modèles de Markov Cachés (Hmm) sont très important dans l'apprentissage automatique et de traitement du langage naturel (bien sûr, ces sujets peuvent être une partie du parcours, si c'est un cours d'introduction).
Ensuite, je dirais de base CS de connaissances est également utile, par exemple Algorithmes, Langages Formels et de base Complexité théorie.
Stanford CS 224: Traitement du Langage Naturel qui a été déjà mentionné comprend également vidéos en ligne (en plus des autres documents de cours). Les vidéos ne sont pas liés sur le site du cours, de sorte que beaucoup de gens ne les remarquent pas.
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, le projet de deuxième édition, les chapitres ne sont plus en ligne gratuit maintenant qu'il a été publié 🙁
Aussi, si vous êtes un décent programmeur, il n'est jamais trop tôt pour jouet autour de avec la PNL programmes. NLTK vient à l'esprit (Python). Il a un livre que vous pouvez lire en ligne gratuit qui a été publié (par OReilly je pense).
Comment sur Markdown et une Introduction à l'Analyse de l'Expression des Grammaires (PEG) posté par cletus sur son site cforcoding?
ANTLR semble être un bon endroit pour commencer pour le traitement de la langue naturelle. Je ne suis pas expert mais.
Vaste question, mais je crois certainement qu'une connaissance des automates d'états finis et les modèles de Markov cachés serait utile. Qui nécessite des connaissances de l'apprentissage statistique, Bayesian estimation des paramètres, et de l'entropie.
D'indexation sémantique latente est souvent encore récemment outil utilisé dans beaucoup de machine de problèmes d'apprentissage. Certaines de ces méthodes sont assez faciles à comprendre. Il y a un tas de potentiels projets de base.
EDIT: Positif de la factorisation de matrice (NMF) est un outil qui a considérablement augmenté en popularité en raison de sa simplicité et de l'efficacité. Il est facile à comprendre. J'ai actuellement une recherche sur l'utilisation de NMF pour la musique, la recherche de l'information; NMF a montré pour être utile pour l'indexation sémantique latente de corpus de textes, aussi bien. Voici un papier. PDF
Prolog va seulement aider eux sur le plan scolaire, il est également limitée pour la logique des contraintes et de la sémantique de la PNL base de travail. Prologue n'est pas encore une industrie d'un langage, donc pas encore de pratique dans le monde réel. Et, matlab est aussi un universitaire en fonction de l'outil, sauf s'ils font beaucoup de scientifiques ou quants base de travail qu'ils n'ont pas vraiment besoin de beaucoup pour elle. Le début de la ils veulent ramasser la " Norvig livre et entrez dans le monde de l'IA obtenir une mise à la terre dans tous les domaines. Comprendre quelques notions de 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 en mesure de prouver à eux-mêmes pourquoi l'IA des techniques de travail et où ils ne le font pas. Ensuite, regardez à des domaines spécifiques comme l'apprentissage de la machine et de la PNL dans le détail. En fait, la norvig livre les sources de références après chaque chapitre, de sorte qu'ils ont déjà beaucoup de lecture disponibles. Il y a beaucoup de documents de référence disponibles sur internet, des livres, des articles dans des journaux pour des conseils. Ne vous contentez pas de lire le livre d'essayer de construire des outils dans un langage de programmation, puis extrapoler 'parlant' résultats. 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é.