1. A method of calculating similarity or substantial similarity between a first chemical descriptor and at least one other chemical descriptor in a matrix representing a plurality of chemical and textual descriptors, comprising the steps of: (a) creating at least one chemical descriptor and at least one textual descriptor for each compound in a collection of compounds; (b) preparing a descriptor matrix X, wherein the descriptor matrix comprises: a plurality of columns, each column representing a text source containing textual and chemical descriptions, and; a plurality of rows, each row comprising a descriptor associated with each respective text source, wherein the entries in the descriptor matrix indicate the number of times a descriptor occurs in each respective text source; (c) performing a singular value decomposition (SVD) of the descriptor matrix to produce resultant matrices; (d) using at least one of the resultant matrices to compute the similarity between the first chemical descriptor d i and the at least one other chemical descriptor d j ; and e) outputting at least a subset of the at least one other chemical descriptor ranked in order of similarity to the first chemical descriptor.