2013-09-22 13 views
6

Dato un tag POS, come VBD, come posso coniugare un verbo corrispondere con NLTK?Come coniugare un verbo in NLTK dato tag POS?

ad es.

VERB: go 
POS: VBD 
RESULT: went 
+0

Stai parlando del tag POS in modo da assicurarsi che si sta coniugare un verbo e non un sostantivo o un aggettivo, per esempio? – arturomp

risposta

13

NLTK al momento non fornisce coniugazioni. Pattern-en e nodebox fare coniugazioni.

A volte gli esempi nel sito Web pattern-it non funzionano come mostrato. Questo ha funzionato per me:

>>> 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

Sembra conjugate emette solo quando la tensione non richiede un verbo ausiliare. Ad esempio, in spagnolo il (singolare prima persona) futuro di ir è iré. In inglese, il futuro di andare è formato con l'ausiliare sarà e l'infinito andare, con conseguente andrà. Nel codice riportato di seguito, viene emesso iré, ma non sarà.

>>> 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") 
>>> 
+0

significa che NLTK NON esegue la coniugazione dei verbi? – mix

+0

esattamente :) (Sono aperto a sbagliare, ma io o chiunque altro che conosco da queste parti non ho trovato il modo di farlo!) – arturomp

+1

@arturomp, stavo cercando di usare il tempo futuro per pattern.en . Funziona per te perché non restituisce nulla a me. – macmania314

Problemi correlati