wordnet semantic similarity: how to refer to elements of a pair in a list? can we sort dictionary according to the value?

Token Type typetoken at gmail.com
Mon Oct 8 23:13:12 EDT 2012


yes, thanks all your tips. I did try sorted with itemgetter. However, the sorted results are same as follows whether I set reverse=True or reverse= False. Isn't it strange? Thanks.

>>> import nltk
>>> from nltk.corpus import wordnet as wn
>>> pairs = {'car':'automobile', 'gem':'jewel', 'journey':'voyage'}
>>> for key in pairs:
	list_simi=[]
	from operator import itemgetter
        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))
        sorted(list_simi, key=itemgetter(1), reverse=True)

        
[('car-automobile', 1.0)]
[('journey-voyage', 0.25)]
[('gem-jewel', 0.125)]
>>> for key in pairs:
	list_simi=[]
	from operator import itemgetter
        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))
        sorted(list_simi, key=itemgetter(1), reverse=False)

        
[('car-automobile', 1.0)]
[('journey-voyage', 0.25)]
[('gem-jewel', 0.125)]



More information about the Python-list mailing list