Поиск слов в отрицательных конструкциях

Для поиска аргументов в составе отрицательных конструкций используется функция negate().

Для поиска аргументов в любых контекстах, кроме отрицательных конструкций, используется функция direct() или ее эквивалент possible(), которая является обратной по отношению к negate().

Синтаксис

negate(аргумент_1 [, аргумент_2,..])

direct(аргумент_1 [, аргумент_2,..]) = possible(аргумент_1 [, аргумент_2,..])

При поиске отрицаний учитываются как грамматические («нарушений нет», «нарушения не зафиксированы»), так и лексические («отсутствие нарушений») способы его выражения.

Пример

negate(нарушение) найдет конструкции: «без нарушений», «отсутствие нарушений», «нарушений нет», «нарушения не зафиксированы», но не найдет «было выявлено большое число нарушений»

direct(нарушение), напротив, найдет «было выявлено большое число нарушений», но не найдет все остальные конструкции: «мероприятие прошло без нарушений», «отсутствие нарушений», «нарушений нет», «нарушения не зафиксированы».

Пример задачи: анализ отзывов о работе банка

Для поиска фактов, которые клиенты оценили положительно («удобный сервис», «отличная инфраструктура» и т.д.), можно составить запрос:

phrase(term(positive), partofspeech(noun))

pdl negate 1 rus

Однако такой запрос найдет в том числе и те случаи, когда положительно окрашенное слово в составе отрицательной конструкции меняет свое значение на противоположное («не улучшали атмосферу»).

Чтобы исключить такие случаи из результатов поиска, следует добавить в запрос функцию direct():

phrase(direct(term(positive)), partofspeech(noun))

pdl negate 2 rus

С помощью функции negate() можно найти также отрицание негативных оценок:

phrase(direct(term(positive)) or negate(term(negative)), partofspeech(noun))

pdl negate 3 rus

Примечание

Функция с несколькими аргументами эквивалентна запросу из нескольких функций с одним аргументом, объединенных с помощью оператора or:

negate(нарушение, ущерб) = negate(нарушение) or negate(ущерб)

direct(нарушение, ущерб) = direct(нарушение) or direct(ущерб)