Usando NLTK y WordNet; ¿Cómo convierto sencilla tiempo verbal en su presente forma de participio pasado o pasado?

StackOverflow https://stackoverflow.com/questions/3753021

  •  04-10-2019
  •  | 
  •  

Pregunta

El uso de NLTK y WordNet , ¿cómo puedo convertir verbo simple tensa en su presente, pasado o participio pasado?

Por ejemplo:

Quiero escribir una función que me daría verbo en forma esperada de la siguiente manera.

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

past = past_tense(v)
print past # prints "went"
¿Fue útil?

Solución

Creo que lo que estás buscando es la nodebox :: Lingüística biblioteca. Se hace exactamente eso:

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

Otros consejos

Con la ayuda de NLTK esto también se puede hacer. Se puede dar la forma de base del verbo. Pero no la exacta tensa, pero todavía puede ser útil. Pruebe 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

Para consultar el desbordamiento de pila pregunta NLTK WordNet lematizador:? ¿No debería lemmatize todas las inflexiones de una palabra .

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

Thnks a @Agargara para señalar y autores de patrón para su hermoso trabajo, ir apoyarlos; -)

JWI (la biblioteca WordNet por el MIT) también tiene una despalilladora (WordNetStemmer) que convierte diferentes formas morfológicas de una palabra como ( "escritos", "escribe", "escribieron") a su forma básica. Parece que sólo funciona para los sustantivos (como los plurales) y verbos sin embargo.

Etimología en Java con WordNet y JWNL también muestra cómo hacer este tipo de derivados usando JWNL, otra biblioteca Wordnet basado en Java:

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top