1. A system comprising: at least one processor; and memory encoding computer executable instructions that, when executed by at least one processor, perform a method for interpreting incomplete natural language expressions, the method comprising: receiving input from a client device, the user input comprising an incomplete natural language expression, wherein the incomplete natural language expression is a string of characters with one or more missing characters; extracting one or more n-grams from the incomplete natural language expression; analyzing the extracted one or more n-grams to determine a set of possible domains; assigning a confidence level to each possible domain of the set of possible domains, wherein the confidence level for at least one possible domain exceeds a predetermined confidence threshold; predicting an intent of a user associated with the at least one possible domain; and initiating at least one domain application for performing the predicted intent; predicting at least one slot for executing at least one function; receiving a selection, wherein the received selection indicates confirmation that the at least one function reflects an actual intent of the user; and training a natural language analysis component based on at least the received selection indicating confirmation.