Как с помощью NLP распознать названия начальных и конечных пунктов маршрута?
во-первых, действительно, вам нужно решить NER-задачу, то есть достать из строки названия. Такое умеет, например, библиотека Natasha (ссылка на гитхаб).
Потом, как вариант, сделать так: если перед объектом стоит "из" - это значит начальный пункт, если "в" - конечный пункт. Но это вторая задача, которая решается не ML, а с помощью подбора лингвистических правил, скорее.
ЕСЛИ "из/от/с": %глагол% %предлог:"из/от/с"% [%откуда%] (добраться из Москвы, выезжаю из Тулы)
ИНАЧЕ: %существительное% %предлог% [%куда%] (Москвы в Санкт-Петербург, дорога до Витебского вокзала)