Квантификаторы в шаблоне соответствия SpaCy - PullRequest
0 голосов
/ 22 октября 2018

При попытке использовать класс spaCy * Rule Based Matcher для обнаружения пользовательских объектов у меня возникают трудности при объединении атрибутов токена и операторов.Мы можем создать шаблоны, такие как:

pattern = [{"DEP": "obj", "POS": "NOUN"}]

, который соответствует токену с тегом зависимости "obj" и тегом pos "существительное".Однако теперь я хочу также исключить токены, которые являются сущностями ЛИЦ, из этого шаблона.SpaCy допускает квантификаторы типа "!"чтобы соответствовать шаблону ровно 0 раз:

pattern = [{"IS_DIGIT": True, "OP": "!"}]

это будет соответствовать всем токенам, которые НЕ являются цифрами.Дело в том, как применять такие квантификаторы только к одному из под-шаблонов?Допустим, я хочу сопоставить все токены, которые имеют тег obj , являются существительными , но не являются ЛИЦАМИ .Я бы подумал, что если квантификатор применяется к предыдущему суб-шаблону, шаблон будет выглядеть примерно так:

pattern = [{"DEP": "obj", "POS": "NOUN", "ENTITY_TYPE": "PERSON", "OP": "!"}]

, но это работает не так, как ожидалось.Может быть, квантификатор применяется ко всему шаблону, так что он в основном сводит на нет все подэлементы?

Вопрос: как бы мне было создать такие шаблоны с частичными квантификаторами?

Большое спасибо взаранее!

...