1. A method of searching a plurality of data files, wherein each data file includes a plurality of data items, the method comprising: using a processor to: select training corpora; train a language model for speech processing using said selected corpora; process speech using said language model, wherein selecting training corpora includes: inputting at least one data file relating to the subject matter of the speech to be processed; determining a plurality of index items, wherein each index item includes a combination of n data items and n is an integer of 2 or more; expressing each data file as a file vector with each component of the vector indicating the frequency of a different index item within the data file, wherein the index items to which the components of the vector correspond are the same for all data files, and wherein the n data items which constitute an index item do not have to be located adjacent to one another in a data file, and at least one index item includes data items from more than one data file; and expressing a search query using said index items as a vector; and search said plurality of data files by comparing the search query expressed as a vector with said file vectors.