tutorial spanish ner ejemplos ejemplo con python nlp nltk wordnet

python - spanish - Usando NLTK y WordNet; ¿Cómo convierto el verbo en tiempo presente a su forma de participio presente, pasado o pasado?



tutorial nltk python (4)

Al usar NLTK y WordNet , ¿cómo convierto el verbo en tiempo simple a su forma de participio presente, pasado o pasado?

Por ejemplo:

Quiero escribir una función que me dé el verbo en la forma esperada de la siguiente manera.

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


Con la ayuda de NLTK esto también se puede hacer. Puede dar la forma base del verbo. Pero no es el tiempo exacto, pero aún puede ser útil. Prueba el siguiente código.

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

La salida es:

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

Eche un vistazo a la pregunta sobre el desbordamiento de pila NLTK WordNet Lemmatizer: ¿No debería minimizar todas las inflexiones de una palabra? .


Creo que lo que estás buscando es la biblioteca NodeBox::Linguistics . Hace exactamente eso:

print en.verb.present("gave") >>> give


JWI (la biblioteca de WordNet por MIT) también tiene un stemmer (WordNetStemmer) que convierte diferentes formas morfológicas de una palabra como ("escrito", "escribe", "escribió") en su forma básica. Parece que funciona solo para los sustantivos (como los plurales) y los verbos.

Word Stemming en Java con WordNet y JWNL también muestra cómo hacer este tipo de derivación utilizando JWNL, otra biblioteca de Wordnet basada en Java:


Para Python3:

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

entonces

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

rendimientos

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

gracias a @Agargara por señalar y a los autores de Pattern por su hermoso trabajo, apóyelos ;-)