¿Cómo conjugar un verbo en NLTK dada la etiqueta POS?

Dada una etiqueta POS, como VBD, ¿cómo puedo conjugar un verbo para que coincida con NLTK?

p.ej

VERB: go POS: VBD RESULT: went 

NLTK actualmente no proporciona conjugaciones. Pattern-en y nodebox hacen conjugaciones.

A veces los ejemplos en el sitio web de patrón-en no funcionan como se muestra. Esto funcionó para mí:

 >>> from pattern.en import conjugate >>> verb = "go" >>> conjugate(verb, ... tense = "past", # INFINITIVE, PRESENT, PAST, FUTURE ... person = 3, # 1, 2, 3 or None ... number = "singular", # SG, PL ... mood = "indicative", # INDICATIVE, IMPERATIVE, CONDITIONAL, SUBJUNCTIVE ... aspect = "imperfective", # IMPERFECTIVE, PERFECTIVE, PROGRESSIVE ... negated = False) # True or False u'went' >>> 

NOTA

Parece que la conjugate solo genera salidas cuando el tiempo no requiere un verbo auxiliar. Por ejemplo, en español el futuro (singular primera persona) de ir es iré . En inglés, el futuro de go se configura con la voluntad auxiliar y el infinitivo go , lo que resultará en go to . En el código de abajo, iré es la salida, pero no irá .

 >>> from pattern.es import conjugate as conjugate_es >>> verb = "ir" >>> conjugate_es(verb, tense = "future") u'ir\xe1' >>> from pattern.en import conjugate as conjugate_en >>> verb = "go" >>> conjugate_en(verb, tense = "future") >>> 

Usé MontyLingua para inflexión de palabras y conjugación. https://pypi.python.org/pypi/MontyLingua/2.1

  mlg = MontyLingua.MontyNLGenerator.MontyNLGenerator() mlg.conjugate_verb(verb,mode) 

Más información: https://en.wikipedia.org/wiki/MontyLingua