1. A method comprising: receiving, by a processing device, a data set, wherein the data set is annotated with at least a first annotation and at least a second annotation, wherein at least the first annotation and the second annotation represent characteristics within the data set; determining, by the processing device, a first identifier from the first annotation and a second identifier from the second annotation; associating, by the processing device, the first identifier to the second identifier to generate a joined identifier; computing, by the processing device, feature weights and transition weights for the annotated data set based on at least the first identifier, at least the second identifier, and at least the joined identifier and transitions between each of the first, the second and the joined identifiers; receiving, by the processing device, a second data set, wherein the second data set is un-annotated; and classifying, by the processing device, the second data set based on the computed feature weights and the transition weights.