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 discriminating ambiguous requests comprising: receiving a natural language expression, wherein the natural language expression includes at least one of words, terms, and phrases of text; creating a dialog hypothesis set from the natural language expression by using contextual information, wherein the dialog hypothesis set has a first dialog hypothesis corresponding to a first domain and a second dialog hypothesis corresponding to a second domain; generating, from a first domain engine component and a second domain engine component, a plurality of dialog responses for the dialog hypothesis set; ranking by machine learning techniques the first domain engine component and the second domain engine component based on an analysis of the plurality of the dialog responses; and performing an action with the highest ranked domain engine component.