I don't know why lemma_list = [synset.lemma_names for synset in synset_list] will lead to such an error.
I have to use extend to solve the problem for lemma_list. The following codes are successful, take all the nouns as an example: >>> def average_polysemy(pos): synset_list = list(wn.all_synsets(pos)) sense_number = 0 lemma_list = [] for synset in synset_list: lemma_list.extend(synset.lemma_names) for lemma in lemma_list: sense_number_new = len(wn.synsets(lemma, pos)) sense_number = sense_number + sense_number_new return sense_number/len(synset_list) >>> average_polysemy('n') 3 > > I wrote the following function to solve it. However, it pops up > "AttributeError: 'list' object has no attribute 'lower'". Quite confused, I > supposed [synset.lemma_names for synset in synset_list] has made all the > lemma into a list, hasn't it? > > > > >>> def average_polysemy(pos): > > synset_list = list(wn.all_synsets(pos)) > > lemma_list = [synset.lemma_names for synset in synset_list] > > sense_number = 0 > > for lemma in lemma_list: > > sense_number_new = len(wn.synsets(lemma, pos)) > > sense_number = sense_number + sense_number_new > > return sense_number/len(synset_list) > > > > >>> average_polysemy('n') > > > > Traceback (most recent call last): > > File "<pyshell#54>", line 1, in <module> > > average_polysemy('n') > > File "<pyshell#53>", line 6, in average_polysemy > > sense_number_new = len(wn.synsets(lemma, pos)) > > File "C:\Python27\lib\site-packages\nltk\corpus\reader\wordnet.py", line > 1191, in synsets > > lemma = lemma.lower() > > AttributeError: 'list' object has no attribute 'lower' > > > > Thanks for your tips -- http://mail.python.org/mailman/listinfo/python-list