Closed arturgspb closed 7 years ago
from yargy import rule, not_
from yargy.predicates import gram
DO = gram('Do')
ACTION = gram('Action')
RULE = rule(
DO.interpretation(
EntityFact.do
),
not_(ACTION).repeatable().optional(),
ACTION.interpretation(
EntityFact.action
)
)
Спасибо большое!
Например у меня есть:
"Привет! Вышлите плиз отчет по клиенту Трололо за июль 2017"
Структура у меня такая
Т.е. do = вышлите action = отчет entity = по клиенту name = Трололо date = июль 2017
Часть кода, который разбирает это
Как мне сделать так, чтобы парсер не учитывал неизвестные ему части предложения между "do" и "action". Т.е. чтобы он фактически не воспринимал ничего лишнего между "Вышлите" и "отчет", сейчас всякие "плиз", "быстрее" и пр делают так, что парсер отказывается парсить. Тоже самое с датами - люди пишут "... Трололо за ДАТА" или просто "... Трололо ДАТА" при этом не хочется вести список разрешенных предлогов.
Есть варианты?