1. A computer program product encoding a computer program for executing on a computer system a computer process for computing a classification weighting vector from a training set of training documents, the computer process comprising: determining whether one of the training documents introduces an error within two distinct margins relative to a inner product associated with the one of the training documents; and updating the classification weighting vector based on a document vector of the one of the training documents, if the one of the training documents introduces an error within the two distinct margins.