Обработка английских глаголов, оканчивающихся на «e»

Я реализую несколько заменителей строк с учетом этих преобразований.

'thou sittest' → 'you sit'
'thou walkest' → 'you walk'
'thou liest' → 'you lie'
'thou risest' → 'you rise'

Если я оставлю это наивным, можно использовать регулярное выражение для этого случая, чтобы найти и заменить, например thou [a-z]+est

Но проблема возникает с английскими глаголами, оканчивающимися на e, потому что в зависимости от контекста мне нужно обрезать est в некоторых случаях и обрезать только st в остальных.

Каково быстрое грязное решение для достижения этого?


person nehem    schedule 07.02.2017    source источник
comment
Изучите Word Stemming с помощью NLTK.   -  person Chuck    schedule 07.02.2017


Ответы (1)


Наверное, самый быстрый и грязный:

import nltk
words = set(nltk.corpus.words.words())
for old in 'sittest walkest liest risest'.split():
    new = old[:-2]
    while new and new not in words:
        new = new[:-1]
    print(old, new)

Выход:

sittest sit
walkest walk
liest lie
risest rise

ОБНОВИТЬ. Немного менее быстрый и грязный (работает, например, для rotest → глагол rot, а не существительное rote):

from nltk.corpus import wordnet as wn
for old in 'sittest walkest liest risest rotest'.split():
    new = old[:-2]
    while new and not wn.synsets(new, pos='v'):
        new = new[:-1]
    print(old, new)

Выход:

sittest sit
walkest walk
liest lie
risest rise
rotest rot
person Kirill Bulygin    schedule 07.02.2017
comment
Обратите внимание, что он также правильно удаляет двойную согласную из sittest! - person Leon; 07.02.2017
comment
Это действительно быстро и грязно... Мне это нравится. - person Chuck; 07.02.2017
comment
Круто до сих пор, я действительно искал, есть ли такой метод, как word.is_verb(). Это работает лучше всего. Принятие. - person nehem; 07.02.2017
comment
@Kirill Вот моя работа на github.com/nehemiahjacob/CKJV. Я создаю модернизированный перевод Библии на основе на КЖВ. Ты заслуживаешь похвалы. - person nehem; 07.02.2017
comment
@itsneo Спасибо. Кто знает, может быть, я когда-нибудь воспользуюсь вашим проектом, так как делаю что-то похожее для пословного перевода. - person Kirill Bulygin; 07.02.2017