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.
10. The method of claim 1 , wherein the hierarchical structure is a tree structure, where code units of different levels of the tree structure are represented by different types of code unit.