Поиск аргументов в заданном порядке

Поиск аргументов в заданном порядке в пределах предложения

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

phrase() принимает в качестве аргументов слова и фразы в любой форме, а также другие функции поиска слов или последовательностей.

Синтаксис

phrase([расстояние, ]аргумент_1, аргумент_2,..)

Опциональный именованный параметр расстояние определяет максимальную разницу в позициях между аргументами последовательности. При его отсутствии функция ищет аргументы, стоящие рядом.

Опциональные именованные параметры функции

Параметры allow_punct и allow_space регулируют, соответственно, допустимость знаков препинания и пробелов внутри последовательности. Параметры принимают следующие значения:

Значение

Пояснение

yes (значение по умолчанию)

Пробелы/Знаки пунктуации между аргументами последовательности допускаются.

no

Пробелы/Знаки пунктуации между аргументами последовательности не допускается.

Вместо значения параметра allow_punct:=no может использоваться синтаксис phrase(0,). Запрос phrase(0, аргумент_1, аргумент_2) равнозначен запросу phrase(аргумент_1, аргумент_2, allow_punct:=no) и запросу phrase(1, аргумент_1, аргумент_2, allow_punct:=no).

Примечание

Специальные символы, такие как знак решетки (#), амперсанд (&) или коммерческое at (@), не относятся к знакам препинания и учитываются при расчете расстояния.

Примеры

phrase(документ, number()) найдет «документ: 110», но не найдет «документ # 110».

phrase(2, документ, number()) найдет «документ: 110» и «документ # 110».

Параметр match регулирует объем текста, извлекаемого функцией. Параметр принимает следующие значения:

Значение

Пояснение

arguments (значение по умолчанию)

Будут извлечены только аргументы, перечисленные в функции.

range

Будет извлечен фрагмент текста от первого до последнего найденного аргумента.

Примеры

phrase(директор, компания) = phrase(1, директор, компания) найдет «директор компании выступил с заявлением» и «по словам директора, компания терпит убытки».

phrase(0, директор, компания) = phrase(директор, компания, allow_punct:=no) = phrase(1, директор, компания, allow_punct:=no) найдет «директор компании выступил с заявлением», но не «по словам директора, компания терпит убытки».

phrase("11", "12", "2017", allow_space:=no) найдет «11/12/2017», но не «11 / 12 / 2017».

phrase(3, село, район, область, match:=range) найдет упоминания сел вместе с районом и областью, где они расположены.

Поиск аргументов в заданном порядке в пределах предложения без учета стоп-слов

Для поиска последовательности аргументов в заданном порядке в пределах предложения без учета стоп-слов используется функция pattern(). Для корректной работы функции словарь стоп-слов должен быть включен в настройках узла.

Стоп-слова — служебные слова, не играющие существенной роли в содержании текста («и», «также», «он», «который», «конечно» и т.д.). Подробнее о работе со стоп-словами можно узнать в разделе «Словари стоп-слов».

pattern() принимает в качестве аргументов слова и фразы в любой форме, а также другие функции поиска слов или последовательностей. Функция во многом идентична функции phrase(), за исключением того, что при подсчете расстояния между аргументами не учитываются стоп-слова.

Синтаксис

pattern([расстояние, ]аргумент_1, аргумент_2,..)

Опциональный именованный параметр расстояние определяет максимальную разницу в позициях между аргументами последовательности без учета стоп-слов. При его отсутствии функция ищет аргументы, между которыми не находится полнозначных слов.

Функция поддерживает те же именованные параметры, что и функция phrase().

Примеры

pattern(компания, проект) найдет «компании и проекты», «у компании есть проекты» и «выручка компании от этого проекта».

pattern(2, компания, проект) найдет «компания, разработавшая проект» и «компании подключились к проектам».

Поиск аргументов в заданном порядке в пределах документа

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

follow() принимает в качестве аргументов слова и фразы в любой форме, а также другие функции поиска слов или последовательностей.

Синтаксис

follow([расстояние, ]аргумент_1, аргумент_2,..)

Опциональный именованный параметр расстояние определяет максимальное число предложений, в пределах которого должны находиться аргументы. При его отсутствии функция ищет аргументы в пределах всего документа.

Функция поддерживает те же именованные параметры, что и функция phrase().

Пример

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

follow(2, производство, компания, match:=range) найдет «Предприятие выполняет проектирование, производство и сборку. Подробная информация о деятельности компании доступна на официальном сайте».

Примечание

Для поиска аргументов в заданном порядке в пределах одного предложения используется функция sfollow(), синонимичная функции sentence(follow()) или follow(1,).