natasha/yargy

Вопрос по использованию парсера

ikor20 opened this issue · 2 comments

Допустим, необходимо найти в предложении должность. Заведу для этого словарь необходимых должностей. Например:

positions = morph_pipeline([ 'директор', 'бухгалтер', 'секретарь' ])

Далее, необходимо искать должность только в родительном падеже, вот тут пока не понял как делать. Пробовал следующие вариации, в первом случае выдаёт ошибку, во втором просто не ищет:

position_gent = and_( positions, or_( gram('gent'), gram('gen2') ) )

position_gent = and_( eq(positions), or_( gram('gent'), gram('gen2') ) )

kuk commented

Внутри and_ могут быть только предикаты. Positions это rule.

  1. caseless_pipeline(['директора', 'бухгалтера', ...])
  2. or_(and_(normalized('директор'), gram('gent')), and_(normalized(...), gram('gent')), ...). Можно написать код, который будет генерировать такую структуру, назвать фукнцию morph_pipeline_gent. Непонятно, что делать с должностями из двух слов, например, "генеральный директор"

Спасибо!