Использование словарных списков
Для поиска аргументов, содержащихся в указанных словарных списках, используется функция term().
Если необходимо найти определенный список слов, удобно добавить их в словарь категории WordClasses. Использование словарных списков дает следующие преимущества:
-
Компактная запись;
-
Возможность многократного использования однажды составленного списка слов;
-
Изменение списка (добавление/удаление элементов) автоматически отражается на всех запросах, в которых он используется.
Синтаксис
Аргументы
Обязательным аргументом функции является название_списка. Допустимо произвольное число названий списков из словарей категории WordClasses.
В качестве ограничителя можно задать опциональный аргумент часть_речи, тогда поиск элементов списка будет осуществляться только в рамках указанной части речи. Допустимые значения аргумента часть_речи приведены в таблице ниже.
Часть речи |
Синоним |
Пояснение |
Пример |
noun |
существительное |
событие, событиям, конференций … |
|
verb |
глагол |
встречаться, обсудили … |
|
adverb |
advb |
наречие |
одновременно, ранее, резко … |
adjective |
adjc |
прилагательное |
общий, важного… |
particle |
prcl |
частица, союз, предлог |
а, но, и … |
pronoun |
pron |
местоимение |
я, ты, вы, его, наш… |
numeral |
nmrl |
числительное |
один, десятый … |
Ниже представлены примеры словарных списков в словаре Default категории WordClasses. Подробнее о добавлении и использовании словарных списков см. «Использование словарей»
Параметры
Функция также поддерживает следующие именованные параметры:
Параметр |
Допустимые значения |
Пояснение |
Пример |
stem |
yes/no |
Поиск всех грамматических форм слов из списка/поиск только точных вхождений слов из списка. По умолчанию — yes |
term(months, stem:=no) найдет «август», но не «августа» |
pos |
yes/no |
Поиск с учетом/без учета части речи, указанной в списке. По умолчанию — yes |
term(debt, pos:=no) найдет «долги» как во фразе «арест имущества за долги», так и во фразе «зимние вечера были долги» |
match |
range |
фрагмент текста между первым и последним аргументом извлекается полностью, включая пунктуацию. |
Пример
Пример задачи: Поиск дат
Чтобы найти дату в формате <число> <месяц> <год> («5 января 1997») необходимо задать последовательность из одной или двух цифр, названия месяца и четырех цифр. Можно составить следующий запрос:
phrase(length(1, 2, char(digit)), lemma(noun, январь, февраль, март, апрель, май, июнь, июль, август, сентябрь, октябрь, ноябрь, декабрь), length(4, char(digit)))
Однако в дальнейшем может вновь возникнуть необходимость использовать список месяцев, поэтому удобно создать словарный список «months», что также позволит сделать запрос более компактным:
phrase(length(1, 2, char(digit)), term(noun, months), length(4, char(digit)))