1. A computer implemented method of generating answers to natural language questions, said method comprising: receiving said natural language question; processing said question using a plurality of natural language processing techniques to obtain a plurality of searchable components; conducting a first search in a corpus based on said plurality of searchable components to obtain a plurality of relevant documents; analyzing said plurality documents to generate a plurality of candidate answers; after said candidate answers are generated, retrieving a plurality of supporting passages from said corpus based on said candidate answers; generating a confidence score for each candidate answer based on said supporting passages; and outputting said candidate answers and associated confidence scores.