我在找一个单词的语法集。以下是我的代码:
from nltk.corpus import wordnet as wn
from nltk import pos_tag
def getSynonyms(word1):
synonymList1 = []
for data1 in word1:
wordnetSynset1 = wn.synsets(data1)
tempList1=[]
for synset1 in wordnetSynset1:
synLemmas = synset1.lemma_names()
for i in xrange(len(synLemmas)):
word = synLemmas[i].replace('_',' ')
tempList1.append(pos_tag(word.split()))
synonymList1.append(tempList1)
return synonymList1
word1 = ['study']
syn1 = getSynonyms(word1)
print syn1
输出如下:
^{pr2}$如我们所见,'study','NN'
出现了不止一次
如何为每个同义词只打印一次而不重复?在
所以每个同义词只代表一个同义词
不要总是附加到for循环中的列表中,而是在
tempList1.append(pos_tag(word.split()))
行中。你应该检查你试图添加的元素是否已经在列表中了。有一个简单的if语句检查就可以了。在这是一个不会添加两次的元素。在
syn1=设置(getSynonyms(word1))
将返回的列表放入集合将删除重复项。我在这里假设顺序并不重要,因为集合没有定义的顺序。在
相关问题 更多 >
编程相关推荐