Лучший способ разобрать суффиксированные слова

Мне нужен парсер, который распознает часть речи в соответствии с последней буквой каждого слова. Я использовал Python, но я не уверен, что доступные парсеры CFG примут это.

Давайте возьмем эсперанто слова, например. Все прилагательные оканчиваются на -a (например, "granda" для большого), а все существительные оканчиваются на -o (например, "hundo" для собаки). Итак, вот игрушечная грамматика:

S -> AN | ASN

A -> (любое слово, оканчивающееся на -a)

N -> (любое слово, заканчивающееся на -o)

Предложение "Granda Bela Animalo Hundo" (SIC!) Следует разобрать следующим образом:

(S (A Granda) (S (A Бела) (N animalo)) (N Hundo))

У кого-нибудь есть идеи, как это закодировать? Я пытаюсь сделать грамматику максимально простой. Извините, если это выглядит странно - это сложно...

1 ответ

Вы можете использовать str.endswith метод

word = "granda"

if word.endswith('o'):
    print "Noun"
elif word.endswith('a'):
    print "Adjective"
Другие вопросы по тегам