Metadata for a programming event may be generated by receiving descriptive information and timing information for the programming event and analyzing this information to determine category goodness of fit scores for the programming event corresponding to categories of a classification hierarchy. The information is further analyzed to determine keywords associated with the programming event. The category goodness of fit scores and keywords may be stored along with time data and descriptive data for the programming event as metadata for the programming event. Goodness of fit scores may also be generated for the keywords. Related embodiments may pertain to a device implementing such processing. Keyword metadata may be generated using candidate keywords taken from descriptive data associated with the programming event. The candidate key words may be provided individually as inputs to a classification tool configured to generate goodness of fit scores for categories of a classification hierarchy. Keywords may then be selected from among the candidates based on their individual scores, and stored as part of the metadata for the programming event. The scores of the keywords may be stored in association with the keywords.