Biorąc pod uwagę znacznik POS, taki jak VBD, w jaki sposób można odmienić czasownik tak, aby pasował do NLTK?Jak skoniugować czasownik w NLTK z podanym znacznikiem POS?
np.
VERB: go
POS: VBD
RESULT: went
Biorąc pod uwagę znacznik POS, taki jak VBD, w jaki sposób można odmienić czasownik tak, aby pasował do NLTK?Jak skoniugować czasownik w NLTK z podanym znacznikiem POS?
np.
VERB: go
POS: VBD
RESULT: went
NLTK obecnie nie zapewnia koniugacji. Pattern-en i nodebox do koniugacji.
Czasami przykłady na stronie internetowej pattern-en nie działają tak, jak pokazano. Ten pracował dla mnie:
>>> 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'
>>>
UWAGA
Wydaje się conjugate
tylko wyjść, gdy napięcie nie wymaga dodatkowego czasownika. Na przykład w języku hiszpańskim (pojedyncza pierwsza osoba) przyszłość ir to iré. W języku angielskim, przyszłość iść powstaje z pomocniczego będzie i bezokolicznika iść, powodując pójdzie. W poniższym kodzie, iré jest wyprowadzany, ale nie przejdzie.
>>> 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")
>>>
czy to oznacza, że NLTK nie zajmuje się koniugacją czasownika? – mix
dokładnie :) (Jestem otwarty na bycie niewłaściwym, ale ja lub ktokolwiek inny, którego znam tutaj, nie znalazłem sposobu, aby to zrobić!) – arturomp
@arturomp, Próbowałem użyć czasu przyszłego dla pattern.en . Czy to działa dla ciebie, bo nic mi nie zwraca. – macmania314
Użyłem MontyLingua dla słowa fleksji i koniugacji. https://pypi.python.org/pypi/MontyLingua/2.1
mlg = MontyLingua.MontyNLGenerator.MontyNLGenerator()
mlg.conjugate_verb(verb,mode)
Więcej informacji: https://en.wikipedia.org/wiki/MontyLingua
Właśnie sprawdził wzór i wygląda bardzo dobrze; Zastanowię się nad zastąpieniem mojego kodu MontyLingua! –
Mówisz o znaczniku POS, tak aby upewnić się, że jesteś sprzęgania czasownika i nie rzeczownika lub przymiotnika, na przykład? – arturomp