NLTK WordNet:从 NLTK WordNet 中查找同义词 Python
什么是 Wordnet?
Wordnet 是一个 NLTK 语料库阅读器,是英语词汇数据库。它可用于查找单词、同义词或反义词的含义。可以将其定义为面向语义的英语词典。使用以下命令导入它:
from nltk.corpus import wordnet as guru
在 NLTK WordNet 中查找同义词 Python
统计数据显示 155287 个单词和 117659 个同义词 包含在 English WordNet 中的集合。
可以通过输入 dir(guru) 找到 WordNet 可用的不同方法
['_LazyCorpusLoader__args', '_LazyCorpusLoader__kwargs', '_LazyCorpusLoader__load', '_LazyCorpusLoader__name', '_LazyCorpusLoader__reader_cls', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattr__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__'、'__sizeof__'、'__str__'、'__subclasshook__'、'__unicode__'、'__weakref__'、'_unload'、'subdir'、'unicode_repr']
让我们了解 wordnet 的一些功能:
同义词集:它也被称为同义词集或同义词集合。让我们看一个例子
from nltk.corpus import wordnet syns = wordnet.synsets("dog") print(syns)
输出:
[Synset('dog.n.01'), Synset('frump.n.01'), Synset('dog.n.03'), Synset('cad.n.01'), Synset('frank.n.02'), Synset('pawl.n.01'), Synset('andiron.n.01'), Synset('chase.v.01')]
词汇关系:这些是相互的语义关系。如果 {x1,x2,…xn} 和 {y1,y2,…yn} 之间存在关系,那么 {y1,y2,…yn} 和 {x1,x2,…xn} 之间也存在关系。例如,同义词与反义词或上义词相对,而下义词是词汇概念的类型。
让我们使用编写一个程序 蟒蛇 使用 Wordnet 查找单词“active”的同义词和反义词。
from nltk.corpus import wordnet synonyms = [] antonyms = [] for syn in wordnet.synsets("active"): for l in syn.lemmas(): synonyms.append(l.name()) if l.antonyms(): antonyms.append(l.antonyms()[0].name()) print(set(synonyms)) print(set(antonyms))
代码的输出:
{'dynamic', 'fighting', 'combat-ready', 'active_voice', 'active_agent', 'participating', 'alive', 'active'} — 同义词
{'stative', 'passive', 'quiet', 'passive_voice', 'extinct', 'dormant', 'inactive'} — 反义词
代码说明
- Wordnet 是一个语料库,因此它是从 ntlk.corpus 导入的
- 同义词和反义词列表均视为空,将用于附加
- 在模块同义词集中搜索单词 active 的同义词,并将其添加到同义词列表中。对第二个同义词重复相同的过程。
- 打印输出
结语
WordNet 是一个词汇数据库,已被许多主要 搜索引擎。从 WordNet 中,可以计算出有关给定单词或短语的信息,例如
- 同义词(含义相同的词)
- 上位词(用于指代一类具体事物的通用术语(例如,meal 是早餐),下位词(rice 是一顿饭)
- 全称(蛋白质、碳水化合物是膳食的一部分)
- 部分名词(膳食是每日食物摄入的一部分)
WordNet 还提供有关并列词、派生词、意义等的信息。它用于查找任意两个单词之间的相似性。它还保存有关相关单词结果的信息。简而言之,可以将其视为词典或同义词库。深入研究 wordnet,它总共分为四个子网,例如
- 名词
- 动词
- 形容词
- 副词
它可用于人工智能领域的文本分析。借助 Wordnet,您可以创建用于拼写检查、语言翻译、垃圾邮件检测等的语料库。
同样,您可以使用这个语料库并塑造它以实现一些动态功能。这就像为您准备好的语料库。您可以按照自己的方式使用它。