Ce livre est accessible à tous, y compris à ceux qui n'ont aucune formation en informatique ou en programmation. Le lecteur y est guidé pas à pas, notamment dans la première partie consacrée aux aspects techniques de base.
Le livre peut également être utile aux linguistes qui s'intéressent aux aspects plus formels de l'étude du langage. Les spécialistes de linguistique formelle et de statistique lexicale ou textuelle ont en effet besoin d'alimenter leurs modèles avec des données et de les confronter à ces dernières. L'ouvrage propose des techniques directement utilisables pour gérer ces données, voire automatiser certains calculs complexes.
Les informaticiens linguistes qui travaillent sur le traitement automatique des langues et en ingénierie linguistique peuvent pour leur part être intéressés par les avantages que possède Perl sur d'autres langages de programmation pour la manipulation des données langagières. Le livre présente notamment les techniques qui font la spécificité de Perl et qui permettent de développer très rapidement des prototypes d'applications, mais aussi d'écrire ces petits traitements de données qu'un logiciel plus complexe nécessite bien souvent en amont.
Plus généralement, les linguistes peuvent découvrir dans ce livre les différentes façons d'envisager un travail sur des données, la richesse des ressources et des techniques disponibles, et tout ce que peut leur apporter l'utilisation des outils informatiques.
La première réponse est simple : l'étendue des besoins est telle qu'aucun outil préconçu ne peut prétendre y répondre. Nombre d'études linguistiques font de fait souvent appel à plusieurs outils (Benoît Habert parle d'instruments dans [Habert05]), qu'il est alors nécessaire de maîtriser et de savoir articuler pour arriver à ses fins. Alors que dans bien des cas, un programme conçu spécifiquement peut simplifier le travail. De même, l'utilisation de deux applications préconçues nécessite systématiquement d'adapter les productions de l'une aux exigences de l'autre. Ceci entraîne le développement de ces petits programmes rapidement écrits et encore plus vite oubliés que le jargon nomme affectueusement moulinettes.
La deuxième réponse concerne les données elles-mêmes, et la multiplicité de leurs formats (c'est-à-dire des types d'informations qu'ils contiennent et de leurs organisations) que la disponibilité via le Web ne fait qu'accroître. Il devient rapidement nécessaire d'adapter à chaque nouveau corpus ou nouveau texte au moins une partie d'un traitement automatisé. Il faut, en plus d'une connaissance des différents formats et des problèmes liés à chacun, disposer de moyens rapides de s'y adapter.
La troisième réponse ne se formule pas en termes d'utilité directe, mais revendique que l'apprentissage de la programmation est en soi une ouverture sur de nouvelles façons d'aborder et de résoudre un problème, qui peut se révéler fructueuse dans l'étude du langage.
Le linguiste a tout d'abord besoin de manipuler des données textuelles. Ces traitements sont assez ciblés : il s'agit essentiellement d'exploiter des fichiers de données, d'en extraire des séquences de caractères, de les manipuler, de les comparer, de les trier, de les compter, etc. Il faut donc disposer de méthodes performantes et efficaces permettant d'aborder facilement différents types de situations, et de gérer des volumes de données parfois très importants.
Dans de nombreux cas, par exemple lorsqu'il s'agit d'adapter un traitement à un type de données spécifique, les opérations effectuées par un programme ne sont exécutées qu'une fois ou deux : il est alors important de pouvoir réaliser rapidement un programme donné, même si celui-ci pourrait être amélioré, pourvu qu'il réponde aux besoins exprimés.
Enfin, le type de programmation dont un linguiste a besoin doit être économe en moyens techniques et ne pas nécessiter un environnement informatique sophistiqué : un langage dont les outils de développements sont gratuits et disponibles sous tous les types de plate-forme aura ici un avantage.
Ces trois exigences font de Perl le candidat retenu : initialement conçu pour la gestion de la documentation électronique, il dispose de toutes les fonctionnalités nécessaires à la manipulation de données linguistiques, notamment grâce à la puissance de ses expressions régulières (voir chapitre 4). Langage de script (voir chapitre 3), il ne nécessite pas de phase de compilation préalable et dispose de plus d'une syntaxe très souple et concise. Proposé gratuitement et pour tous les systèmes d'exploitation (voir chapitre 2), il ne nécessite aucun investissement en termes d'équipement ou de logiciels autre qu'un ordinateur PC ou Mac.
Les premières manipulations concernent des opérations de flexion automatique, de recherche dans les textes de mots ou de séquences de mots, et de calculs de fréquence. Toutes ces opérations permettent, en réappliquant leurs mécanismes, d'aborder nombre d'études d'un corpus de textes écrits comme l'analyse du vocabulaire ou l'étude de certaines constructions syntaxiques. L'outil informatique a alors comme rôle principal de permettre un examen rapide et exhaustif d'un ensemble de phénomènes linguistiques.
L'accent est également mis sur les manipulations de ressources lexicales, que ce soit pour des approches morphologiques comme l'étude d'un suffixe, ou pour l'acquisition de ressources (comme une liste de néologismes) à partir d'un corpus.
Nous aborderons à plusieurs reprises la prise en compte de différents formats de données, notamment pour tirer partie (et produire) des textes annotés, et aborder l'utilisation du Web comme source de données.
Tous les exemples développés portent sur le français, mais ils sont applicables sans modifications majeures à d'autres langues (les limites étant ici la disponibilité des ressources et les difficultés techniques liées à la manipulation d'écritures non alphabétiques).
Des applications plus complexes (pouvant se rapprocher des techniques plus sophistiquées relevant du traitement automatique des langues) peuvent tout à fait être envisagées sur la base des savoir-faire fondamentaux présentés ici.