2013-09-22 19 views

cevap

13

NLTK şu anda konjugasyonlar sağlamaz. Pattern-en ve nodebox konjugasyonları yapar.

Bazen model web sitesindeki örnekler gösterildiği gibi çalışmaz. Bu benim için çalıştı: O conjugate gibi görünüyor

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

NOT

sadece gergin bir yardımcı fiil gerektirmez zaman çıkarır. Örneğin, İspanyolca'da (tekil birinci kişi) ir'un geleceği iré'dur. İngilizce, geleceği yardımcı olacak ve mastar ile oluşturulmuştur gitmek gidecek sonuçlanan gidin. Aşağıdaki kodda iré çıktı, ancak 'a gidecektir.

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

bu, NLTK fiil çekimi yapmaz? – mix

+0

tam olarak :) (Yanlış olduğuma açığım ama burada veya bildiğim başka biri bunu yapmanın bir yolunu bulamadı!) – arturomp

+1

@arturomp, pattern.en için gelecek zamanı kullanmaya çalışıyordum . Senin için çalışıyor mu, çünkü bana hiçbir şey vermiyor. – macmania314

1

MontyLingua'yı kelime infeksyonu ve konjugasyon için kullandım. https://pypi.python.org/pypi/MontyLingua/2.1

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

diğer bilgiler: Eğer örneğin bir fiil değil, bir isim ya da bir sıfat conjugating emin olun, böylece https://en.wikipedia.org/wiki/MontyLingua

+1

Sadece dikiş çeşidi çıktı ve çok iyi görünüyor; MontyLingua kodumu değiştirmeyi düşüneceğim! –