1. A method, for extracting table information from an unstructured document using a table extraction system that comprises a processor and table extraction logic stored in memory, wherein the processor executes the table extraction logic to perform operations comprising: annotating text of the unstructured document with annotations using domain knowledge of the unstructured document to produce annotated table cell data; generating a candidate table for each of a plurality of table models using the annotated table cell data, wherein the plurality of table models for the unstructured document are selected by determining a domain for the unstructured document; and selecting table models that are suitable for use with the determined domain; scoring each of the candidate tables; selecting a highest scoring candidate table; and providing the highest scoring candidate table.