You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求支持虚词定义的Python库:替代NLTK中WordNet的方案

解决虚词定义查询的Python库推荐

我太懂你的痛点了!WordNet确实对冠词、介词、代词这类虚词支持拉胯,毕竟它的重心在实词上。下面给你几个非WordNet依赖的方案,完美解决虚词定义的问题:

1. WiktionaryParser

这个库直接从维基词典获取数据,能查到几乎所有词语的定义,包括你说的who、the、from这些虚词。用法超简单:

首先安装:

pip install wiktionaryparser

然后写代码:

from wiktionaryparser import WiktionaryParser
parser = WiktionaryParser()

# 查询"the"的定义
result = parser.fetch('the')
# 提取第一个最常用的定义
print(result[0]['definitions'][0]['text'])

它会返回详细的词性标注和多层定义,完全满足虚词查询需求。

2. 自定义虚词词典

如果不想依赖外部数据源,其实常用虚词的数量有限,你可以自己构建一个小型词典,速度快还稳定:

# 可根据需求不断扩充这个字典
function_words_defs = {
    'the': '定冠词,用于特指某个已经提及或双方都知道的人、事物或概念',
    'who': '代词,主要用于询问人的身份,也可引导定语从句指代人',
    'from': '介词,用来表示起点、来源、时间范围、材料出处等',
    'and': '并列连词,用于连接两个或多个并列的单词、短语或句子'
}

def get_word_definition(word):
    lower_word = word.lower()
    return function_words_defs.get(lower_word, f"暂未收录'{lower_word}'的定义")

# 测试
print(get_word_definition('from'))

这个方案的好处是完全本地化,不需要网络请求,适合对稳定性要求高的场景。

3. PyDictionary(切换数据源)

如果你已经在用PyDictionary,其实可以让它调用维基词典而不是WordNet,这样也能查到虚词:

安装:

pip install PyDictionary

代码示例:

from PyDictionary import PyDictionary
dict_obj = PyDictionary()

# 查询"who"的定义,disable_errors避免查不到时抛出异常
meaning = dict_obj.meaning('who', disable_errors=True)
print(meaning)

不过这个方法偶尔会有网络请求延迟,不如WiktionaryParser稳定,但胜在API简单易上手。

内容的提问来源于stack exchange,提问作者user9453304

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:11:05