2024-05-23 18:43:30 发布
网友
有没有办法获得比较级/最高级形容词的阳性形式? 例如:更好->好;最大->大。 我使用NLTK的最新版本。在
您可以尝试使用Pattern library
它为您的用例提供了一些有用的API:
from pattern.en import comparative comparative(‘cool’)
这给了
最高级的
from pattern.en import superlative superlative(‘cool’)
'coolest'
Web演示:comparative和superlative
您可以尝试使用NLTK中的wordnet gloss/definition:
from ntlk.corpus import wordnet as wn for ss in wn.all_synsets(): if "(comparative of" in ss.definition: comp = ss.definition.split("`")[1].split("'")[0] for l in ss.lemma_names: print l, comp
但是请注意,在定义中只有13个synset用比较信息编码(for NLTK v.2.0.4)。也不可能得到比较词的层次结构(例如best > better > good)。在
NLTK v.2.0.4
best > better > good
我遇到了同样的问题,在网上搜索没有答案,然后发现其实可以用WordNetlemmatizer中的nltk来完成。在
WordNet
lemmatizer
nltk
回想一下,WordNet有那些简化的pos标记:
n NOUN v VERB a ADJECTIVE s ADJECTIVE SATELLITE r ADVERB
其中,形容词标记a和{}可用于规范化。在
a
这里第二个参数起到了神奇的作用。如果留空,则默认为'n',或lemmatize()中的wordnet.NOUN。类似地,它应该明确地放在'v'或{}来规范化动词和副词。在
'n'
lemmatize()
wordnet.NOUN
'v'
您可以尝试使用Pattern library
它为您的用例提供了一些有用的API:
这给了
^{pr2}$最高级的
这给了
Web演示:comparative和superlative
您可以尝试使用NLTK中的wordnet gloss/definition:
但是请注意,在定义中只有13个synset用比较信息编码(for
NLTK v.2.0.4
)。也不可能得到比较词的层次结构(例如best > better > good
)。在我遇到了同样的问题,在网上搜索没有答案,然后发现其实可以用
WordNet
lemmatizer
中的nltk
来完成。在回想一下,WordNet有那些简化的pos标记:
其中,形容词标记}可用于规范化。在
^{pr2}$a
和{这里第二个参数起到了神奇的作用。如果留空,则默认为}来规范化动词和副词。在
'n'
,或lemmatize()
中的wordnet.NOUN
。类似地,它应该明确地放在'v'
或{相关问题 更多 >
编程相关推荐