1. A method of constructing a first natural language model for use by a first Natural Language Processing (NLP) application of a plurality of NLP applications, wherein each NLP application of the plurality of NLP applications receives one or more of a natural language based input and a derivative of the natural language based input, the method comprising: processing at least one input by a second NLP application of the plurality of NLP applications; generating at least one output based on the processing of the second NLP application; and constructing at least a portion of the first natural language model based on the at least one output.