semantics
Назначение
Находит документы, содержащие аргументы и слова, связанные с ними определенным типом отношений в семантическом словаре (онтологии).
Аргументы
Первый опциональный аргумент максимальный_уровень определяет максимальное расстояние между аргументом и связанным с ним словом в графе онтологии.
Второй обязательный аргумент тип_отношения позволяет указать требуемый тип семантических отношений, присутствующий в подключенных к узлу онтологиях.
Например, в лингвистической онтологии «WordNet», используемой в качестве семантического словаря по умолчанию, понятия связаны между собой следующими семантическими отношениями:
Функция также поддерживает следующие опциональные именованные параметры:
-
dictionary:="Name1|Name2|…" позволяет указать имя словаря, по которому должен осуществляться поиск. Для корректной работы функции указанные словари должны быть подключены в свойствах узла.
-
collect:=last/all - при collect:=last функция возвращает только синсеты самого нижнего уровня при поиске нижележащих понятий (гипонимы, меронимы) либо только синсеты самого верхнего уровня при поиске вышележащих понятий (гиперонимы, холонимы) - см. пример 1. При collect:=all функция возвращает синсеты всех уровней - см. пример 2. По умолчанию collect:=last используется для отношений типа гипероним, холоним, антоним, а collect:=all - для всех остальных типов отношений.
-
max_level:=N определяет максимальное расстояние между аргументом и связанным с ним словом в графе онтологии (аналогично первому аргументу max_level) - см. пример 3. По умолчанию max_level:=1 используется для отношений типа гипероним, холоним, антоним, а max_level:=20 - для всех остальных типов отношений.
-
min_level:=N функция отсеивает слова, находящиеся на расстоянии меньше N от аргумента, - см. пример 4. По умолчанию используется min_level:=0, при котором функция также возвращает исходный аргумент. При min_level:=1 функция возвращает все связанные с аргументом слова, за исключением самого аргумента.
-
level:=N возвращает синсеты только уровня N - см. пример 5.
-
pos:=yes/no позволяет учитывать/игнорировать часть речи, указанную в онтологии, - см. пример 7. По умолчанию используется pos:=yes.
-
stem:=yes/no позволяет учитывать/игнорировать форму слова. Если stem:=yes, то словарные записи будут считаться словоформами и предварительно приводиться к нормальной форме. По умолчанию stem:=no.
-
allow_punct позволяет учитывать/игнорировать знаки препинания и внутри вхождения онтологии. По умолчанию allow_punct:=yes.
Например, если в словаре синонимов существует пара «делать пересадку» и «пересаживаться», то запрос semantics(synonym, "делать пересадку", pos:=no, stem:=yes) найдет не только эту пару синонимов, но и глагол «пересадить». Потому что при stem:=yes алгоритм сначала получает слово из словаря («пересаживаться»), а затем приводит к нормальной форме «пересадить». При stem:=no найдется только «пересаживаться», потому что в этом случае не происходит нормализация.
-
synset_id:="id" позволяет выбрать отдельные значения многозначных слов.
Например, слово «основание» входит в несколько синсетов (смысловых единиц), среди которых «опорная часть» (synset_id=FEFE7A9BE755673D) и «причина, достаточный повод» (synset_id=89A031C374A64976).
semantics(synonym, основание) находит все возможные синонимы слова «основание» (фундамент, опора, основание, причина, мотив и т.д.)
Чтобы получить только синонимы слова «основание» в значении «опорная часть», необходимо переписать запрос с использованием параметра synset_id:
semantics(synonym, synset_id:=FEFE7A9BE755673D) находит «фундамент», «опора», «основание», но не находит «причина», «мотив».
Если необходимо указать несколько синсетов, следует перечислить их значения через вертикальную черту (synset_id:=id1`|`id2) либо создать несколько именованных параметров, добавляя суффикс с порядковым номером к имени параметра (synset_id_1:=id1, synset_id_2:=id2).