python语言单词_python – 在动词/名词/形容词之间转换单词

这更是一种启发式的方法。我已经编码了它的风格。它使用来自wordnet的derivationally_related_forms()。我已经实施了名词我猜动词的作用类似。从我所测试的工作相当不错:

from nltk.corpus import wordnet as wn

def nounify(verb_word):

""" Transform a verb to the closest noun: die -> death """

verb_synsets = wn.synsets(verb_word, pos="v")

# Word not found

if not verb_synsets:

return []

# Get all verb lemmas of the word

verb_lemmas = [l for s in verb_synsets \

for l in s.lemmas if s.name.split('.')[1] == 'v']

# Get related forms

derivationally_related_forms = [(l, l.derivationally_related_forms()) \

for l in verb_lemmas]

# filter only the nouns

related_noun_lemmas = [l for drf in derivationally_related_forms \

for l in drf[1] if l.synset.name.split('.')[1] == 'n']

# Extract the words from the lemmas

words = [l.name for l in related_noun_lemmas]

len_words = len(words)

# Build the result in the form of a list containing tuples (word, probability)

result = [(w, float(words.count(w))/len_words) for w in set(words)]

result.sort(key=lambda w: -w[1])

# return all the possibilities sorted by probability

return result

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值