如何从Python的NLTK WordNet获取同义词/反义词
WordNet属于Python自然语言工具包的一部分。它是一个包含英语名词、形容词、副词和动词的大型单词数据库。这些单词被分组成一些称为 synsets 的认知同义词。
要使用Wordnet,首先必须安装NLTK模块,然后下载WordNet包。
$ sudo pip3 install nltk
$ python3
>>> import nltk
>>>nltk.download('wordnet')
在wordnet中,有一些单词组,它们的含义相同。
在第一个示例中,我们将看到wordnet如何返回单词的含义和其他详细信息。有时,如果有一些示例可用,它也可能提供那些东西。
阅读更多:Python 教程
示例代码
from nltk.corpus import wordnet #从NLTK导入Wordnet
synset = wordnet.synsets("Travel")
print('单词和类型: ' + synset[0].name())
print('Travel的同义词是: ' + synset[0].lemmas()[0].name())
print('单词的含义: ' + synset[0].definition())
print('Travel的例子: ' + str(synset[0].examples()))
输出
$ python3 322a.word_info.py
单词和类型: travel.n.01
Travel的同义词是: travel
单词的含义: the act of going from one place to another
Travel的例子: ['he enjoyed selling but he hated the travel']
$
在前一个例子中,我们获取了一些单词的详细信息。这里我们将看到wordnet如何发送给定单词的同义词和反义词。
示例代码
import nltk
from nltk.corpus import wordnet #从NLTK导入Wordnet
syn = list()
ant = list()
for synset in wordnet.synsets("Worse"):
for lemma in synset.lemmas():
syn.append(lemma.name()) #将同义词添加到列表中
if lemma.antonyms(): #当有反义词时,将它们添加到列表中
ant.append(lemma.antonyms()[0].name())
print('同义词: ' + str(syn))
print('反义词: ' + str(ant))
输出
$ python3 322b.syn_ant.py
同义词: ['worse', 'worse', 'worse', 'worsened', 'bad', 'bad', 'big', 'bad', 'tough', 'bad', 'spoiled', 'spoilt', 'regretful', 'sorry', 'bad', 'bad', 'uncollectible', 'bad', 'bad', 'bad', 'risky', 'high-risk', 'speculative', 'bad', 'unfit', 'unsound', 'bad', 'bad', 'bad', 'forged', 'bad', 'defective', 'worse']
反义词: ['better', 'better', 'good', 'unregretful']
$
NLTK wordnet还有一个很棒的功能,我们可以通过它来检查两个单词是否相似。它将返回一对单词的相似度比率。
示例代码
import nltk
from nltk.corpus import wordnet #从NLTK导入Wordnet
first_word = wordnet.synset("Travel.v.01")
second_word = wordnet.synset("Walk.v.01")
print('相似度: ' + str(first_word.wup_similarity(second_word)))
first_word = wordnet.synset("Good.n.01")
second_word= wordnet.synset("zebra.n.01")
print('相似度: ' + str(first_word.wup_similarity(second_word)))
输出
$ python3 322c.compare.py
相似度: 0.6666666666666666
相似度: 0.09090909090909091
$
极客教程