Livres en anglais

7 livres et 8 critiques, dernière mise à jour le 26 septembre 2017 , note moyenne : 4.9

  1. Ant Colony Optimization
  2. A Field Guide to Genetic Programming
  3. Essentials of Metaheuristics
  4. Evolved to Win
  5. Natural Language Processing with Python
  6. Introduction to Evolutionary Computing
  7. Purely Functional Data Structures
couverture du livre Ant Colony Optimization

Note 5 drapeau
Détails du livre
Sommaire
Critiques (1)
 
 

Ant Colony Optimization

de
Public visé : Intermédiaire

Résumé de l'éditeur

The complex social behaviors of ants have been much studied by science, and computer scientists are now finding that these behavior patterns can provide models for solving difficult combinatorial optimization problems. The attempt to develop algorithms inspired by one aspect of ant behavior, the ability to find what computer scientists would call shortest paths, has become the field of ant colony optimization (ACO), the most successful and widely recognized algorithmic technique based on ant behavior. This book presents an overview of this rapidly growing field, from its theoretical inception to practical applications, including descriptions of many available ACO algorithms and their uses. The book first describes the translation of observed ant behavior into working optimization algorithms. The ant colony metaheuristic is then introduced and viewed in the general context of combinatorial optimization. This is followed by a detailed description and guide to all major ACO algorithms and a report on current theoretical findings. The book surveys ACO applications now in use, including routing, assignment, scheduling, subset, machine learning, and bioinformatics problems. AntNet, an ACO algorithm designed for the network routing problem, is described in detail. The authors conclude by summarizing the progress in the field and outlining future research directions. Each chapter ends with bibliographic material, bullet points setting out important ideas covered in the chapter, and exercises. Ant Colony Optimization will be of interest to academic and industry researchers, graduate students, and practitioners who wish to learn how to implement ACO algorithms.

Édition : MIT Press - 319 pages , 1re édition, 4 juin 2004

ISBN10 : 0262042193 - ISBN13 : 9780262042192

Commandez sur www.amazon.fr :

35.85 € TTC (prix éditeur 40.01 € TTC)
  • Chapter 1. From Real to Artificial Ants
  • Chapter 2. The Ant Colony Optimization Metaheuristic
  • Chapter 3. Ant Colony Optimization Algorithms for the Traveling Salesman Problem
  • Chapter 4. Ant Colony Optimization Theory
  • Chapter 5. Ant Colony Optimization for NP-Hard Problems
  • Chapter 6. AntNet: An ACO Algorithm for Data Network Routing
  • Chapter 7. Conclusions and Prospects for the Future
Critique du livre par la rédaction Franck Dernoncourt le 1er juin 2012
Écrit par Marco Dorigo, fondateur des algorithmes de colonie de fourmis, et Thomas Stützle, expert en optimisation, ce livre est une des références dans le domaine des algorithmes de colonie de fourmis dont il donne un aperçu très complet tout en restant accessible pour les néophytes. De bonnes notions en mathématiques discrètes seront néanmoins nécessaires pour bien comprendre certains passages, l'attachement à la formalisation mathématique étant une des caractéristiques de l'ouvrage.

Le premier chapitre met en exergue les liens entre fourmis réelles et artificielles en s'appuyant sur les interactions entre entomologie, mathématiques et informatique. Le deuxième chapitre situe les algorithmes de colonie de fourmis par rapport aux autres métaheuristiques ainsi qu'aux différentes catégories de problèmes auxquels ils s'appliquent, en l'occurrence des problèmes classiques d'optimisation combinatoire, fournissant ainsi aux lecteurs une superbe vue d'ensemble. Le troisième chapitre présente un exemple simple et détaillé d'application des algorithmes de colonie de fourmis au problème du voyageur de commerce ; diverses variantes de l'algorithme sont exposées et des ajouts majeurs, nommément la parallélisation et la recherche locale, sont introduits.

Ces trois premiers chapitres se lisent facilement et avec le chapitre de conclusion donnent les idées principales. Les autres chapitres sont essentiellement des chapitres d'approfondissement. Le quatrième chapitre explore la théorie sous-jacente aux algorithmes de colonie de fourmis, en détaillant entre autres choses les preuves de convergence et en introduisant le concept de recherche par modèle, par opposition à la recherche par solutions. Il n'existe cependant aucune preuve mathématique sur les vitesses de convergence, absence malheureusement assez répandue dans le monde des métaheuristiques en dépit des tentatives. Le cinquième chapitre est un catalogue de problèmes NP-difficiles auxquels ont été appliqués les algorithmes de colonie de fourmis : la mise en place de l'algorithme, autrement dit la définition de la correspondance entre le problème traité et la métaheuristique, puis les résultats sont présentés pour chaque problème. Le sixième chapitre se concentre sur un problème précis, le routage de données, et se penche sur les similarités avec l'apprentissage par renforcement et la méthode de Monte-Carlo, comparaison très pertinente. Les auteurs terminent sur un chapitre de conclusions et perspectives très diverses allant de la parallélisation algorithmique à la division du travail au sein des agents computationnels inspirée par la nature.

En conclusion, ce livre mérite tout à fait son titre de référence du domaine. Ses explications détaillées, aussi bien expérimentales que théoriques, ainsi que ses nombreuses ouvertures rendent sa lecture palpitante. Chaque chapitre s'achève par une très courte bibliographie et des exercices orientés informatique ou mathématiques. À noter que l'ouvrage date toutefois de 2004, ce qui est ancien étant donné la vitesse d'évolution de la recherche dans le domaine des métaheuristiques : il faut donc l'utiliser pour acquérir des bases solides et non comme un état de l'art exhaustif de la recherche actuelle.


couverture du livre A Field Guide to Genetic Programming

Note 5 drapeau
Détails du livre
Sommaire
Critiques (1)
3 commentaires
 
 

A Field Guide to Genetic Programming

de
Public visé : Intermédiaire

Résumé de l'éditeur

Genetic programming (GP) is a systematic, domain-independent method for getting computers to solve problems automatically starting from a high-level statement of what needs to be done. Using ideas from natural evolution, GP starts from an ooze of random computer programs, and progressively refines them through processes of mutation and sexual recombination, until high-fitness solutions emerge. All this without the user having to know or specify the form or structure of solutions in advance. GP has generated a plethora of human-competitive results and applications, including novel scientific discoveries and patentable inventions. This unique overview of this exciting technique is written by three of the most active scientists in GP.

Édition : Lulu - 252 pages , 1re édition, 26 mars 2008

ISBN10 : 1409200736 - ISBN13 : 9781409200734

Commandez sur www.amazon.fr :

11.54 € TTC (prix éditeur 13.82 € TTC)
  • Chapter 1. Introduction
  • Part I: Basics
    • Chapter 2. Representation, Initialisation and Operators in Tree-based GP
    • Chapter 3. Getting Ready to Run Genetic Programming
    • Chapter 4. Example Genetic Programming Run
  • Part II: Advanced Genetic Programming
    • Chapter 5. Alternative Initialisations and Operators in Tree-based GP
    • Chapter 6. Modular, Grammatical and Developmental Tree-based GP
    • Chapter 7. Linear and Graph Genetic Programming
    • Chapter 8. Probabilistic Genetic Programming
    • Chapter 9. Multi-objective Genetic Programming
    • Chapter 10. Fast and Distributed Genetic Programming
    • Chapter 11. GP Theory and its Applications
  • Part III: Practical Genetic Programming
    • Chapter 12. Applications
    • Chapter 13. Troubleshooting GP
    • Chapter 14. Conclusions
  • Part IV: Tricks of the Trade
    (list]
  • Appendix A. Resources
  • Appendix B. TinyGP
[/list]
Critique du livre par la rédaction Franck Dernoncourt le 1er juin 2012
Ce livre est une excellente introduction à la programmation génétique. En seulement 150 pages sans compter la bibliographie fournie, il offre une vue complète du domaine et se lit très facilement.

Après avoir présenté les bases de la programmation génétique, les auteurs exposent dans un chapitre entier un exemple simple pour illustrer concrètement le déroulement d'un tel algorithme. Les concepts avancés sont ensuite présentés de façon assez développée pour pouvoir bien les comprendre, mais pas trop pour ne pas noyer le lecteur dans les détails, le livre étant avant tout une introduction.

Chose intéressante, le livre propose également un chapitre théorique, ce qui est appréciable car la programmation génétique est souvent abordée sous un angle empirique, à défaut d'un modèle mathématique sous-jacent très développé, nonobstant les tentatives. Cette approche théorique permet en particulier de donner une piste d'explication mathématique des méthodes pour contrôler le phénomène de bloat, phénomène correspondant à l'augmentation de la taille du code des solutions sans amélioration de leur fitness, ce qui constitue un des problèmes majeurs de la programmation génétique à l'heure actuelle. Les auteurs poursuivent en donnant un aperçu synoptique des applications de la programmation génétique, ce qui permet de voir concrètement dans quels domaines elle a été mise en œuvre.
Le pénultième chapitre est consacré aux conseils pratiques pour mettre en place et mener à bien des expérimentations. C'est un concentré de l'expérience des auteurs, qu'il sera très utile d'avoir sous la main surtout lors des premières expérimentations. Enfin, les auteurs concluent l'ouvrage par une liste de ressources ainsi qu'un exemple de code source implémentant une expérimentation de programmation génétique.
Je conseille donc ce livre à toute personne souhaitant une introduction rapide ou un
e révision sur la programmation génétique. À noter que, contrairement à d'autres ouvrages tels Essentials of Metaheuristics et Introduction to Evolutionary Computing, ce livre ne permet pas de situer la programmation génétique par rapport aux autres algorithmes d'optimisation, mais se concentre exclusivement sur la programmation génétique. Également, aucun exercice n'est proposé.

Le livre est téléchargeable gratuitement à l'adresse http://www.gp-field-guide.org.uk (licence CC-BY-NC-ND).




 Poster une réponse

Avatar de Djug Djug - Expert éminent sénior https://www.developpez.com
le 12/06/2012 à 10:40
Bonjour,

La rédaction DVP a lu pour vous le livre "A Field Guide to Genetic Programming" de Riccardo Poli, William B. Langdon et Nicholas Freitag McPhee



Citation Envoyé par Résumé de l'éditeur
Genetic programming (GP) is a systematic, domain-independent method for getting computers to solve problems automatically starting from a high-level statement of what needs to be done. Using ideas from natural evolution, GP starts from an ooze of random computer programs, and progressively refines them through processes of mutation and sexual recombination, until high-fitness solutions emerge. All this without the user having to know or specify the form or structure of solutions in advance. GP has generated a plethora of human-competitive results and applications, including novel scientific discoveries and patentable inventions. This unique overview of this exciting technique is written by three of the most active scientists in GP.

L'avez-vous lu ? Comptez-vous le lire bientôt ?

Quel est votre avis ?

Exprimez-vous !! Votre avis nous intéresse...
Avatar de rmaker rmaker - Membre expérimenté https://www.developpez.com
le 31/08/2012 à 14:30
Citation Envoyé par Djug Voir le message
L'avez-vous lu ? Comptez-vous le lire bientôt ?

Quel est votre avis ?

Exprimez-vous !! Votre avis nous intéresse...
Lu et beaucoup aimé. Il pose de très bonnes questions (en peu de pages), notamment le code généré inutile (çà a un nom, mais je ne m'en rappelle plus). Il commence par reprendre rapidement ce que sont les algorithmes génétiques dans le cadre général. Par rapport au livre "Linear Genetic Programming", il est vraiment beaucoup plus facile d'accès et lisible.

Bref, je recommande.
Avatar de Franck Dernoncourt Franck Dernoncourt - Membre émérite https://www.developpez.com
le 03/09/2012 à 18:42
2012 - Free Book - Moshe Sipper - Evolved to Win
http://algo.developpez.com/livres/#L9781470972837

3.2.6 Explicitly defined introns

In natural living systems not all DNA has a phenotypic effect. This non-coding DNA,
sometimes referred to as junk DNA, is prevalent in virtually all eukaryotic genomes.
In GP, so-called introns are areas of code that do not affect survival and reproduction
(usually this can be replaced with “do not affect fitness”). In the context of tree-based
GP the term “areas of code” applies to subtrees.

Introns occur naturally in GP, provided that the function and terminal sets allow
for it. As bloat progresses, the number of nodes that are part of introns tends to
increase. Luke [117] distinguished two types of subtrees that are sometimes referred
to as introns in the literature:
• Unoptimized code: Areas of code that can be trivially simplified without modifying
the individual’s functionality, but not replaced with just anything.
• Inviable code: Subtrees that cannot be replaced by anything that can possibly
change the individual’s functionality.

Luke focused on inviable introns and we will do the same because unoptimized
code seems to cast too wide a net and wander too far from the original meaning of
the term “intron” in biology. We also make another distinction between two types of
inviable-code introns:
• Live-code introns: Subtrees that cannot be replaced by anything that can possibly
change the individual’s functionality, but may still generate code that will run
at some point.
• Dead-code introns: Subtrees whose code is never run.
couverture du livre Essentials of Metaheuristics

Note 5 drapeau
Détails du livre
Sommaire
Critiques (1)
3 commentaires
 
 

Essentials of Metaheuristics

de
Public visé : Intermédiaire

Résumé de l'éditeur

Interested in the Genetic Algorithm? Simulated Annealing? Ant Colony Optimization? Essentials of Metaheuristics covers these and other metaheuristics algorithms, and is intended for undergraduate students, programmers, and non-experts. The book covers a wide range of algorithms, representations, selection and modification operators, and related topics, and includes 70 figures and 133 algorithms great and small. Algorithms include: Gradient Ascent techniques, Hill-Climbing variants, Simulated Annealing, Tabu Search variants, Iterated Local Search, Evolution Strategies, the Genetic Algorithm, the Steady-State Genetic Algorithm, Differential Evolution, Particle Swarm Optimization, Genetic Programming variants, One- and Two-Population Competitive Coevolution, N-Population Cooperative Coevolution, Implicit Fitness Sharing, Deterministic Crowding, NSGA-II, SPEA2, GRASP, Ant Colony Optimization variants, Guided Local Search, LEM, PBIL, UMDA, cGA, BOA, SAMUEL, ZCS, and XCS.

Édition : Lulu.com - 230 pages , 1re édition, 5 mars 2011

ISBN10 : 0557148596 - ISBN13 : 9780557148592

Commandez sur www.amazon.fr :

14.72 € TTC (prix éditeur 18.66 € TTC)
  • Chapter 0. Introduction
  • Chapter 1. Gradient-based Optimization
  • Chapter 2. Single-State Methods
  • Chapter 3. Population Methods
  • Chapter 4. Representation
  • Chapter 5. Parallel Methods
  • Chapter 6. Coevolution
  • Chapter 7. Multiobjective Optimization
  • Chapter 8. Combinatorial Optimization
  • Chapter 9. Optimization by Model Fitting
  • Chapter 10. Policy Optimization
  • Chapter 11. Miscellany
Critique du livre par la rédaction Franck Dernoncourt le 1er mai 2012
Ce livre était à l'origine une compilation de notes de cours pour des étudiants au niveau licence. Son auteur, Sean Luke, chercheur et professeur à l'Université George Mason, a décidé de le publier sous licence CC-BY-ND, donc disponible gratuitement ici afin de le rendre accessible au plus grand nombre. Sean Luke est également un des auteurs de ECJ, une bibliothèque open source parmi les plus utilisées pour les algorithmes évolutionnistes en Java : le livre peut donc être considéré comme son pendant théorique.

Comme le titre l'indique, le livre traite des métaheuristiques, en se focalisant sur les algorithmes évolutionnistes. Une des caractéristiques appréciables du livre réside dans le fait que l'auteur explique très clairement l'enchaînement et les liens entre les différentes métaheuristiques, en soulignant notamment leurs limites ayant conduit à l'élaboration de nouvelles métaheuristiques, ce qui permet au lecteur de sentir l'évolution de la recherche dans ce domaine. Il montre ainsi l'enchaînement entre l'algorithme du gradient, le recuit simulé, la recherche tabou, les algorithmes évolutionnistes, l'optimisation par essaims particulaires, GRASP et l'algorithme de colonies de fourmis. L'avant-dernier chapitre introduit à l'optimisation de stratégies (policy optimization), en présentant entre autres l'apprentissage par renforcement et les learning classifier systems. Le dernier chapitre intitulé "Miscellany" est une mine d'or contenant des conseils très importants et probablement pas assez respectés sur la méthodologie à suivre pour conduire des expériences ainsi qu'un ensemble de tests usuels pour évaluer une métaheuristique, puis se conclut sur une liste de ressources très utiles (sites Web, livres, librairies, conférences, mailing lists, etc.) pour trouver davantage d'informations.

Chaque algorithme est accompagné d'un pseudocode commenté, soulignant par exemple la particularité de l'algorithme au regard des algorithmes précédents. Les 222 pages du livre contiennent 135 pseudocodes, ce qui montre bien l'accent mis sur l'explication concrète des algorithmes en plus des considérations intuitives ou théoriques. Le livre propose également plus de 70 figures qui permettent de mieux comprendre les algorithmes. Le ton général du livre est direct et les phrases sont formulées de façon très accessible. Pour chaque chapitre, les dépendances avec les chapitres précédents sont indiquées. Tous ces éléments rendent le livre facile et agréable à lire. À noter que le livre ne contient pas d'exercice et ne présente que peu d'applications hormis les exemples abstraits : il faudra donc utiliser ECJ ou une autre bibliothèque pour mettre en œuvre les algorithmes expliqués dans le livre. Le guide d'utilisateur de ECJ est complet et traite sous l'angle technique de la quasi-totalité des concepts du livre touchant aux algorithmes évolutionnistes.
Je conseille donc ce livre à toute personne souhaitant une introduction rapide ou une révision sur les métaheuristiques.




 Poster une réponse

Avatar de Djug Djug - Expert éminent sénior https://www.developpez.com
le 05/06/2012 à 11:50
Bonjour
La rédaction DVP a lu pour vous le livre "Essentials of Metaheuristics", de Sean Luke



Citation Envoyé par Résumé de l'éditeur
Interested in the Genetic Algorithm? Simulated Annealing? Ant Colony Optimization? Essentials of Metaheuristics covers these and other metaheuristics algorithms, and is intended for undergraduate students, programmers, and non-experts. The book covers a wide range of algorithms, representations, selection and modification operators, and related topics, and includes 70 figures and 133 algorithms great and small. Algorithms include: Gradient Ascent techniques, Hill-Climbing variants, Simulated Annealing, Tabu Search variants, Iterated Local Search, Evolution Strategies, the Genetic Algorithm, the Steady-State Genetic Algorithm, Differential Evolution, Particle Swarm Optimization, Genetic Programming variants, One- and Two-Population Competitive Coevolution, N-Population Cooperative Coevolution, Implicit Fitness Sharing, Deterministic Crowding, NSGA-II, SPEA2, GRASP, Ant Colony Optimization variants, Guided Local Search, LEM, PBIL, UMDA, cGA, BOA, SAMUEL, ZCS, and XCS.

L'avez-vous lu ? Comptez-vous le lire bientôt ?

Quel est votre avis ?

Exprimez-vous !! Votre avis nous intéresse...
Avatar de 250rgv 250rgv - Membre averti https://www.developpez.com
le 06/06/2012 à 10:09
Pour info, le livre est aussi disponible en pdf sur la page de l'auteur, c'est à dire ici.

Sinon, on peut aussi l'acheter directement chez lulu.com mais il faudra compter des frais de port, donc au final un peu plus cher que chez Amazon (2€ a ce jour)

Sinon, je ne l'ai pas encore lu mais il est sur la pile

HS : je préfère commander directement chez eux, je pense que dans ce cas, comme il n'y a pas la comm. d'Amazon, Lulu touche un peu plus sur la vente proprement dite, si quelqu'un pouvait confirmer ?
Avatar de Franck Dernoncourt Franck Dernoncourt - Membre émérite https://www.developpez.com
le 06/06/2012 à 13:54
Dernière modification par 250rgv ; Aujourd'hui à 10h17. Motif: Je n'avais pas vu le lien du dl dans la critique, <connaissant> déjà le livre
Oui je suis d'accord qu'il serait très souhaitable que le lien vers le PDF soit davantage visible.
couverture du livre Evolved to Win

Note 5 drapeau
Détails du livre
Sommaire
Critiques (1)
1 commentaire
 
 

Evolved to Win

de

Résumé de l'éditeur

Recent years have seen a sharp increase in the application of evolutionary computation techniques within the domain of games. Situated at the forefront of this research tidal wave, Moshe Sipper and his group have produced a plethora of award-winning results, in numerous games of diverse natures, evidencing the success and efficiency of evolutionary algorithms in general-and genetic programming in particular-at producing top-notch, human-competitive game strategies. From classic chess and checkers, through simulated car racing and virtual warfare, to mind-bending puzzles, this book serves both as a tour de force of the research landscape and as a guide to the application of evolutionary computation within the domain of games.

Édition : Lulu.com - 193 pages , 1re édition, 28 novembre 2011

ISBN10 : 1470972832 - ISBN13 : 9781470972837

Commandez sur www.amazon.fr :

14.34 € TTC (prix éditeur 13.25 € TTC)
  • Part I: Rules of the Game
    • Chapter 1. Setting the Pieces
    • Chapter 2. Evolutionary Computation in a Nutshell
  • Part II: Board Games
    • Chapter 3. Lose Checkers
    • Chapter 4. Chess: Endgames
    • Chapter 5. Chess: Emergence and Complexity
    • Chapter 6. Chess: Evolving Search
    • Chapter 7. Chess: Evolving Search
  • Part III: Simulation Games
    • Chapter 8. Robocode
    • Chapter 9. Robot Auto Racing Simulator
  • Part IV: Puzzles
    • Chapter 10. Rush Hour
    • Chapter 11. FreeCell
  • Part V: Parting Words of...
    • Chapter 12. (Putative) Wisdom
    • Appendix: A Potpourri of Games
Critique du livre par la rédaction Franck Dernoncourt le 1er mai 2012
Dans ce livre, l'auteur et chercheur en intelligence artificielle Moshe Sipper présente un état de l'art de la programmation génétique appliquée aux jeux, domaine dans lequel l'auteur et son groupe de recherche ont gagné de nombreuses récompenses. Loin de réduire l'ouvrage à une simple énumération de résultats, il se concentre sur certains jeux qu'il a personnellement étudiés. À travers ces études de cas, il a réussi à structurer le livre de manière à montrer une progression dans l'utilisation de la programmation génétique : après avoir commencé à l'utiliser en tant que générateur et optimisateur d'heuristique, il l'applique directement aux algorithmes de recherche, tout en introduisant les notions de coévolution ainsi que d'évolution en îles asynchrones.
Les jeux étudiés au cours de ce livre se classent en trois catégories :
  • les jeux de société : une variante du jeu de dames (lose checkers), les échecs et le backgammon ;
  • les jeux de simulation : Robocode et le jeu de course RARS ;
  • les casse-têtes : Rush Hour et FreeCell.


Les résultats présentés sont palpitants car hautement compétitifs avec les humains ainsi que les bots existants. Les solutions sont analysées en profondeur, notamment pour essayer d'entrevoir si l'évolution a fait apparaître des phénomènes d'émergence parmi les individus évolués. Une particularité du livre est son attachement à souligner les liens entre les algorithmes évolutionnistes et les principes de biologie moléculaire afin d'acquérir une compréhension plus intime de l'évolution. Tout au long de l'ouvrage, une myriade de conseils précieux sont donnés sur l'utilisation de la programmation génétique.
Bien que l'auteur aurait pu aisément faire publier le livre chez un éditeur classique tel Springer, il a fait le choix de la générosité et a décidé de rendre le livre téléchargeable gratuitement à l'adresse http://www.moshesipper.com/etw (licence CC-BY-ND).




 Poster une réponse

Avatar de Djug Djug - Expert éminent sénior https://www.developpez.com
le 18/05/2012 à 12:47
Bonjour
La rédaction DVP a lu pour vous le livre "Evolved to Win", de Moshe Sipper



Citation Envoyé par Résumé de l'éditeur
Recent years have seen a sharp increase in the application of evolutionary computation techniques within the domain of games. Situated at the forefront of this research tidal wave, Moshe Sipper and his group have produced a plethora of award-winning results, in numerous games of diverse natures, evidencing the success and efficiency of evolutionary algorithms in general-and genetic programming in particular-at producing top-notch, human-competitive game strategies. From classic chess and checkers, through simulated car racing and virtual warfare, to mind-bending puzzles, this book serves both as a tour de force of the research landscape and as a guide to the application of evolutionary computation within the domain of games.

L'avez-vous lu ? Comptez-vous le lire bientôt ?

Quel est votre avis ?

Exprimez-vous !! Votre avis nous intéresse...
Avatar de egann538 egann538 - Membre habitué https://www.developpez.com
le 22/05/2012 à 16:27
Merci de l'info, je ne savais pas que ce livre pouvait être téléchargé gratuitement.
couverture du livre Natural Language Processing with Python

Note 5 drapeau
Détails du livre
Sommaire
Critiques (2)
7 commentaires
 
 

Natural Language Processing with Python

de
Public visé : Intermédiaire

Résumé de l'éditeur

This book offers a highly accessible introduction to natural language processing, the field that supports a variety of language technologies, from predictive text and email filtering to automatic summarization and translation. With it, you'll learn how to write Python programs that work with large collections of unstructured text. You'll access richly annotated datasets using a comprehensive range of linguistic data structures, and you'll understand the main algorithms for analyzing the content and structure of written communication.

Packed with examples and exercises, Natural Language Processing with Python will help you:
  • Extract information from unstructured text, either to guess the topic or identify "named entities"
  • Analyze linguistic structure in text, including parsing and semantic analysis
  • Access popular linguistic databases, including WordNet and treebanks
  • Integrate techniques drawn from fields as diverse as linguistics and artificial intelligence


This book will help you gain practical skills in natural language processing using the Python programming language and the Natural Language Toolkit (NLTK) open source library. If you're interested in developing web applications, analyzing multilingual news sources, or documenting endangered languages -- or if you're simply curious to have a programmer's perspective on how human language works -- you'll find Natural Language Processing with Python both fascinating and immensely useful.

Édition : O'Reilly - 512 pages , 1re édition, 7 juillet 2009

ISBN10 : 0596516495 - ISBN13 : 9780596516499

Commandez sur www.amazon.fr :

34.47 € TTC (prix éditeur 36.06 € TTC)
  • Chapter 1. Language Processing and Python
  • Chapter 2. Accessing Text Corpora and Lexical Resources
  • Chapter 3. Processing Raw Text
  • Chapter 4. Writing Structured Programs
  • Chapter 5. Categorizing and Tagging Words
  • Chapter 6. Learning to Classify Text
  • Chapter 7. Extracting Information from Text
  • Chapter 8. Analyzing Sentence Structure
  • Chapter 9. Building Feature-Based Grammars
  • Chapter 10. Analyzing the Meaning of Sentences
  • Chapter 11. Managing Linguistic Data
Critique du livre par la rédaction Franck Dernoncourt le 1er février 2012
Utilisé par plus d'une centaine de cours dans le monde et disponible gratuitement en ligne à l'adresse http://www.nltk.org/book (licence CC BY-NC-ND), ce livre offre une excellente introduction au traitement automatique des langues naturelles en expliquant les théories par des exemples concrets d'implémentation. Il se veut donc une introduction pratique au domaine, par opposition à une introduction purement théorique. Chaque chapitre du livre se termine par une série d'exercices classés par ordre de difficulté, mais malheureusement non corrigés.

La particularité principale du livre est qu'il présente de nombreux exemples de code, en se basant sur la bibliothèque open-source et gratuite NLTK (http://www.nltk.org) écrite en Python par notamment les auteurs de ce livre. Très bien documentée, la bibliothèque NLTK offre de nombreuses fonctionnalités de traitement des langues (analyse lexicale, étiquetage grammatical, analyse syntaxique, etc.) tout en interfaçant aussi bien des bases de données tel WordNet que des bibliothèques et logiciels tiers tels l'étiqueteur grammatical Stanford Tagger et le prouveur automatisé Prover9. Un grand nombre de corpus est également disponible via NLTK, ce qui est très appréciable pour mettre en œuvre des processus d'entraînement ainsi que pour réaliser des tests, notamment des tests de performance. Comme le livre présente les nombreuses facettes du traitement automatique des langues naturelles, il parcourt au travers de ses exemples une grande partie des fonctionnalités de NLTK.

La limite principale de la bibliothèque NLTK est les performances de Python en termes de vitesse de calcul. L'utilisation de Python permet toutefois au lecteur de ne pas être trop gêné par la barrière du langage, Python étant à ce jour sans conteste un des langages les plus simples d'accès. Pour ceux n'ayant aucune ou peu d'expérience en Python, certaines sections du livre sont dédiées uniquement à l'explication du langage Python, ce qui permet de rendre l'ouvrage accessible à tout public.

Néanmoins, bien que donnant un aperçu excellent et concret de l'ensemble du traitement automatique des langues naturelles, le focus du livre sur les exemples en Python fait que mécaniquement le livre consacre moins de place aux considérations théoriques. En ce sens, il est un complément idéal au livre de référence Speech and Language Processing (écrit par Daniel Jurafsky et James H. Martin) dont l'approche est beaucoup plus théorique.
Critique du livre par la rédaction Julien Plu le 1er mai 2012
Ce livre sur NLTK est réellement bien écrit, il n'est pas nécessaire d'avoir une expérience en traitement automatique du langage pour pouvoir aborder cet ouvrage, il vous apprendra tout ce dont vous avez besoin pour comprendre chaque chapitre. La seule obligation est d'avoir une connaissance du langage Python.
Les exemples sont non seulement simples, mais aussi très utiles, car ce sont des choses dont on pourrait avoir besoin dans une application. J'ai principalement aimé les chapitres sur les extractions d'entités nommées, l'apprentissage pour la création d'un classifieur et l'analyse du sens d'une phrase qui sont particulièrement bien faits et expliqués.
La seule remarque que je ferais est le manque de détails sur toutes les possibilités de création et d'utilisation d'une grammaire via les expressions régulières NLTK ou non.




 Poster une réponse

Avatar de Djug Djug - Expert éminent sénior https://www.developpez.com
le 06/02/2012 à 8:11
Bonjour,

La rédaction de DVP a lu pour vous l'ouvrage suivant: Natural Language Processing with Python, de Steven Bird, Ewan Klein, et Edward Loper.



Citation Envoyé par Résumé de l'éditeur
This book offers a highly accessible introduction to natural language processing, the field that supports a variety of language technologies, from predictive text and email filtering to automatic summarization and translation. With it, you'll learn how to write Python programs that work with large collections of unstructured text. You'll access richly annotated datasets using a comprehensive range of linguistic data structures, and you'll understand the main algorithms for analyzing the content and structure of written communication.

Packed with examples and exercises, Natural Language Processing with Python will help you:
  • Extract information from unstructured text, either to guess the topic or identify "named entities"
  • Analyze linguistic structure in text, including parsing and semantic analysis
  • Access popular linguistic databases, including WordNet and treebanks
  • Integrate techniques drawn from fields as diverse as linguistics and artificial intelligence


This book will help you gain practical skills in natural language processing using the Python programming language and the Natural Language Toolkit (NLTK) open source library. If you're interested in developing web applications, analyzing multilingual news sources, or documenting endangered languages -- or if you're simply curious to have a programmer's perspective on how human language works -- you'll find Natural Language Processing with Python both fascinating and immensely useful.
L'avez-vous lu? Comptez-vous le lire bientôt?

Quel est votre avis?

Exprimez-vous!! Votre avis nous intéresse.
Avatar de Franck Dernoncourt Franck Dernoncourt - Membre émérite https://www.developpez.com
le 06/02/2012 à 9:00
Voici une liste de définitions que j'ai trouvé intéressantes dans ce livre (les pages indiquées sont sous format n° de page du livre / n° de page de mon PDF) :

  • hypernym/hyponym relation, i.e., the relation between superordinate and subordinate concepts (p69 / 90)
  • Another rimportant way to navigate the WordNet network is from items to their components (meronyms) or to the things they are contained in (holonyms) (p710 / 91)
  • the same dictionary word (or lemma) (p104 / 125)
  • strip off any affixes, a task known as stemming. (p107 / 128)
  • Tokenization is the task of cutting a string into identifiable linguistic units that constitute a piece of language data (p109 / 130)
  • Tokenization is an instance of a more general problem of segmentation. (p112 § 133)
  • The %s and %d symbols are called conversion specifiers (p118 / 139)
  • The process of classifying words into their parts-of-speech and labeling them accord-ingly is known as part-of-speech tagging, POS tagging, or simply tagging. Parts-of-speech are also known as word classes or lexical categories. The collection of tagsused for a particular task is known as a tagset. Our emphasis in this chapter is onexploiting tags, and tagging text automatically. (p179 / 200)
  • As n gets larger, the specificity of the contexts increases, as does the chance that the data we wish to tag contains contexts that were not present in the training data. This is known as the sparse data problem, and is quite pervasive in NLP. As a consequence, there is a trade-off between the accuracy and the coverage of our results (and this is related to the precision/recall trade-off in information retrieval) (p205 / 226)
  • A convenient way to look at tagging errors is the confusion matrix. It charts expected tags (the gold standard) against actual tags gen-erated by a tagger (p207 / 228)
  • All languages acquire new lexical items. A list of words recently added to the Oxford Dictionary of English includes cyberslacker, fatoush, blamestorm, SARS, cantopop,bupkis, noughties, muggle, and robata. Notice that all these new words are nouns, and this is reflected in calling nouns an open class. By contrast, prepositions are regarded as a closed class. That is, there is a limited set of words belonging to the class. (p211 / 232)
  • Common tagsets often capture some morphosyntactic information, that is, informa-tion about the kind of morphological markings that words receive by virtue of theirsyntactic role. (p212 / 233)
  • Classification is the task of choosing the correct class label for a given input. (p221 / 242)
  • The first step in creating a classifier is deciding what features of the input are relevant,and how to encode those features. For this example, we’ll start by just looking at thefinal letter of a given name. The following feature extractor function builds a dictionary containing relevant information about a given name. (p223 / 244)
  • Recognizing the dialogue acts underlying the utterances in a dialogue can be an important first step in understanding the conversation. The NPS Chat Corpus, which was demonstrated in Section 2.1, consists of over 10,000 posts from instant messaging sessions. These posts have all been labeled with one of 15 dialogue act types, such as “Statement,” “Emotion,” “y/n Question,” and “Continuer.” (p235 / 256)
  • Recognizing textual entailment (RTE) is the task of determining whether a given piece of text T entails another text called the “hypothesis”. (p235 / 256)
  • A confusion matrix is a table where each cell [i,j] indicates how often label j was pre-dicted when the correct label was i. (p240 / 261)
  • Numeric features can be converted to binary features by binning, which replaces them with features such as “4<x<6.” (p249 / 270)
  • Named entities are definite noun phrases that refer to specific types of individuals, such as organizations, persons, dates, and so on. The goal of a named entity recognition (NER) system is to identify all textual men-tions of the named entities. This can be broken down into two subtasks: identifyingthe boundaries of the NE, and identifying its type. (p281 / 302)
  • Since our grammar licenses two trees for this sentence, the sentence is said to be structurally ambiguous. The ambiguity in question is called a prepositional phrase attachment ambiguity. (p299 / 320)
  • A grammar is said to be recursive if a category occurring on the left hand side of a production also appears on the righthand side of a production. (p301 / 322)
  • A parser processes input sentences according to the productions of a grammar, and builds one or more constituent structures that conform to the grammar. A grammar is a declarative specification of well-formedness—it is actually just a string, not a program. A parser is a procedural interpretation of the grammar. It searches through the space of trees licensed by a grammar to find one that has the required sentence alongits fringe. (p302 / 323)
  • Phrase structure grammar is concerned with how words and sequences of words combine to form constituents. A distinct and complementary approach, dependency grammar, focuses instead on how words relate to other words. (p310 / 331)
  • A dependency graph is projective if, when all the words are written in linear order, the edges can be drawn above the words without crossing. (p311 / 332)
  • In the tradition of dependency grammar, the verbs in Table 8-3 (whose dependents have Adj, NP, S and PP, which are often called complements of the respective verbs, are different) are said to have different valencies. (p313 / 335)
  • This ambiguity is unavoidable, and leads to horrendous inefficiency in parsing seemingly innocuous sentences. The solution to these problems is provided by probabilistic parsing, which allows us to rank the parses of an ambiguous sentence on the basis of evidence from corpora. (p318 / 339)
  • A probabilistic context-free grammar (or PCFG) is a context-free grammar that as-sociates a probability with each of its productions. It generates the same set of parses for a text that the corresponding context-free grammar does, and assigns a probability to each parse. The probability of a parse generated by a PCFG is simply the product ofthe probabilities of the productions used to generate it. (p320 / 341)
  • We can see that morphological properties of the verb co-vary with syntactic properties of the subject noun phrase. This co-variance is called agreement. (p329 / 350)
  • A feature path is a sequence of arcs that can be followed from the root node (p339 / 360)
  • A more general feature structure subsumes a less general one. (p341 / 362)
  • Merging information from two feature structures is called unification. (p342 / 363)
  • The two sentences in (5) can be both true, whereas those in (6) and (7) cannot be. In other words, the sentences in (5) are consistent, whereas those in (6) and (7) are inconsistent. (p365 / 386)
  • A model for a set W of sentences is a formal representation of a situation in which allthe sentences in W are true. (p367 / 388)
  • An argument is valid if there is no possible situation in which its premises are all true and its conclusion is not true. (p369 / 390)
  • In the sentences "Cyril is tall. He likes maths.", we say that he is coreferential with the noun phrase Cyril. (p373 / 394)
  • In the sentence "Angus had a dog but he disappeared.", "he" is bound by the indefinite NP "a dog", and this is a different relationship than coreference. If we replace the pronoun he by a dog, the result "Angus had a dog but a dog disappeared" is not semantically equivalent to the original sentence "Angus had a dog but he disappeared." (p374 / 395)
  • In general, an occurrence of a variable x in a formula F is free in F if that occurrence doesn’t fall within the scope of all x or some x in F. Conversely, if x is free in formula F, then it is bound in all x.F and exists x.F. If all variable occurrences in a formulaare bound, the formula is said to be closed. (p375 / 396)
  • The general process of determining truth or falsity of a formula in a model is called model checking. (p379 / 400)
  • Principle of Compositionality: the meaning of a whole is a function of the meaningsof the parts and of the way they are syntactically combined. (p385 / 406)
  • ? is a binding operator, just as the first-order logic quantifiers are. (p387 / 408)
  • A discourse representation structure (DRS) presents the meaning of discourse in terms of a list of discourse referents and a list of conditions.The discourse referents are the things under discussion in the discourse, and they correspond to the individual variables of first-order logic. The DRS conditions apply to those discourse referents, and correspond to atomic open formulas of first-orderlogic. (p397 / 418)
  • Inline annotation modifies the original document by inserting special symbols or control sequences that carry the annotated information. For example, when part-of-speech tagging a document, the string "fly" might be replacedwith the string "fly/NN", to indicate that the word fly is a noun in this context. Incontrast, standoff annotation does not modify the original document, but instead creates a new file that adds annotation information using pointers that reference the original document. For example, this new document might contain the string "<token id=8pos='NN'/>", to indicate that token 8 is a noun. (p421 / 442)
Un autre dictionnaire de NLP disponible online : http://www.cse.unsw.edu.au/~billw/nlpdict.html
Avatar de Franck Dernoncourt Franck Dernoncourt - Membre émérite https://www.developpez.com
le 06/02/2012 à 20:23
Également, pour ceux intéressés par le sujet, Stanford lance un cours d'introduction au traitement automatique des langues naturelles : http://www.nlp-class.org/

couverture du livre Introduction to Evolutionary Computing

Note 4.5 drapeau
Détails du livre
Sommaire
Critiques (1)
 
 

Introduction to Evolutionary Computing

de
Public visé : Intermédiaire

Résumé de l'éditeur

Evolutionary Computing is the collective name for a range of problem-solving techniques based on principles of biological evolution, such as natural selection and genetic inheritance. These techniques are being increasingly widely applied to a variety of problems, ranging from practical applications in industry and commerce to leading-edge scientific research. This book presents the first complete overview of this exciting field aimed directly at lecturers and graduate and undergraduate students. It is also meant for those who wish to apply evolutionary computing to a particular problem or within a given application area. To this group the book is valuable because it presents EC as something to be used rather than just studied. Last, but not least, this book contains quick-reference information on the current state-of-the-art in a wide range of related topics, so it is of interest not just to evolutionary computing specialists but to researchers working in other fields.

Édition : Springer - 316 pages , 2eédition, 15 décembre 2010

ISBN10 : 3642072852 - ISBN13 : 9783642072857

Commandez sur www.amazon.fr :

36.27 € TTC (prix éditeur 39.95 € TTC)
  • Introduction
  • What is an Evolutionary Algorithm?
  • Genetic Algorithms
  • Evolution Strategies
  • Evolutionary Programming
  • Genetic Programming
  • Learning Classifier Systems
  • Parameter Control in Evolutionary Algorithms
  • Multi-Modal Problems and Spatial Distribution
  • Hybridisation with Other Techniques: Memetic Algorithms
  • Theory
  • Constraint Handling
  • Special Forms of Evolution
  • Working with Evolutionary Algorithms
  • Summary
  • Appendices
  • Index
  • References
Critique du livre par la rédaction Franck Dernoncourt le 1er juin 2011
Ce livre est une des références pour s'initier aux algorithmes évolutionnistes : assez court (à peine 300 pages facilement lisibles) et bien conçu pour une première approche du domaine sans avoir à y investir une quantité de temps considérable, tout en étant plutôt complet et sans se perdre dans des détails inutiles, ce qui donne au lecteur un nombre important de pistes de réflexion essentielles pour une bonne compréhension des différentes problématiques rencontrées le plus souvent dans le domaine.
Il est aussi un des premiers ouvrages présentant une vue d'ensemble sur l'évolution artificielle (EA) et il contient notamment les dernières nouveautés du domaine. Les chapitres alternent introductions théoriques, exemples, algorithmes et exercices, et même si les fondements théoriques ne sont pas négligés, l'accent est davantage mis sur la mise en oeuvre concrète des algorithmes et techniques d'évolution artificielle.
Bref, que ce soit pour découvrir le domaine ou se remettre les idées-clefs en mémoire, je conseille vivement la lecture de ce livre ! Pour les enseignants, des supports de présentation sont disponibles sur le site officiel.
Seul bémol notable, les exercices ne sont pas corrigés et certaines parties potentiellement intéressantes du site officiel sont toujours en construction ou ne sont pas terminées.

Tout d'abord, après avoir présenté dans les grandes lignes le fonctionnement ainsi que les caractéristiques d'un algorithme évolutionniste (chapitres 1 et 2), le livre se penche sur ses quatre variantes usuelles : algorithmes génétiques, stratégies d'évolution, programmation évolutionniste et programmation génétique (chapitres 3 à 6).
En deuxième partie, le livre présente diverses améliorations aux quatre classes d'algorithmes classiques vues précédemment :
  • les LCS (Learning Classifier System - chapitre 7), qui sont un système d'apprentissage automatique basé sur le concept d'ensemble de règles conditions-actions et qui permettent d'introduire la notion de coopération parmi les individus d'une même population, contrairement aux algorithmes évolutionnistes classiques dans lesquels les individus sont simplement en compétition. ZCS et XCS sont des variantes ;
  • le "parameter control" (chapitre 8), dont l'objectif est d'adapter certains paramètres structurants des algorithmes évolutionnistes, telles la taille de la population ou la probabilité des mutations/croisements, au cours de l'exécution de l'algorithme, contrairement au "parameter tuning" utilisé habituellement, consistant à fixer ces paramètres au début de l'exécution de l'algorithme sans pouvoir les modifier après, ce qui rend l'algorithme beaucoup moins performant ;
  • le maintien d'une certaine diversité au sein de la population (chapitre 9), afin de faire face à la convergence vers un optimum local (genetic drift) souvent constaté, à l'instar de la sélection naturelle qui a vu se former des sous-groupes grâce aux contraintes géographiques. On peut de cette manière trouver autant d'optima locaux que de sous-groupes, permettant ainsi d'obtenir de meilleurs résultats sur les problèmes multimodaux en se rapprochant ainsi de l'optimum global ;
  • le multiobjectif (chapitre 9), qui repose sur le concept de dominance au sens de Pareto : beaucoup de problèmes ont en effet plusieurs objectifs, les scalariser en un seul objectif comporte des inconvénients, et les résultats montrent que les MOEA (MultiObjective Evoluationary Algorithms) sont en général les meilleurs algorithmes pour résoudre des MOP (MultiObjective Problems) ;
  • les algorithmes mémétiques (chapitre 10), qui permettent d'effectuer des améliorations (local search) non génétiques propres à un seul individu, améliorations se basant sur des connaissances expertes spécifiques au problème, en faisant attention à maintenir une certaine diversité au sein de la population. Les résultats ainsi obtenus par rapport à l'EA classique sont généralement meilleurs sur le problème étudié, mais moins bons pour la plupart des autres problèmes.

En troisième partie, les auteurs exposent quelques bases de la théorie sous-jacente à l'EA (chapitre 11), puis expliquent comment y inclure des contraintes, comme par exemple en définissant des pénalités dans la fitness fonction (chapitre 12). Ils présentent également des formes d'évolution (chapitre 13) basées sur la coévolution interactive ou compétitive, formes plus proches de la sélection naturelle où les espèces évoluent ensemble et les critères de sélection sont relatifs (telle l'opposition proies vs prédateurs).
Les auteurs concluent sur les bonnes pratiques de mesure de performance d'une EA (chapitre 14), soulignent que le plus important lors de l'utilisation d'une EA est de trouver une bonne représentation ainsi qu'un choix d'opérateurs de variation et de sélection judicieux, et donnent des pistes de réflexion non étudiées dans le livre, tels les colonies de fourmis ou les systèmes immunitaires artificiels.


couverture du livre Purely Functional Data Structures

Note 4.5 drapeau
Détails du livre
Critiques (1)
 
 

Purely Functional Data Structures

de

Résumé de l'éditeur

Most books on data structures assume an imperative language such as C or C++. However, data structures for these languages do not always translate well to functional languages such as Standard ML, Haskell, or Scheme. This book describes data structures from the point of view of functional languages, with examples, and presents design techniques that allow programmers to develop their own functional data structures. The author includes both classical data structures, such as red-black trees and binomial queues, and a host of new data structures developed exclusively for functional languages. All source code is given in Standard ML and Haskell, and most of the programs are easily adaptable to other functional languages. This handy reference for professional programmers working with functional languages can also be used as a tutorial or for self-study.

Édition : Cambridge University Press - 220 pages , 1re édition, 13 juin 1999

ISBN10 : 0521663504 - ISBN13 : 9780521663502

Commandez sur www.amazon.fr :

33.20 € TTC (prix éditeur 37.40 € TTC)
Critique du livre par la rédaction Damien Guichard le 13 juin 2011
Cet ouvrage reprend l'intégralité de la thèse de Chris Okasaki avec tous ses points forts, à commencer par les nouvelles techniques algorithmiques avancées (eliminated amortization, lazy rebuilding, data-structural bootstrapping, implicit recursive slowdown). Les systèmes de numération y sont utilisés comme des moules pour fabriquer des TADs sur le modèle des opérations élémentaires d'incrémentation et d'addition. Le système de typage est poussé aussi loin que possible avec les nested data types (polymorphic recursion), les modules paramétrés et les modules paramétrés récursifs.
En plus du contenu de la thèse qui fait déjà autorité, la valeur ajoutée de ce livre réside dans :
- une introduction à la persistence et au path-copying
- un rappel sur l'implantation des structures de données élémentaires (listes,piles,queues,arbres binaire de recherche, arbres rouge-noir)
- des exercices qui explorent des alternatives connues (arbres de Arne Andersson,...) ou des variantes du mécanisme de mise à jour (batched-rebuilding)
- un répertoire d'implantations des structures de tas, assez consistant (leftist heaps, pairing heaps, binomial heap, skew binomial heap, structural-bootstrapped skew binomial heap) sans être exhaustif (il manque le Braun heap et le maxiphobic heap)
En bref il s'agit d'une référence à posséder absolument.
Un seul regret: l'ouvrage n'a pas la prétention d'être une bible. Il ne fait pas le tour complet du sujet puisque par exemple, ne sont pas abordés les thèmes suivants:

- le Finger-tree
- l'implantation efficace des graphes inductifs
- l'implantation efficace de l'Union-Find persistent
Cependant, pour les personnes intéressées, de la documentation sur ces sujets est facilement trouvable en ligne.


Contacter le responsable de la rubrique Débuter - Algorithmique