1. A computer program product for comparing names, the computer program product comprising: a computer readable storage medium having computer readable program code embodied therewith, wherein the non-transitory computer readable program code, when executed by at least one processor of a computer, is configured to perform: receiving, into the computer, a first name for comparison; for each pair of names including the first name and a second name selected from a set of names: identifying features of the first name that comprise semantic relationships that include information about cultural derivation, hierarchical relationships that describe dependency relationships between multiple words that form a first name phrase within the first name, position information for each of the words in the first name phrase, and position information for name phrases in the first name; identifying features of the second name that comprise semantic relationships that include information about cultural derivation, hierarchical relationships that describe dependency relationships between multiple words that form a second name phrase within the second name, position information for each of the words in the second name phrase, and position information for name phrases in the second name; obtaining a first phrase score by comparing the first name phrase in the first name to the second name phrase in the second name; obtaining a second phrase score by comparing another name phrase in the first name to another name phrase in the second name; generating an overall score for the pair of names based on the obtained first phrase score and the obtained second phrase score; and updating the overall score for the pair of names based on comparing the features of the first name with the features of the second name; and providing, with the computer, a list of the second names from the set of second names that matched the first name in order of the updated score for each pair of names.