Поиск с учетом длины аргумента

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

Синтаксис

length(минимальная_длина, [максимальная_длина,] [аргумент,..])

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

Пример

length(2, 5, .) найдет все слова длиной от 2 до 5 символов (символ точки без кавычек находит все слова);

length(5, stem(noun)) найдет все существительные длиной 5 символов и более;

length(11, 11, char(digit)) найдет последовательности из 11 цифр (в частности, номера телефонов: 79214637283, 84991234567 и т.д.).

Чтобы указать единицу, в которой будет измеряться длина слова или предложения, можно использовать опциональный именованный параметр count:=, который может принимать следующие значения:

Значение

Пояснение

character

длина в символах (значение по умолчанию)

token

длина в токенах (токен — это последовательность символов между разделителями)

word

длина в словах

punctuation

задает количество знаков пунктуации

Запросить фразу с указанным количеством токенов можно, например, на результатах работы узлов «Извлечение ключевых слов» (keyword()), «Извлечение сущностей» (entity()) и т.д.

Пример

length(2,3, keyword(), count:=token) найдет ключевые слова, состоящие из 2 или 3 токенов.

length(1,1, entity(Companies), count:=token) найдет названия компаний, состоящие из одного токена: МТС, Lenovo, Samsung, Магнит и т.д.

length(2,3, count:=word, sentence()) найдет предложения, состоящие из 2 или 3 слов, без учета пунктуации, например «Время в пути», «Время работать».

Подробнее о функциях entity() и keyword(), использованных в примерах, см. «Поиск объектов, извлеченных другими узлами текстового анализа».