1. A neural network based system for spell correction and tokenization of natural language, said system comprising: An artificial neural network architecture, to generate variable length ‘character level output streams’ for system fed variable length ‘character level input streams’; An auto-encoder for injecting random character level modifications to the variable length ‘character level input streams’, wherein the characters include a space-between-token character; and An unsupervised training mechanism for adjusting said neural network to learn correct variable length ‘character level output streams’, wherein correct variable length ‘character level output streams’ needs to be similar to respective original variable length ‘character level input streams’ prior to their random character level modifications.