int sol_FindEnumState( HGREN hEngine, int CategoryID, const wchar_t * AttributeName )
int sol_FindEnumState8( HGREN hEngine, int CategoryID, const char * AttributeNameUtf8 )
Аргументы:
hEngine - дескриптор созданного вызовом sol_CreateGrammarEngine экземпляра морфологического словаря.
CategoryID - ID грамматической категории.
AttributeName - наименование грамматического признака в рамках заданной категории CategoryID. Поиск выполняется без учета регистра.
Возвращает:
-1 - Грамматический признак с указанным именем отсутствует в указанной грамматической категории.
число>=0 - первичный ключ (id) признака.
Функции sol_FindEnumState и sol_FindEnumState8 отличаются текстовой кодировкой, в которой задано название категории. Функция с суффиксом 8 - получает строку в кодировке utf-8.
Грамматическую категорию, то есть параметр вызова CategoryID, можно задать либо с использованием символических констант, объявленных в _sg_api.*, либо вызвав sol_FindEnum для поиска ID по имени категории.
Для просмотра полного списка грамматических категорий и признаков для русского языка откройте в Блокноте этот файл.
В рамках SQL словаря найти числовой код признака по его наименованию можно через таблицу SG_STATE.
Грамматические признаки имеют уникальный ID только в рамках одной грамматической категории. Например, признаки несовершенного вида глагола и именительного падежа могут иметь одинаковые ID, так как они относятся к разным категориям. В случаях, когда требуется различать грамматические признаки разных категорий в одном вызове API, вместе с ID признака указывается также ID категории.
Функции потокобезопасны.
Для большинства грамматических признаков в файле _sg_api.* объявлены символические константы, соответствующие их id. Например, id винительного падежа объявлен как ACCUSATIVE_CASE_ru.
Пример на C++ - поиск ID винительного падежа:
#include "solarix_grammar_engine.h"
...
HGREN hEngine = sol_CreateGrammarEngineW(L"..\\..\\bin-windows\\dictionary.xml");
//...
int CaseID = sol_FindEnum( hEngine, L"падеж" );
int AccusativeID = sol_FindEnumState( hEngine, CaseID, L"винительный" );
// ...
Пример на C# - поиск ID превосходной степени прилагательного:
IntPtr gren = SolarixGrammarEngineNET.GrammarEngine.sol_CreateGrammarEngineW("..\\..\\bin-windows\\dictionary.xml");
// ...
int DegreeID = SolarixGrammarEngineNET.GrammarEngine.sol_FindEnum( gren, "степень" );
int SuperlativeID = SolarixGrammarEngineNET.GrammarEngine.sol_FindEnumState( gren, DegreeID, "превосходная" );
Приобретение SDK грамматического словаря
Совершенный и несовершенный вид глагола
Степени сравнения прилагательных и наречий
Единственное и множественное число
Женский, мужской и средний род
класс Coordinate - грамматическая категория в ORM библиотеке
API layer C++ source code: grammar_engine_api.cpp
Вернуться к списку функций API
© Elijah Koziev 2010
Поисковая система
SDK Поисковой системы
Экранный переводчик
|
|
изменено 27-Mar-11 | ||||||||||||||||||||||||||||||||||||||