1. A method for classifying a financial transaction of an item, comprising: receiving a text description of the item involved in the financial transaction; processing, using a computer processor, the text description of the item to generate a search term; selecting, based on the search term, a set of named categories of a plurality of named categories; conducting, using a first search engine determined by a search algorithm, a first search for the search term and each named category of the set of named categories; processing, using the computer processor, a first plurality of results of the first search; calculating, using the first plurality of results of the first search and an affinity algorithm, an affinity score of a plurality of affinity scores for each named category of the set of named categories; identifying a first target affinity score of the plurality of affinity scores, wherein the affinity algorithm for one of the set of named categories uses the function: log {n(x & y)/[n(x)×n(y)]}, wherein n(x) is a first number of web pages comprising the search term, n(y) is a second number of web pages comprising the one of the set of named categories, n(x & y) is a third number of web pages comprising the search term and the one of the set of named categories, and log is a logarithm; identifying a target category from the set of named categories based on the first target affinity score; presenting, to a user, the text description of the item involved in the financial transaction and the target category; receiving feedback that the target category for the financial transaction is incorrect; generating a revised set of named categories by removing the target category from the set of named categories; conducting, using the search algorithm, a second search for the search term and each named category of the revised set of named categories; and presenting, based on a second plurality of results of the second search, a revised target category based on a second target affinity score.