1. A method for tagging code, comprising: building a code structure based description unit association model (CDAM) that associates code units with respective description units and organizes the code units in a hierarchical structure; filtering the CDAM to remove un-meaningful description units from the CDAM through cross-validation between code units; and generating feature tags, using a processor, based on a weighted sum of term frequencies in the description units of the filtered CDAM to associate features with respective code units.