API лексикона - перечень словарных или фразовых статей

int sol_ListEntries( HGREN hEngine, int Flags, int EntryType, const wchar_t * EntryNameMask, int LanguageID, int PartOfSpeechID )

int sol_ListEntries8( HGREN hEngine, int Flags, int EntryType, const char * EntryNameMaskUtf8, int LanguageID, int PartOfSpeechID )

Аргументы:

hEngine - дескриптор экземпляра грамматического словаря.

Flags - управление алгоритмом поиска, 0x00000000 - поиск по регулярному выражению с точным соответствием регистра, 0x00000001 - поиск по регулярному выражению без учета регистра, 0x00010000 - поиск словарных статей с заданным именем без учета регистра.

EntryType - 0 для словарных статей, 1 для фразовых статей.

EntryNameMask - наименование словарной статьи, текст фразовой статьи, либо регулярное выражение для сопоставления с именем.

LanguageID - ID языка, можно задать -1.

PartOfSpeechID - ID части речи, можно указать -1, чтобы фильтрация по части речи не выполнялась.

Возвращает:

Дескриптор списка первичных ключей найденных статей.

Примечания

Функции sol_ListEntries и sol_ListEntries8 отличаются текстовой кодировкой, в которой задано название статьи. Функция с суффиксом 8 получает строку в кодировке utf-8.

Для получения дескриптора грамматического словаря можно воспользоваться функциями sol_CreateGrammarEngine и sol_LoadDictionary[A,W,8].

Для работы со списком ID, дескриптор которого вернула вышеописанная функция, следует использовать функции sol_CountInts, sol_GetInt и sol_DeleteInts. Зная ключ словарной или фразовой статьи, можно определять её свойства, такие как принадлежность к части речи, грамматический род, глагольный вид и так далее, с помощью соответствующих функций: sol_GetEntryClass, sol_GetEntryCoordState, sol_GetEntryName и др.

Значения ID в возвращаемом списке однозначно соответствуют первичному ключу записей в таблице SG_ENTRY или SG_TENTRY, согласно выбранному типу статей. Благодаря этому серверный вариант API можно использовать вместе с SQL запросами к базе данных словаря.

Для поиска словарных и фразовых статей в лексиконе есть и другие функции, реализующие разные подходы. В частности, поиск единственной словарной статьи по её имени и ID части речи можно сделать с помощью функции sol_FindEntry. Поиск фразовой статьи по ее тексту - функцией sol_FindPhrase. А поиск словарных статей, содержащих заданную грамматическую форму, можно выполнить через sol_ProjectWord.

Пример на C++:

#include "solarix_grammar_engine.h"

// ...

HGREN_INTARRAY hlist = sol_ListEntries8( hEngine, 0x00010000, 0, "сходить", -1, -1 );
int n = sol_CountInts(hlist);

for( int i=0; i<n; ++i )
 {
  int entry_id = sol_GetInt( hlist, i );
  // ...  
 }
 
sol_DeleteInts(hlist);

Навигация по API грамматического словаря

Приобретение SDK грамматического словаря

English version of this page

Лексикон

Словарные и фразовые статьи

API layer C++ source code: grammar_engine_api.cpp

Вернуться к списку функций API

  © Козиев Илья 2019
изменено 23-Aug-11