Stages of developing an NLG system
This section summarizes each stage of the NLG development process. Specifics relevant to each stage are provided in later sections of this guide.
Requirements gathering
This is the process of deciding what the NLG system should do. What narratives should it produce? How should it respond to unusual edge cases? How quickly do narratives need to be produced? Requirements must address the business needs while also being sensitive to the workflows and preferences of users. At Arria, we recommend that you use corpora (collections of high-quality example narratives written by people) to guide your requirements gathering. Good human-written examples of the narrative output you hope to achieve provide the best path to understanding the requirements for an NLG system.
See Understanding the requirements for more details.
Design
This is the process of deciding on the key components of a Studio project – the scripts and variables you will need. In particular, your design should separate analytics processing (which may be done in Studio or in a pre-processing stage) and narrative processing (done in Studio).
See Designing an NLG Studio project for more details.
Implementation
Also known as development, this is the stage at which Studio scripts are written. Arria has developed a collection of best-practice tips, advice, and FAQs on coding in Studio.
See Implementing an NLG Studio project for more details.
Testing and quality assurance
You must test an NLG project to make sure it produces high-quality narratives under all circumstances (including edge cases and error cases).
Arria's test methodology covers considerations that are unique to language projects. For example, testing linguistic variation (i.e. narrative that includes use of the chooseAtRandom
function) poses special challenges. Another key consideration is that it is essential to automate testing where possible so that human testers do not have to read thousands of narratives.
See Testing an NLG Studio project for more details.
Support
This is the process of fixing bugs and making enhancements to deployed projects. Support needs to be carefully structured and managed, and Arria has developed best-practice guidelines for supporting NLG systems. See Providing support for more details.