我正在尝试使用 NLTK Python 库生成特定句子的所有同义词。我的想法是执行词性标注,而不是根据词性标签生成句子中所有单词的同义词,然后递归地创建所有可能的组合来创建“同义词句子”。
目前,我最大的问题是获取某个单词的同义词的代码会生成该单词所有可能含义的同义词(即来自该单词所属的所有同义词的引理)。
例如,在句子“给我你的号码”中,“号码”这个词可能意味着“电话号码”,我只想得到“电话号码”和“电话号码”等同义词,而不是“”这个词的其他同义词编号”,例如“问题”和“图”。
我很感兴趣是否有任何方法可以获取句子中单词的同义词集(即含义),以便仅将来自该特定同义词集中的词作为同义词。找到一种方法来减少一组可能的同义词也将非常有帮助。
这是我的代码:
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('_')]))