In 2000, Robert Dale and I published the book Building Natural Language Generation Systems. Much to my surprise, people still use our book even though it is 22 years old. Anyways, I am sometimes asked to write a new book on NLG. In the past I have always declined, but now I am thinking seriously of doing this. If readers of my blog have any suggestions or comments, I’d love to hear them!
The book will focus on concepts and principles, not on how to use specific software libraries or packages. When I look back at our 2000 book, the material on specific software packages became out of date within a few years, whereas some of the conceptual material is still relevant decades lates, so I definitely want to focus on the latter in a new book. I also want to take a broad perspective and talk about evaluation, engineering issues, use cases, etc as well as technology.
My plan is to have three sections: Foundations, Challenges, and Use Cases (probably with catchier names). Below I describe some initial thoughts on these.
This section will introduce different types of NLG and look at technologies. My 2000 book focused on data-to-text, but in a new book I’d like to also discuss text summarisation and dialogue (from NLG perspective), and perhaps other types of NLG as well
Possible chapters include
- Introduction: Introduction to NLG, basic concepts, example systems, history, resources.
- Types of NLG: Data-to-text, text summarisation, dialogue (more?). For each type of NLG, present common use cases, give examples, explain concepts (such as extractive vs abstractive summarisation), discuss state-of-art and challenges (at time of writing).
- Rule-based approaches: Data-to-text pipeline: articulate analytics, document planning, microplanning, surface realisation. Templates and scripting. Advantages and disadvantages.
- Neural technologies: neural language models, fine-tuning pretrained models, prompting approaches, training datasets. Advantages and disadvantages. There will be a strong focus on data issues, since I believe this is more important than model details, and also material on model specifics will become out-of-date very quckly.
This section will discuss generic challenges in NLG, which apply to most NLG systems regardless of type and technology. Much of this material will be familar to readers of my blog!
Possible chapters include
- Evaluation: Human and automatic evaluation of NLG systems. Focus is on fundamentals; eg when talking about metrics I will discuss general issues such as validation, with less focus on specific metrics (since this material would date quickly).
- Requirements: What do users want NLG systems to do? This will include methodology (techniques for understanding requirements) as well as specific issues such as text-vs-graphics, human-in-loop workflows, and average vs worst-case performance.
- Engineering: Practical issues in building NLG systems, including architecture, deaking with data quality issues, testing and quality assurance techniques, software maintenance of NLG, libraries and resources.
- Safety and ethics: Ensuring/guaranteeing that NLG texts are never harmful, bias in generated texts, lying/deceiving users, and other ethical issues.
In this section, I want to explore specific use cases in detail, looking at which types of NLG are used, how they are used, how they adds value, and how stakeholders react to NLG systems.
Use cases could include
- Automatic journalism. We are seeing an increasing number of articles which are written initially by NLG systems (usually these are post-edited by a human before they are released). The chapter will give examples, discuss contexts where NLG is useful (local news?), and also look at how journalists and readers react to NLG. Plus of course ethical issues.
- Business intelligence. This is the biggest use of data-to-text, and chapter will explain BI and how NLG is used within it (and where it adds value), give examples, and look at how users react to NLG. The chapter will look at using text summarisation and chatbots in BI as well as data-to-text.
- Healthcare. Healthcare of course is a huge area, but it an application area that I am passionate about, so I’d like to discuss it in the book! The chapter will look at different use cases and example NLG systems, and then discuss where NLG adds value, how doctors and patients react to it, safety concerns, and problems getting accurate data.
Writing a book is a big project, so I’d love to get comments from readers about what they think of the above, and indeed what kind of book would be useful to them. With the proviso that the focus needs to be on concepts, not advice on how to use model X or library Y.