En utilisant NLTK et WordNet; comment puis-je convertir le temps du verbe simple dans son présent, sous forme de participe passé ou passé?
Question
Utilisation NLTK et WordNet , comment puis-je convertir le temps du verbe simple dans son présent, passé ou passé sous forme participle?
Par exemple:
Je veux écrire une fonction qui me donnerait verbe forme attendue comme suit.
v = 'go'
present = present_tense(v)
print present # prints "going"
past = past_tense(v)
print past # prints "went"
La solution
Je pense que ce que vous cherchez est le nodebox :: Linguistique bibliothèque. Il fait exactement cela:
print en.verb.present("gave")
>>> give
Autres conseils
Avec l'aide de NLTK cela peut aussi être fait. Il peut donner la forme de base du verbe. Mais pas exactement tendue, mais il peut encore être utile. Essayez le code suivant.
from nltk.stem.wordnet import WordNetLemmatizer
words = ['gave','went','going','dating']
for word in words:
print word+"-->"+WordNetLemmatizer().lemmatize(word,'v')
La sortie est:
gave-->give
went-->go
going-->go
dating-->date
Jetez un oeil à la question Stack Overflow NLTK WordNet lemmatiseur: ne serait-il lemmatiser tous les flexions d'un mot .
Pour python3:
git clone https://github.com/clips/pattern
cd pattern
git fetch
git checkout development
pip install mysqlclient
python setup.py install
puis
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
rendements
give ['give', 'gives', 'giving', 'gave', 'given'] gives
thnks à @Agargara pour pointer et auteurs de modèle pour leur beau travail, allez les soutenir; -)
JWI (la bibliothèque WordNet par le MIT) dispose également d'un égrappoir (WordNetStemmer) qui convertit différentes formes morphologiques d'un mot comme ( « écrit », « écrit », « écrit ») à leur forme de base. Il semble que cela ne fonctionne que pour les noms (comme pluriels) et verbes bien.
Mot Découlant en Java avec WordNet et JWNL aussi montre comment faire ce genre de l'aide provenant JWNL, une autre bibliothèque Wordnet basé sur Java: