Исключение результатов из поиска
Отсутствие аргументов на определенном месте в последовательности
Чтобы указать, что перечисленных аргументов не может быть на определенном месте в последовательности, используется оператор not.
Отсутствие аргумента проверяется в диапазоне, заданном функцией.
Пример
Пример задачи: Поиск слова в определенном значении и контексте
Для поиска слова «производство» только в значении «отрасль промышленности» или «производство материальных благ», но не в значении «ход судебного дела», можно запретить перед ним прилагательные «уголовный», «судебный» или «процессуальный»:
phrase(not orn(уголовный, судебный, процессуальный), производство).
Этот запрос найдет искомое слово во фразах: «российское производство», «предприятие по производству», «производство автомобилей», но не найдет его во фразе «открыто уголовное производство».
Поиск любых аргументов за исключением указанных
Чтобы указать, что на определенном месте в последовательности могут находиться любые аргументы за исключением указанных, используется функция except() (или ее аналоги: функция difference() и оператор «/»
).
Если функция не поддерживает вложенные аргументы (например, term() или regex(), dictword(), knownword(), unknownword(), number() и т.п.), использование except() недопустимо. В этом случае можно использовать вместо нее оператор «/»
или функцию difference().
Пример
Пример задачи: Поиск объектов, имеющих положительную оценку
Для поиска существительных, перед которыми находится слово из списка положительно окрашенных слов, можно составить такой запрос:
phrase(0, term(positive), lemma(noun))
Однако такой запрос найдет в том числе устойчивые словосочетания, в которых слова из списка не являются положительно окрашенными (например, «исполнительный директор», «чистая прибыль», «полезные ископаемые»).
Чтобы исключить их из поиска, можно использовать оператор «/»
:
phrase(0, term(positive), lemma(noun))/orn(“чистая прибыль”, “исполнительный директор”, “полезные ископаемые”)