1. A method comprising: training a lexical association model between a question and a first set of possible answers; training a semantic association model between the question and a second set of possible answers; receiving a user question containing query words; parsing the user question syntactically and semantically, to yield a parsed user question; expanding the query words based on the lexical association model and the semantic association model, to yield expanded query words; weighting the expanded query words according to importance when answering the user question, to yield a weighted expanded query words; and returning an answer based on a score calculated based on the following equation: score ⁡ ( q , a ) = ∑ w ∈ q , a ⁢ docf ⁡ ( w , q , a ) * qf ⁡ ( w ) + ∑ ne ∈ NE ⁡ ( qp ) , qp ∈ q ⁢ docf ⁡ ( ne , q , a ) * λ sem ⁡ ( qp , ne ) + ∑ v ∈ Exp ⁡ ( w ) , w ∈ q , v ∈ a ⁢ docf ⁡ ( v , q , a ) * λ lex ⁡ ( w , v ) wherein docf represents a normalized frequency distribution function, w represents individual query words, q represents individual questions, a represents individual answers, NE represents a set of named entity tags, ne represents individual named entity tags, qp represents a question phrase, v represents an answer word, w represents a query word, λsem represents a semantic association parameter, λlex represents a lexical association parameter, and qf represents the weighted expanded query words.