4The Sphere of Applications

4.1. Software engineering for NLP software

In the previous chapters, the basic components of NLP systems were presented. They focused on separate linguistic levels such as speech, morphology, syntax, semantics and discourse. This chapter will focus on combining different levels of linguistic knowledge with other sources of knowledge to build applicative NLP software that is directly usable by humans. Particular attention will be paid to presenting the specificities of NLP software regarding their development cycle, architecture and evaluation.

4.1.1. Lifecycle of an NLP software

Developing an NLP software is a complex process that involves many actors and occurs through successive or parallel steps, some of which are optional. It all starts with the identification of a need, whether it comes from the world of research, the daily practices of the general public or a business opportunity. Then comes the analysis and definition of the system prerequisites recorded in the project specifications. The next step is the design, which consists of describing all aspects of the system, including the interface, creating diagrams, writing documentation and pseudocode. During the development phase, the system’s code is written, generally in a modular way. A test of the system’s code is then carried out. The modules are tested individually (modular tests) and when they have been integrated into the system (integration tests). The development phases and the tests ...

Get Natural Language Processing and Computational Linguistics 2 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.