使用NLTK和WordNet;如何将简单时态动词转换成现在分词、过去分词或过去分词形式?

2024-04-26 03:37:21 发布

您现在位置:Python中文网/ 问答频道 /正文

使用NLTK和WordNet,如何将简单时态动词转换为现在、过去或过去分词形式?

例如:

我想写一个函数,给我一个预期形式的动词如下。

v = 'go'
present = present_tense(v)
print present # prints "going"

past = past_tense(v)
print past # prints "went"

Tags: 函数go动词printswordnet形式pastprint
2条回答

对于Python3:

git clone https://github.com/clips/pattern
cd pattern
git fetch
git checkout development
pip install mysqlclient
python setup.py install

那么

from pattern.en import conjugate, lemma, lexeme,PRESENT,SG
print (lemma('gave'))
print (lexeme('gave'))
print (conjugate(verb='give',tense=PRESENT,number=SG)) # he / she / it

收益率

give ['give', 'gives', 'giving', 'gave', 'given'] gives

感谢@Agargara为他们美丽的作品指点图案的作者,去支持他们;-)

在NLTK的帮助下,也可以做到这一点。它可以给出动词的基本形式。但不是确切的时态,但它仍然是有用的。请尝试以下代码。

from nltk.stem.wordnet import WordNetLemmatizer
words = ['gave','went','going','dating']
for word in words:
    print word+"-->"+WordNetLemmatizer().lemmatize(word,'v')

输出为:

gave-->give
went-->go
going-->go
dating-->date

看看堆栈溢出问题。

相关问题 更多 >