1. A method for natural language processing on a computing device, comprising: receiving a free text document; parsing, on a computing device, the free text document for gross structure, wherein the gross structure comprises sections, paragraphs and sentences; determining, on the computing device, an application of at least one knowledge base; parsing the free text document for fine structure on the computing device, wherein the fine structure comprises sub-sentences; applying, on the computing device, the parsed document and at least one likelihood vector to a Bayesian network, wherein applying the parsed document and the at least one likelihood vector to the Bayesian network comprises: identifying, on the computing device, possible sets of word-level network assignments for lowest-level phrases in a parse tree; identifying, on the computing device, assignments that have multiple different potential assignments; creating, on the computing device, likelihood vectors for all nodes of the Bayesian network, wherein the likelihood vectors cover all potential assignments; instantiating the likelihood vectors on the computing device; identifying, on the computing device, optimal null assignments for unassigned word-level nodes; and selecting, on the computing device, the highest probability state for each node to obtain an interpretation of the free text document; and outputting meanings and probabilities from the computing device.