13. A system for identifying keywords, the system comprising: a processor; a memory coupled to the processor, wherein the memory includes instructions that when executed by the processor perform operations comprising: arranging a plurality of neurons into a bidirectional neural network comprising a plurality of layers, the layers including words and documents, the neurons associated with words forming a first layer, and the neurons associated with documents forming a second layer, each neuron having multiple inputs from other neurons, a single output connecting the neuron to other neurons, and a threshold function at the single output, wherein at least some of the neurons of the first layer have connections between them and represent keywords in the documents; wherein the neurons are connected by a plurality of connections, wherein each neuron is connected to only some of the other neurons, such that at least some of the word neurons have connections between them; wherein, in response to an input query, the neural network outputs a plurality of keywords associated with documents that are contextually relevant to the input query, and wherein, in response to input from a user, positions of the keywords on a display relative to each other are changed, such that a change in position of one keyword changes the position of other displayed keywords.
19. The system of claim 13 , wherein the user can inhibit neurons of the neural network by indicating irrelevance of a document.