Использование словарей

Для поиска аргументов, содержащихся в указанных словарях, используется функция dictword(). Является аналогом функции knownword().

Для поиска аргументов, отсутствующих в указанных словарях, используется обратная функция unknownword().

Подключение словарей

Для осуществления поиска словарных элементов необходимо убедиться, что нужный словарь подключен к узлу. Для этого нужно щелкнуть по узлу правой кнопкой мыши, зайти в «Настройки» и открыть вкладку «Словари». В левой части окна расположен список категорий словарей. При выборе одной из них справа появится список доступных словарей в данной категории. Можно обращаться как к стандартным, так и пользовательским словарям. Необходимо выбрать нужные словари, нажать кнопку «ОК» и выполнить узел.

pdl dictword 1 rus

Синтаксис

dictword(категория_словаря [, название_словаря]) = knownword(категория_словаря [, название_словаря])

unknownword(категория_словаря [, название_словаря] [, аргумент, …​])

Аргументы

Аргумент категория_словаря является обязательным и позволяет совершать поиск с учетом всех словарей указанной категории.

Для того, чтобы при необходимости сузить поиск, можно указать опциональный аргумент название_словаря и выбрать произвольное число словарей категории.

Вместо этого опционального аргумента можно использовать именованный параметр dict.

Таким образом, dictword(Morphology, Default) = dictword(Morphology, dict:=Default).

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

Параметры

Функции dictword() и knownword() позволяют установить ограничения для полей словарной статьи, указав значение_параметра. Функции поддерживают произвольное число значений_параметров.

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

pdl dictword 2 rus

При указании аргументов, параметров и их значений регистр не учитывается, т.е. dictword(GeoAdministrative, Country:=Франция) = dictword(geoadministrative, Country:=франция).

В таблицах ниже приведен список параметров и допустимых значений для стандартных словарей:

Категория словаря

Companies

Cловарь компаний

Параметр

Пояснение

Пример

Type

Тип

dictword(companies, default, Type:=ооо|оао) найдет компании типа «ООО» или «ОАО»

Country

Расположение

dictword(companies, Country:=Россия|Германия) найдет российские или немецкие компании

Industry

Отрасль

dictword(companies, default, my_companies, Industry:=страхование) найдет страховые компании по стандартному словарю категории Companies и словарю my_companies (может быть создан пользователем)

 

Категория словаря

Organizations

Cловарь организаций

Параметр

Пояснение

Пример

Type

Тип

dictword(organizations, default, Type:!=общественная организация) найдет организации, не являющиеся общественными

Country

Расположение (страна)

dictword(organizations, Country:=Соединенные Штаты Америки|Канада) найдет американские и канадские организации

Industry

Отрасль

dictword(organizations, default, my_org, Industry:=образование) найдет образовательные организации по стандартному словарю категории Organizations и словарю my_org (может быть создан пользователем)

 

Категория словаря

GeoAdministrative

Cловарь геоадминистративных объектов

Параметр

Пояснение

Пример

Category

Категория

Допустимые значения: continent/country/ region/city

dictword(geoadministrative, Category:=country) найдет страны

Country

Страна

dictword(geoadministrative, Category:=city, Country:=Германия|Франция) найдет французские и немецкие города

Region

Регион

dictword(geoadministrative, Category:=city, Region:=Ханты-Мансийский АО|Ямало-Ненецкий АО) найдет города Ханты-Мансийского и Ямало-Ненецкого округов

Population

Население

Допустимые значения: целое неотрицательное число

dictword(geoadministrative, Category:=country, Population:>100000) найдет страны с населением более 100 000 человек

 

Категория словаря

HumanNames

Cловарь имен

Параметр

Пояснение

Пример

Type

Тип

Допустимые значения: first name/surname

dictword(humannames, Type:=first name) найдет имена людей

Gender

Пол

Допустимые значения: male/female

dictword(humannames, default, Type:=surname, Gender:=female) найдет женские фамилии по словарю Default категории HumanNames

 

Категория словаря

Statistics

Cтатистический словарь

Параметр

Пояснение

Пример

Support

Поддержка

Допустимые значения: целое неотрицательное число

dictword(statistics, Support:<100) найдет слова, встречающиеся менее, чем в 100 документах корпуса

Frequency

Частота

Допустимые значения: целое неотрицательное число

dictword(statistics, Frequency:>10000) найдет слова, встречающиеся в корпусе более 10 000 раз

Использование именованных параметров не предусматривается при обращении к словарям категорий Morphology и Phrases.

Категория словаря

Пример  

Morphology

Морфологический словарь

dictword(morphology) найдет все слова, содержащиеся в морфологическом словаре

Phrases

Словарь фраз

dictword(phrases, chemistry) найдет фразы по словарю Chemistry («Химия») категории Phrases

При работе с пользовательскими словарями, именованные параметры соответствуют названиям словарных полей, заданных пользователем.

Функции dictword() и knownword() также поддерживают опциональный именованный параметр match:=range, который позволяет извлекать словарное вхождение полностью, включая знаки пунктуации.

Кроме того, dictword(WordClasses) поддерживает опциональный именованный параметр сlass. Он задает имя класса или нескольких классов через вертикальную черту. Например, dictword(WordClasses, сlass:=positive|negative) = knownword(WordClasses, сlass:=positive|negative).

Функция unknownword() не поддерживает именованные параметры кроме class.

Операторы

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

Оператор

Пояснение

Пример  

=

равно

dictword(companies, Country:=россия) — найдет только российские компании

!=

не равно

dictword(companies, Country:!=россия) — найдет все компании кроме российских

<

меньше чем

dictword(geoadministrative, Category:=city, Population:<100000) — найдет города с населением менее 100 000 человек

>

больше чем

dictword(geoadministrative, Category:=city, Population:>100000) — найдет города с населением более 100 000 человек

<=

меньше или равно

dictword(statistics, Frequency:<=1000) — найдет слова, встречающиеся в корпусе 1000 или менее раз

>=

больше или равно

dictword(statistics, Frequency:>=1000) — найдет слова, встречающиеся в корпусе 1000 или более раз

Пример

dictword(GeoAdministrative, Category:=city, Country:=Соединенные Штаты Америки|Мексика) найдет все города США или Мексики согласно словарям категории GeoAdministrative. К примеру, «Сиэтл», «Чикаго», «Мехико».

dictword(Statistics, my_stats, Support:>100, dictword(Companies)) найдет все компании согласно словарям категории Companies, если они встречаются более чем в ста документах корпуса. Чтобы словарь категории Statistics содержал сведения по конкретному корпусу, необходимо самостоятельно создать словарь для этого корпуса. Соответственно, на месте аргумента название_словаря (my_stats) должно стоять то имя, что было присвоено пользователем при создании словаря. Подробнее о создании статистических словарей см. «Создание пользовательских статистических словарей».

unknownword(Morphology, term(my_wordclass)) найдет элементы, содержащиеся в словарном списке my_wordclass (может быть создан пользователем), но отсутствующие в морфологическом словаре Morphology.

dictword(Companies, match:=range) найдет «ПАО "ГК "Роллман"».

dictword(Companies) найдет «ПАО ГК Роллман».

Примечания

Эффективность поиска с помощью функции dictword() напрямую зависит от полноты и точности словарей:

  1. Чем больше статей содержит словарь, тем больше элементов будет найдено.

  2. Поиск словарных единиц производится без учета контекста. Предположим, в словаре категории GeoAdministrative существуют омонимичные статьи «Сан-Диего, Колумбия» и «Сан-Диего, США». Даже если составить запрос с уточнением страны, к примеру, dictword(GeoAdministrative, Category:=city, Country:=Соединенные Штаты Америки), «Сан-Диего» будет найдено как в предложении «Сан-Диего — город на юго-западе США», так и в предложении «Вчера в колумбийском городе Сан-Диего произошло крупное землетрясение».

  3. Возможны случаи омонимии с именами нарицательными. К примеру, если в словаре категории GeoAdministrative существует статья «Орел», то запрос dictword(GeoAdministrative, Category:=city, Country:=Россия) найдет слово «орел» как в предложении «Орел — город в России, административный центр Орловской области», так и в предложении «Горный орел известен как беркут». Чтобы уменьшить количество подобных случаев, можно добавлять дополнительные ограничения с использованием других функций. К примеру case(title, dictword(GeoAdministrative, Category:=city, Country:=Россия)) не найдет «орел», если слово написано со строчной буквы.

  4. Поиск производится по той форме слова, что указана в словаре. Чтобы найти словарный элемент во всех его формах, необходимо передать функцию dictword() функции lemma() и указать желаемую часть речи. К примеру, чтобы найти не только «Париж» и «Берлин», но также «Парижа», «Берлином» и т.д., можно составить запрос lemma(noun, dictword(GeoAdministrative, Category:=city)). Подробнее о функции lemma() см. «Поиск по лемме».

Пример задачи: Поиск территорий, пораженных эпидемиями

Чтобы найти, какие территории затронуты эпидемией, можно сформировать следующий запрос:

near(3, борьба|угроза|распространение, эпидемия, case(title, dictword(GeoAdministrative)))

Данный запрос вернет тексты, в которых на расстоянии 3 друг от друга находятся слова «эпидемия», «борьба» или «угроза» или «распространение», а также название геоадминистративного объекта с заглавной буквы.

pdl dictword 3 rus