1. A method for a computer system to interpret an input from a user and generate a response to the user input, comprising: receiving the user input; converting the user input into a one-dimensional token array having at least one token, wherein each one-dimensional token corresponds to a portion of the user input; generating a root token array, corresponding to the one-dimensional token array, having at least one root token, wherein each root token corresponds to a root from which one of the one-dimensional tokens is derived; generating a multi-dimensional token array, based on the root token array, having a plurality of tokens, wherein each token corresponds to at least one root token; and determining a match between the multi-dimensional token array and the one-dimensional token array, wherein determination of the match comprises: traversing the multi-dimensional token array to identify a combination of tokens in the multi-dimensional token array, wherein the combination of tokens corresponds to a dimension of the multi-dimensional token array, comparing the combination of tokens corresponding to the dimension of the multi-dimensional token array to the tokens from the one-dimensional token array, determining a weighting for the combination of tokens, storing the weighting and an identification of the combination of tokens in a memory; determining a plurality of possible responses to the user input; and generating a response to the user input.