Quels sont les bons points de départ pour une personne intéressée par le traitement du langage naturel? [fermé]

StackOverflow https://stackoverflow.com/questions/212219

  •  03-07-2019
  •  | 
  •  

Question

Question

J'ai donc récemment proposé de nouveaux projets possibles qui devraient traiter de la "signification" du texte soumis et généré par les utilisateurs.

Le traitement du langage naturel est le domaine qui traite de ce type de problèmes, et après recherche initiale, j’ai trouvé des hub OpenNLP et des collaborations universitaires telles que le projet . Et stackoverflow a ceci .

Si quelqu'un pouvait me mettre en contact avec de bonnes ressources, des articles de recherche, des textes d'introduction aux apis, je serais plus heureux qu'un enfant de 6 ans ouvrant ses cadeaux de Noël!

Mettre à jour

Grâce à l'une de vos recommandations, j'ai trouvé le opencyc ( 'le plus grand et le plus base de connaissances générale complète et moteur de raisonnement de bon sens '). Encore plus étonnant encore, il existe un projet qui est une version distillée d’opencyc appelée UMBEL . Il contient des données sémantiques en syntaxe rdf / owl / skos n3.

Je suis également tombé sur antlr , un générateur d'analyse syntaxique pour 'construire des outils de reconnaissance, des interprètes, des compilateurs. , et traducteurs des descriptions grammaticales '.

Et il ya une question que je me pose, qui énumère des tonnes de données libres et ouvertes .

Merci à la communauté stackoverflow!

Était-ce utile?

La solution

C’est difficile, la PNL est un domaine beaucoup plus vaste que la plupart des gens ne le pensent. Fondamentalement, la langue peut être divisée en plusieurs catégories, ce qui vous obligera à apprendre des choses totalement différentes.

Avant de commencer, laissez-moi vous dire que je doute que vous ayez un succès notable (en tant que professionnel, au moins) sans avoir obtenu un diplôme dans un domaine (étroitement lié). Il y a beaucoup de théorie impliquée, la plupart sont des choses sèches et difficiles à apprendre. Vous aurez besoin de beaucoup d’endurance et surtout de temps.

Si la signification du texte vous intéresse, eh bien, c’est la prochaine grande chose. On prévoit que les moteurs de recherche sémantiques lanceront le Web 3.0, mais nous sommes encore loin d'être là. L’extraction de la logique d’un texte dépend de plusieurs étapes:

  • Tokenization, Chunking
  • L’ambiguïté au niveau lexical (le temps passe comme une flèche, mais les fruits volent comme une banane.)
  • Analyse syntaxique
  • Analyse morphologique (temps, aspect, cas, nombre, etc.)

Une petite liste, qui me vient à l’esprit. Il y a plus :-), et beaucoup plus de détails à chaque point. Par exemple, lorsque je dis "analyser", qu'est-ce que c'est? Il existe de nombreux algorithmes d'analyse syntaxiques différents, et il en existe autant que de formalismes d'analyse syntaxique. Les Grammaire adjacente aux arbres et Grammaire de structure de phrase dirigée par la tête . Mais les deux sont à peine utilisés sur le terrain (pour le moment). Habituellement, vous aurez affaire à une approche générative à moitié cuite et vous devrez effectuer une analyse morphologique vous-même.

Aller de là à la sémantique est un grand pas. Une interface syntaxe / sémantique dépend à la fois du cadre sémantique syntaxique et utilisé, et il n’existe pas encore de solution de travail unique. Du côté sémantique, il y a la sémantique générative classique, puis il y a Théorie de la représentation du discours , la sémantique dynamique , et bien plus encore. Même le formalisme logique sur lequel tout est basé n'est toujours pas bien défini. Certains disent qu'il faut utiliser la logique du premier ordre, mais cela ne semble guère suffisant; Ensuite, il y a une logique d'intension, telle qu'elle est utilisée par Montague, mais cela semble trop complexe et impossible à calculer. Il existe également une logique dynamique (Groenendijk et Stokhof ont été les pionniers dans ce domaine. Très bien!) Et très récemment, cet été, Jeroen Groenendijk a présenté un nouveau formalisme, Inquisitive Sémantique , également très intéressant.

Si vous souhaitez vous initier à un niveau très simple, lisez Blackburn et Bos ( 2005) , c’est formidable, et l’introduction de facto à la sémantique computationnelle! J'ai récemment étendu leur système à la théorie de la partition des questions (la réponse à la question est une bête!), Comme proposé par Groenendijk et Stokhof (1982), mais malheureusement, la théorie a une complexité de O (n²) sur le domaine des individus. . Ce faisant, j’ai trouvé que la mise en œuvre de B & B était un peu euh… hack… par endroits. Néanmoins, cela va vraiment, vraiment vous aider à plonger dans la sémantique informatique, et c'est toujours une vitrine très impressionnante de ce qui peut être fait. En outre, ils méritent des points supplémentaires pour appliquer une grammaire basée sur Pulp Fiction (le film).

Et pendant que j'y suis, prenez Prolog. De nombreuses recherches en sémantique informatique sont basées sur Prolog. Apprendre le prologue maintenant! est une bonne introduction. Je peux également recommander "The Art of Prolog". et "Prolog Programming in Depth" de Covington et "Traitement du langage naturel pour les programmeurs Prolog", le premier étant disponible gratuitement en ligne.

Autres conseils

Chomsky n’est absolument pas la bonne source à utiliser pour la PNL (et il en dirait autant lui-même avec force) - voir: Méthodes statistiques et linguistique " par Abney.

Jurafsky et Martin, mentionnés ci-dessus, constituent une référence standard, mais je préfère moi-même Manning et Schütze . . Si vous êtes sérieux au sujet de la PNL, vous voudrez probablement lire les deux. en ligne, des vidéos de l'un des cours proposés par Manning sont disponibles. / a>.

Si vous maîtrisez Prolog jusqu'au chapitre DCG dans Apprendre Prolog maintenant! Comme mentionné par M. Dimitrov ci-dessus, vous aurez un bon début pour introduire des sémantiques dans votre système, car Prolog vous donne un moyen très simple de maintenir une base de données de connaissances et de croyances, qui peut être mise à jour par le biais de questions-réponses.

En ce qui concerne la littérature, j'ai une recommandation majeure à vous faire: épuisez-vous et achetez Traitement de la parole et du langage par Jurafsky & amp; Martin. C’est à peu près le livre sur la PNL (le premier chapitre est disponible en ligne); utilisé dans des milliards de cours universitaires mais également très lisible par les non-linguistes et orienté vers la pratique, tout en approfondissant les problèmes linguistiques. Je ne peux vraiment pas le recommander assez. Les chapitres 17, 18 et 21 semblent être ce que vous cherchez (14, 15 et 18 dans la première édition); ils vous montrent la notation lambda simple qui se traduit très bien en DCG Prolog avec des fonctionnalités.

Oh, au fait, pour avoir les maîtres en linguistique; si vous aimez la sémantique NL, je vous conseillerais plutôt de suivre tous les cours relatifs à l'IA que vous pouvez trouver (bien que tous les cours traitent de la sémantique linguistique "simple", de la logique, de la sémantique logique, DRT , LFG / l'analyse HPSG / CCG, NL, la théorie linguistique formelle, etc. ne feraient pas de mal ...)

La lecture de la littérature originale de Chomsky n’est pas vraiment utile; pour autant que je sache, aucune implémentation actuelle ne correspond à ses théories, tout son contenu utile est à peu près englobé dans d'autres théories (et quiconque reste près des linguistes peu de temps absorber la connaissance de Chomsky par osmose).

Je vous recommande vivement de jouer avec NLTK et de lire le Livre NLTK . Le NLTK est très puissant et facile à intégrer.

Vous pouvez essayer de lire un peu la grammers structurés par une phrase , qui est essentiellement mathématique. derrière beaucoup de traitement de la langue. En réalité, il n’est pas si lourd, car il est largement basé sur la théorie des ensembles et des graphes. Je l'ai étudiée il y a bien des lunes dans le cadre d'un cours de mathématiques discret, et je suppose qu'il existe de nombreuses références valables à ce stade.

Modifier: Pas autant que prévu sur Google, bien que celui-ci ressemble à une bonne source d’apprentissage.

L’un des premiers explorateurs de la PNL est Noam Chomsky; il a écrit de petits livres sur le sujet dans les années 50 à 70. Vous pouvez trouver cette lecture attrayante.

Cycorp a une brève description de la signification de leur base de connaissances Cyc. à partir de phrases.

En utilisant une base de connaissances massive de faits communs, le système peut déterminer l'analyse la plus logique d'une phrase.

Pour commencer par les blocs de construction, il est plus simple de consulter la documentation d’un paquetage qui tente de le faire. Je recommanderais le 1 de Python [Natural Language Toolkit (NLTK)], en particulier à cause de leur livre bien écrit et gratuit , qui est rempli d'exemples. Cela ne vous mènera pas à ce que vous voulez (ce qui est un problème difficile pour l'IA), mais cela vous donnera une bonne assise. NLTK a des analyseurs syntaxiques, des chunkers, des grammaires sans contexte, et plus encore.

C’est vraiment un travail difficile. Je commencerais par obtenir au moins une maîtrise en linguistique, puis un doctorat en informatique, axé sur la PNL.

Le problème est que la plupart d'entre nous ne comprenons pas ce qu'est la langue. Et sans cette compréhension, il est extrêmement difficile de mettre en œuvre une solution.

D'autres commentaires donnent quelques lectures, qui sont probablement bonnes si vous voulez commencer à jouer avec un petit sous-ensemble du problème, mais pour arriver à une solution vraiment robuste, alors il n'y a pas de raccourci. Vous avez besoin de connaissances académiques dans les deux disciplines.

Une introduction lisible très agréable est The Language Instinct de Steven Pinker. Il entre dans la matière de Chomsky et raconte également des histoires intéressantes sous l'angle de la biologie de l'évolution. Cela vaut peut-être la peine de commencer par quelque chose comme ça avant de plonger dans les papiers de Chomsky et les travaux connexes, si vous êtes novice dans le sujet.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top