1. A method comprising: accessing a document stored in one or more tangible media, the document comprising a plurality of text units, a text unit comprising a plurality of words, the plurality of words comprising a plurality of keywords; performing the following for each text unit: establishing relatedness among the keywords of each text unit; and selecting one or more keywords according to the established relatedness as one or more candidate tags to yield a candidate tag set for the each text unit; and determining relatedness between the candidate tags of each candidate tag set and the candidate tags of other candidate tag sets; and assigning at least one candidate tag to the document according to the determined relatedness.