1. A non-transitory computer readable medium storing a program which when executed by at least one processing unit identifies an entity having an entity attribute in a document, the program comprising sets of instructions for: receiving, from each process of a plurality of processes, a corresponding set of candidate identity attributes that are each for identifying a particular entity having said entity attribute specified in the document, wherein each process of the plurality of processes generates the corresponding set of candidate identity attributes based on the entity attribute specified in the document; calculating a score for each candidate identity attribute in the sets of candidate identity attributes, the calculating of a score for a particular candidate identity attribute comprising (1) identifying a set of tokens in the particular candidate identity attribute, (2) assigning a value to each token in the set of tokens based on a token count that represents a number of instances of the token across the sets of candidate identity attributes and (3) calculating the score based on the assigned values; and identifying, based on the scores calculated for the candidate identity attributes, an identity attribute from the sets of candidate identity attributes that identifies the entity having said entity attribute specified in the document, wherein a process in the plurality of processes comprises a service that identifies the set of candidate identity attributes based on a probability of a set of keywords appearing in the document.