1. A method, performed using one or more processors, of generating annotated training data for training a natural language understanding system, comprising: generating, with the natural language understanding system running on one or more of the processors, a proposed annotation for each of a plurality of units of unannotated training data received via one or more input components; calculating, with one or more of the processors, a confidence measure for each of a plurality of different portions of the proposed annotations for a given unit of the training data; displaying on an output component a proposed annotation for a given unit of the training data, with portions of the proposed annotation for which the confidence measure is below a threshold being displayed in a visually contrasting way to other portions of the proposed annotation; receiving user selection of a selected portion of the proposed annotation displayed; displaying on the output component at least some proposed alternative annotations, for the selected portion of the proposed annotation, in an order based on the confidence measures of the proposed alternative annotations, with one or more input components providing one or more user-actuable inputs configured for verification of the proposed alternative annotations and one or more user-actuable inputs configured for deletion of the proposed alternative annotations; when an input for verification is received, responding, with one or more of the processors, to the input for verification of one of the proposed alternative annotations by storing the verified annotation for the portion of the given unit of the training data; and when an input for deletion is received, responding, with one or more of the processors, to the input for deletion of one of the proposed alternative annotations by presenting on an output component at least some of the remaining proposed alternative annotations in an order based on the confidence measures of the remaining proposed alternative annotations.