我正在尝试使用NLTK Python库生成特定句子的所有同义词。我的想法是执行POS标签,而不是基于POS标签生成句子中所有单词的同义词,然后递归创建所有可能的组合以创建“同义词句子”。
当前,我最大的问题是用于获取某个单词的同义词的代码会生成该单词所有可能含义的同义词(即,该单词所属的所有同义词集的引理)。
例如,在句子“给我您的电话号码”中,“电话号码”一词可能表示“电话号码”,而我只想获取诸如“电话号码”和“电话号码”之类的同义词,而不会获得“数字”一词,例如“问题”和“图”。
我很感兴趣是否有任何方法可以获取句子中单词的同义词集(即含义),以便仅将特定同义词集中的单词用作同义词。找到减少一组可能的同义词的方法也将非常有帮助。
这是我的代码:
word_synonyms=set([])
for syn in wn.synsets(word, pos = pos_tag):
for lm in syn.lemmas():
word_synonyms.add(" ".join([lemma_el for lemma_el in lm.name().split('_')]))