1. A method for providing language translation, the method comprising: providing a plurality of words in an input language to a computer device; evaluating a linguistic structure of the plurality of words in the input language; evaluating semantics of the plurality of words in the input language; evaluating the plurality of words in the input language using linguistic descriptions of the input language; translating the plurality of words in the input language to an expression in an output language; identifying at least one word of the plurality of words in the input language that has a syntactic ambiguity or a semantic ambiguity; displaying on a user interface two or more options corresponding to two or more meanings associated with said syntactic ambiguity or said semantic ambiguity; receiving an indication of selection of one or more of the two or more options corresponding to two or more meanings; and displaying an indication of the selection of the one or more of the two or more options corresponding to said two or more meanings.