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

WordNet无法返回"South Korean"的Pertainym,升级至3.1仍无效

解决WordNet中带空格形容词的Pertainym查询报错问题

你遇到的问题确实是带空格的多词词汇输入格式不对导致的。WordNet里的多词lemma(比如"South Korean")是用下划线_代替空格来存储的,直接用空格输入会找不到对应的lemma。

正确的代码写法

直接把输入里的空格换成下划线即可:

from nltk.corpus import wordnet as wn

input_lemma = "south_korean.a.01.south_korean"
lemma = wn.lemma(input_lemma)
# 获取Pertainym并输出
print([p.name() for p in lemma.pertainyms()])  # 输出: ['south_korea']

更稳妥的方式(避免手动拼错格式)

也可以先定位到对应的synset,再从中获取lemma,不用手动拼接标识符:

from nltk.corpus import wordnet as wn

# 找到形容词词性的synset
sk_synset = wn.synset("south_korean.a.01")
# 获取该synset下的第一个lemma(这里只有一个)
lemma = sk_synset.lemmas()[0]
# 提取Pertainym
print([p.name() for p in lemma.pertainyms()])

为什么单字形容词(如Chinese、Russian)没问题

因为这类单字词汇没有空格,你输入的格式和WordNet内部存储的完全一致,所以能正常匹配到lemma;而带空格的多词词汇必须统一用下划线替换空格,这是WordNet的标准存储规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 18:36:43