Использование словарей
Для поиска аргументов, содержащихся в указанных словарях, используется функция dictword(). Является аналогом функции knownword().
Для поиска аргументов, отсутствующих в указанных словарях, используется обратная функция unknownword().
Подключение словарей
Для осуществления поиска словарных элементов необходимо убедиться, что нужный словарь подключен к узлу. Для этого нужно щелкнуть по узлу правой кнопкой мыши, зайти в «Настройки» и открыть вкладку «Словари». В левой части окна расположен список категорий словарей. При выборе одной из них справа появится список доступных словарей в данной категории. Можно обращаться как к стандартным, так и пользовательским словарям.
Синтаксис
Аргументы
Аргумент категория_словаря является обязательным и позволяет совершать поиск с учетом всех словарей указанной категории.
Для того, чтобы при необходимости сузить поиск, можно указать опциональный аргумент название_словаря и выбрать произвольное число словарей категории.
Вместо этого опционального аргумента можно использовать именованный параметр dict.
Таким образом, dictword(Morphology, Default) = dictword(Morphology, dict:=Default).
Функция unknownword() также может принимать произвольное число опциональных аргументов. При указании аргументов функция найдет те из них, которые присутствуют в корпусе, но отсутствуют в указанных словарях.
Параметры
Функции dictword() и knownword() позволяют установить ограничения для полей словарной статьи, указав значение_параметра. Функции поддерживают произвольное число значений_параметров.
Список параметров и их допустимых значений зависит от категории словаря — открыв любую словарную статью можно посмотреть доступные поля, а в раскрывающемся списке отображаются значения. Подробнее о работе со словарями можно узнать в разделе «Использование словарей».
При указании аргументов, параметров и их значений регистр не учитывается, т.е. dictword(GeoAdministrative, Country:=Франция) = dictword(geoadministrative, Country:=франция).
В таблицах ниже приведен список параметров и допустимых значений для стандартных словарей:
Категория словаря |
Cловарь компаний |
|
Параметр |
Пояснение |
Пример |
Type |
Тип |
dictword(companies, default, Type:=ооо|оао) найдет компании типа «ООО» или «ОАО» |
Country |
Расположение |
dictword(companies, Country:=Россия|Германия) найдет российские или немецкие компании |
Industry |
Отрасль |
dictword(companies, default, my_companies, Industry:=страхование) найдет страховые компании по стандартному словарю категории Companies и словарю my_companies (может быть создан пользователем) |
Категория словаря |
Cловарь организаций |
|
Параметр |
Пояснение |
Пример |
Type |
Тип |
dictword(organizations, default, Type:!=общественная организация) найдет организации, не являющиеся общественными |
Country |
Расположение (страна) |
dictword(organizations, Country:=Соединенные Штаты Америки|Канада) найдет американские и канадские организации |
Industry |
Отрасль |
dictword(organizations, default, my_org, Industry:=образование) найдет образовательные организации по стандартному словарю категории Organizations и словарю my_org (может быть создан пользователем) |
Категория словаря |
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 человек |
Категория словаря |
Cловарь имен |
|
Параметр |
Пояснение |
Пример |
Type |
Тип Допустимые значения: first name/surname |
dictword(humannames, Type:=first name) найдет имена людей |
Gender |
Пол Допустимые значения: male/female |
dictword(humannames, default, Type:=surname, Gender:=female) найдет женские фамилии по словарю Default категории HumanNames |
Категория словаря |
||
Параметр |
Пояснение |
Пример |
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, который позволяет извлекать словарное вхождение полностью, включая знаки пунктуации.
Кроме того, dictctword(WordClasses) поддерживает опциональный именованный параметр сlass. Он задает имя класса или нескольких классов через вертикальную черту. Например, dictword(WordClasses, сlass:=positive|negaive) = knownword(WordClasses, сlass:=positive|negaive).
Функция 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 существуют омонимичные статьи «Сан-Диего, Колумбия» и «Сан-Диего, США». Даже если составить запрос с уточнением страны, к примеру, dictword(GeoAdministrative, Category:=city, Country:=Соединенные Штаты Америки), «Сан-Диего» будет найдено как в предложении «Сан-Диего — город на юго-западе США», так и в предложении «Вчера в колумбийском городе Сан-Диего произошло крупное землетрясение».
-
Возможны случаи омонимии с именами нарицательными. К примеру, если в словаре категории GeoAdministrative существует статья «Орел», то запрос dictword(GeoAdministrative, Category:=city, Country:=Россия) найдет слово «орел» как в предложении «Орел — город в России, административный центр Орловской области», так и в предложении «Горный орел известен как беркут». Чтобы уменьшить количество подобных случаев, можно добавлять дополнительные ограничения с использованием других функций. К примеру case(title, dictword(GeoAdministrative, Category:=city, Country:=Россия)) не найдет «орел», если слово написано со строчной буквы.
-
Поиск производится по той форме слова, что указана в словаре. Чтобы найти словарный элемент во всех его формах, необходимо передать функцию dictword() функции lemma() и указать желаемую часть речи. К примеру, чтобы найти не только «Париж» и «Берлин», но также «Парижа», «Берлином» и т.д., можно составить запрос lemma(noun, dictword(GeoAdministrative, Category:=city)). Подробнее о функции lemma() см. «Поиск по лемме».