Вам в значительной степени нужно больше, чем простой парсер. Парсеры используют символы в строке, чтобы определить, какие части строки представляют различные элементы грамматики. Вот почему FM попросил дать подсказку, чтобы указать, откуда вы знаете, какая часть является названием, а какая - остальной частью предложения. Если бы вы могли сказать, что имена состоят из одного или нескольких заглавных слов, то синтаксический анализатор будет знать, когда имя заканчивается и начинается остальная часть предложения.
Но такое имя, как "решает Джимми Фу"? Как парсер может узнать, просто посмотрев на символы в «решает», «решает», является или нет частью имени? Даже человеку, читающему ваше предложение «Джимми Фу решает, решит съесть», будет трудно определить, где имя начинается или заканчивается, и было ли это опечаткой.
Если ваши данные действительно непредсказуемы, вам нужно использовать такой инструмент, как NLTK (Natural Language Toolkit). Я не использовал его сам, но он подходит к этой проблеме с точки зрения синтаксического анализа предложений в языке, а не пытается анализировать структурированные данные или математические форматы.
Я бы не рекомендовал pyparsing для такого рода языковой интерпретации.