Thanks indeed for all your suggestions. When I try my above codes, what puzzles 
me is that when the data in the dictionary increase, some data become missing 
in the sorted result. Quite odd. In the pairs, we have {'journey':'voyage'} but 
in the sorted result no ('journey-voyage',0.25), which did appear in my first 
post which was a small scale experiment. I am quite puzzled...

>>> pairs = {'car':'automobile', 'gem':'jewel', 
>>> 'journey':'voyage','boy':'lad','coast':'shore', 'asylum':'madhouse', 
>>> 'magician':'wizard', 'midday':'noon', 'furnace':'stove', 'food':'fruit', 
>>> 'bird':'cock', 'bird':'crane', 'tool':'implement', 'brother':'monk', 
>>> 'lad':'brother', 'crane':'implement', 'journey':'car', 'monk':'oracle', 
>>> 'cemetery':'woodland', 'food':'rooster', 'coast':'hill', 
>>> 'forest':'graveyard', 'shore':'woodland', 'monk':'slave', 
>>> 'coast':'forest','lad':'wizard', 'chord':'smile', 'glass':'magician', 
>>> 'rooster':'voyage', 'noon':'string'}
>>> list_simi=[]
>>> for key in pairs:
        word1 = wn.synset(str(key) + '.n.01') 
        word2 = wn.synset(str(pairs[key])+'.n.01') 
        similarity = word1.path_similarity(word2) 
        list_simi.append((key+'-'+pairs[key],similarity))

        
>>> from operator import itemgetter

>>> sorted(list_simi, key=itemgetter(1), reverse=True)
[('midday-noon', 1.0), ('car-automobile', 1.0), ('tool-implement', 0.5), 
('boy-lad', 0.3333333333333333), ('lad-wizard', 0.2), ('monk-slave', 0.2), 
('shore-woodland', 0.2), ('magician-wizard', 0.16666666666666666), 
('brother-monk', 0.125), ('asylum-madhouse', 0.125), ('gem-jewel', 0.125), 
('cemetery-woodland', 0.1111111111111111), ('bird-crane', 0.1111111111111111), 
('glass-magician', 0.1111111111111111), ('crane-implement', 0.1), 
('chord-smile', 0.09090909090909091), ('coast-forest', 0.09090909090909091), 
('furnace-stove', 0.07692307692307693), ('forest-graveyard', 
0.07142857142857142), ('food-rooster', 0.0625), ('noon-string', 
0.058823529411764705), ('journey-car', 0.05), ('rooster-voyage', 
0.041666666666666664)]
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to