A computer program product, comprising a computer-readable hardware storage device having a computer-readable program code stored therein, the program code configured to be executed by a natural-language generation system comprising a processor, a memory coupled to the processor, and a computer-readable hardware storage device coupled to the processor, the storage device containing program code configured to be run by the processor via the memory to implement a method for self-learning natural-language generation, method comprising:
- the processor retrieving raw data from one or more extrinsic sources;
- the processor partitioning the raw data into short-term data that is more recent than a predetermined threshold date and long-term data that is at least as old as the threshold date;
- the processor receiving a set of short-term legacy reports that comprise natural-language translations of subsets of the short-term data and a set of long-term legacy reports that comprise natural-language translations of subsets of the long-term data;
- the processor generating a set of NLG-generated reports by using the inferred rules to translate the raw data into natural language;
- the processor comparing the NLG-generated reports to the short-term legacy reports and to the long-term legacy reports;
- the processor updating the translation rules such that the updated translation rules translate the received raw data into natural language that more closely matches natural language comprised by the short-term legacy reports and by the long-term legacy reports;
- the processor performing a diachronic linguistic analysis that identifies linguistic differences between the short-term legacy reports and the long-term legacy reports;
- the processor inferring, as a function of the linguistic differences, one or more translation rules by which a rules engine of the NLG system generates natural-language text;
- and
- the processor storing the one or more translation rules in a rulebase of the NLG system.