1. A computer system for categorizing objects, comprising: one or more processors; and an index generator operably creating a weighted index using a collection of training objects; wherein each training object comprises one or more features from a plurality of features and each feature has associated one or more categories from a plurality of categories; wherein creating the weighted index includes: determining associations between the plurality of features and the plurality of categories; assigning weights to the associations; wherein assigning weights to the associations includes assigning a weight value to each association of a plurality of associations involving a particular feature; wherein each association of the plurality of associations is between the particular feature and a distinct category of the plurality of categories; wherein the weight values assigned to the plurality of associations establish a ranked list of categories for the particular feature; receiving an additional training object comprising a mapping between the particular feature and one or more categories from the plurality of categories; dynamically updating at least one weight in the weighted index to reflect the mapping between the particular feature and the one or more categories; creating an updated ranked list of categories for the particular feature that reflects the at least one weight; outputting the updated ranked list of categories for the particular feature.