What is Natural Language Generation?

In natural language generation a computer automatically creates natural language, e.g. English, Chinese, or Greek, from a computational representation. One use of Natural Language Generation is to describe software systems from a formal specification of the software system. Most people do not understand formal languages, but they understand natural languages, therefore it is desirable to have a tool which automatically generates natural language from a formal specification.

Other domains for the application of natural language generation are, e.g. automatic technical documentation generation, automatic weather reports from raw data, explanations in expert systems, medical informatics and machine translation translation between natural languages and translation to multiple natural languages from a source representation.

The process of explaining in natural language is complex and fascinating. The Speaker needs knowledge of the domain to be explained, knowledge about the Hearer's knowledge of the domain; and knowledge of what the Hearer wants or needs to know.

When a Speaker wants to generate natural language, after considering the three previous points, she has to perform several processes: she has to make a content determination from her abundant knowledge base, plan and organize the information to construct a coherent organization, decide on sentence structure and scope, and finally generate the surface form which involves the realization of the syntactic structures and lexical choice.


Figure 1. Some Natural Language generation modules.

When computers produce natural language (NL), they have to perform the same steps. The knowledge base is presentation-independent, parallel, and non-ambiguous. NL on the other hand is presentation-dependent, linear, and may be somewhat ambiguous. This is therefore not a trivial mapping. For the reader familiar with Natural Language Parsing (NLP), is problems in Natural Language Generation (NLG)are considered as hard as problems in NLP. In Figure 1 is presented a schematic diagram of the subprocesses of NLG.