Я пытаюсь разобрать текст с помощью PyParser. Проблема в том, что у меня есть имена, которые могут содержать пробелы. Поэтому мой вклад может выглядеть так. Во-первых, список имен:pyparsing ambiguity
Joe
bob
Jimmy X
grjiaer-rreaijgr Y
Затем, что они делают:
Joe A
bob B
Jimmy X C
проблема, конечно, является то, что вещь, они могут быть такими же, как в конце названия:
Jimmy X X
grjiaer-rreaijgr Y Y
Как создать парсер для строк действий? Выход синтаксического анализа Joe A
должен быть [Joe, A]
. Выход синтаксического анализа Jimmy X C
должен быть [Jimmy X, C]
, Jimmy X X
- [Jimmy X, X]
. То есть, [name, action]
пар.
Если я создаю мое имя парсер наивность, что означает что-то вроде OneOrMore(RegEx("\S*"))
, то это будет соответствовать всей линии дает мне [Jimmy X X]
следует ошибки синтаксического анализа для не видя действия (так как он был уже потребляется имя парсер).
ПРИМЕЧАНИЕ: Извините за неоднозначную формулировку ранее, что сделало это похожим на вопрос о НЛП.
имена всегда капитализируются, и глагол всегда строчная? – FMc
nope, имена могут иметь любую буквенно-цифровую вещь. Имя может даже быть «jimmy foo decides», поэтому линия показала бы, что «jimmy foo decides решит поесть." – Claudiu
Мне очень нужно не жадное совпадение имени – Claudiu