假设我有两个小字典
posList=['有趣','小说','创意','state-of-the-art']
negList=['过时','直截了当','琐碎']
我有一个新词,说“创新”,这是我所不知道的,我试图通过 NLTK 函数找出它的同义词来找出它的情绪,如果同义词从我的小词典中消失,那么我递归地调用 NLTK查找上次同义词的同义词的功能
开始输入可能是这样的:
从 nltk.corpus 导入 wordnet 创新 = wordnet.synsets('innovative')
对于创新的同义词集:
print synset
print synset.lemmas
它产生这样的输出
Synset('advanced.s.03') [引理('advanced.s.03.advanced'), 引理('advanced.s.03.forward-looking'), 引理('advanced.s.03.innovative' ), 引理('advanced.s.03.modern')] Synset('innovative.s.02') [引理('innovative.s.02.innovative'), 引理('innovative.s.02.innovational' ), 引理('innovative.s.02.grounddriving')]
显然,新词包括“先进”、“前瞻性”、“现代”、“创新”、“开创性”是新词,不在我的字典里,所以现在我应该用这些词作为开始再次调用同义词函数,直到没有新的引理词出现。任何人都可以给我一个演示代码,如何从 Synset 中提取这些引理词并将它们保存在一个集合中?
我认为它涉及处理 Python 中的 re 模块,但我对 Python 还是很陌生。我需要解决的另一点是我只需要形容词,所以引理中只有's'和'a'符号('advanced.s.03.modern'),而不是'v'(动词)或'n '(名词)。
稍后我会尝试计算一个新单词与任何字典单词的相似度分数,我需要定义度量。这个问题很困难,因为根据我的知识,形容词不是按层次结构排列的,也没有可用的度量。任何人都可以建议?