Skip to main content

A Course in Natural Language Processing

  • Textbook
  • © 2024

Overview

  • Offers a first, self-contained course to NLP based on a class taught by the author for over ten years
  • Includes supplementary teaching material such as labs, exams or answers to general questions
  • Presents a three-fold approach to learning a discipline at the crossroad of Linguistics, Mathematics and AI
  • Request lecturer material: sn.pub/lecturer-material

This is a preview of subscription content, log in via an institution to check access.

Access this book

eBook USD 23.99 USD 59.99
Discount applied Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book USD 23.99 USD 79.99
Discount applied Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book USD 109.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

') var buybox = document.querySelector("[data-id=id_"+ timestamp +"]").parentNode var buyboxMaxSingleColumnWidth = 480 ;[].slice.call(buybox.querySelectorAll(".buying-option")).forEach(initCollapsibles) function initCollapsibles(buyingOption, index) { var toggle = buyingOption.querySelector(".buying-option-price") buyingOption.classList.remove("expanded") var form = buyingOption.querySelector(".buying-option-form") var priceInfo = buyingOption.querySelector(".price-info") if (toggle && form && priceInfo) { toggle.setAttribute("role", "button") toggle.setAttribute("tabindex", "0") toggle.addEventListener("click", function (event) { var expandedBuyingOptions = buybox.querySelectorAll(".buying-option.expanded") var buyboxWidth = buybox.offsetWidth ;[].slice.call(expandedBuyingOptions).forEach(function(option) { if (buyboxWidth <= buyboxMaxSingleColumnWidth && option != buyingOption) { hideBuyingOption(option) } }) var expanded = toggle.getAttribute("aria-expanded") === "true" || false toggle.setAttribute("aria-expanded", !expanded) form.hidden = expanded if (!expanded) { buyingOption.classList.add("expanded") } else { buyingOption.classList.remove("expanded") } priceInfo.hidden = expanded }, false) } } function hideBuyingOption(buyingOption) { var toggle = buyingOption.querySelector(".buying-option-price") var form = buyingOption.querySelector(".buying-option-form") var priceInfo = buyingOption.querySelector(".price-info") toggle.setAttribute("aria-expanded", false) form.hidden = true buyingOption.classList.remove("expanded") priceInfo.hidden = true } function initKeyControls() { document.addEventListener("keydown", function (event) { if (document.activeElement.classList.contains("buying-option-price") && (event.code === "Space" || event.code === "Enter")) { if (document.activeElement) { event.preventDefault() document.activeElement.click() } } }, false) } function initialStateOpen() { var buyboxWidth = buybox.offsetWidth var narrowBuyboxArea = buyboxWidth <= buyboxMaxSingleColumnWidth var allOptionsInitiallyCollapsed = buybox.className.indexOf("all-options-initially-collapsed") > -1 ;[].slice.call(buybox.querySelectorAll(".buying-option")).forEach(function (option, index) { var toggle = option.querySelector(".buying-option-price") var form = option.querySelector(".buying-option-form") var priceInfo = option.querySelector(".price-info") if (allOptionsInitiallyCollapsed || narrowBuyboxArea && index > 0) { toggle.setAttribute("aria-expanded", "false") form.hidden = "hidden" priceInfo.hidden = "hidden" } else { toggle.click() } }) } initialStateOpen() if (window.buyboxInitialised) return window.buyboxInitialised = true initKeyControls() })()

Other ways to access

Licence this eBook for your library

Institutional subscriptions

About this book

Natural Language Processing is the branch of Artificial Intelligence involving language, be it in spoken or written modality. Teaching Natural Language Processing (NLP) is difficult because of its inherent connections with other disciplines, such as Linguistics, Cognitive Science, Knowledge Representation, Machine Learning, Data Science, and its latest avatar: Deep Learning. Most introductory NLP books favor one of these disciplines at the expense of others. 

Based on a course on Natural Language Processing taught by the author at IMT Atlantique for over a decade, this textbook considers three points of view corresponding to three different disciplines, while granting equal importance to each of them. As such, the book provides a thorough introduction to the topic following three main threads: the fundamental notions of Linguistics, symbolic Artificial Intelligence methods (based on knowledge representation languages), and statistical methods (involving both legacy machine learning and deep learning tools). 


Complementary to this introductory text is teaching material, such as exercises and labs with hints and expected results. Complete solutions with Python code are provided for educators on the SpringerLink webpage of the book. This material can serve for classes given to undergraduate and graduate students, or for researchers, instructors, and professionals in computer science or linguistics who wish to acquire or improve their knowledge in the field. The book is suitable and warmly recommended for self-study.

Similar content being viewed by others

Table of contents (16 chapters)

  1. Linguistics

  2. Mathematical Tools

  3. Data Formats

  4. Statistical Methods

Reviews

“This book adopts a reader-focused approach, making it accessible to a wide audience. Each chapter ends with a section titled “Further readings”, which offers suggestions for those interested in exploring specific topics in greater depth. … This book will hold a significant place in the current NLP literature. ... Its interdisciplinary approach, well-structured pedagogical framework, and emphasis on both theoretical and practical aspects make it a valuable addition to the library of any serious NLP researcher or practitioner.” (Korhan Günel, zbMATH 1562.68005, 2025)

Authors and Affiliations

  • Lab-STICC, UMR CNRS 6285, IMT Atlantique, Brest, France

    Yannis Haralambous

About the author

Born in Athens, Greece, Yannis Haralambous studied Mathematics in Lille, France, where he obtained a Ph.D. in Algebraic Topology in 1990. Having meanwhile become a TeX aficionado, he then specialized in Digital Typography and founded the typesetting company Atelier Fluxus Virus, which is specialized in scientific and scholarly documents. In 2001, he became a Full Professor at the Computer Science Department of IMT Atlantique in Brest, France, and his research activities migrated to the disciplines of Text Mining, Controlled Natural Languages, Knowledge Representation, and Grapholinguistics. He has published more than 120 research or scientific popularization papers and a book on Fonts and Encodings (O'Reilly, 2004), has supervised 10 PhDs, teaches courses on NLP, Graph Theory and Logic, and is the organizer of the biennial conference “Grapholinguistics in the 21st Century”.

Accessibility Information

Accessibility information for this book is coming soon. We're working to make it available as quickly as possible. Thank you for your patience.

Bibliographic Information

Keywords

Publish with us