Загрузка грамматического словаря в оперативную память или подключение к словарной базе данных

C/C++:

int sol_LoadDictionaryW( HGREN hEngine, const wchar_t * Filename )

int sol_LoadDictionaryA( HGREN hEngine, const char * Filename )

int sol_LoadDictionary8( HGREN hEngine, const char * FilenameUtf8 )

int sol_LoadDictionaryExW( HGREN hEngine, const wchar_t * Filename, int InstanceFlags )

int sol_LoadDictionaryExA( HGREN hEngine, const char * Filename, int InstanceFlags )

int sol_LoadDictionaryEx8( HGREN hEngine, const char * FilenameUtf8, int InstanceFlags )

C#:

int sol_LoadDictionaryW( HGREN hEngine, string Filename )

int sol_LoadDictionaryExW( HGREN hEngine, string Filename, int InstanceFlags )

Delphi:

function sol_LoadDictionaryW( hEngine: PInteger; Filename: PWideChar ): Integer;

function sol_LoadDictionaryA( hEngine: PInteger; Filename: PAnsiChar ): Integer;

function sol_LoadDictionary8( hEngine: PInteger; Filename: PAnsiChar ): Integer;

function sol_LoadDictionaryExW( hEngine: PInteger; Filename: PWideChar; InstanceFlags: Integer ): Integer;

function sol_LoadDictionaryExA( hEngine: PInteger; Filename: PAnsiChar; InstanceFlags: Integer ): Integer;

function sol_LoadDictionaryEx8( hEngine: PInteger; Filename: PAnsiChar; InstanceFlags: Integer ): Integer;

PHP:

sol_LoadDictionaryEx8( $hEngine, $FilenameUtf8, $InstanceFlags )

Аргументы:

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

Filename - путь к файлу описания словаря, обычно это dictionary.xml, создаваемый при сборке словаря. Этот файл содержит перечень имен бинарных файлов базы данных словаря.

InstanceFlags - комбимбинация флагов, управляющих загрузкой. Значение 0 обеспечивает режим по умолчанию, соответствующий функциям sol_CreateGrammarEngine[A,W,8]. Константа SOL_GREN_LAZY_LEXICON изменяет режим работы со словарными статьями, они будут подгружаться с диска по мере необходимости.

Возвращает:

0 - Cловарь не загружен из-за ошибки. Текст описания ошибки можно попробовать узнать вызовом sol_GetError. Среди самых распространенных причин ошибок - некорректно заданный путь или версия словаря несовместима с версией движка.

1 - Словарь успешно загружен.

2 - Словарь уже был загружен, новая загрузка не выполнена. Следует использовать sol_UnloadDictionary для выгрузки.

Примечания

Функции отличаются текстовой кодировкой, в которой задан путь к словарю. Функция с суффиксом A принимает строку в однобайтовой кодировке текущей локали, с суффиксом W принимает строку широких символов, с суффиксом 8 - строку в кодировке utf-8. Последний вариант наиболее удобен для использования в Linux.

Грамматический словарь загружается в оперативную память, занимая достаточно много ресурсов. Кроме того, загрузка словаря - достаточно длительный процесс, обычно это несколько секунд.

Во многих случаях можно совмещать создание грамматического движка и загрузку словаря в рамках единственного вызова функции sol_CreateGrammarEngine.

Из-за особенностей реализации на Windows гарантируется загрузка словаря только с локальных дисков. Попытка загрузки словаря, находящегося на сетевом ресурсе, скорее всего приведет к ошибке.

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

Файлы словаря могут быть залочены после начала загрузки до момента выгрузки (удаления из памяти).

Загруженный словарь можно выгрузить, освободив занимаемую им оперативную память, с помощью функции sol_UnloadDictionary.

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

#include "solarix_grammar_engine.h"

...

HGREN hEngine = sol_CreateGrammarEngine(NULL);

//...

int rc = sol_LoadDictionaryW( L"..\\..\\bin-windows\\dictionary.xml" );
if( rc!=1 )
 {
  int err_len = sol_GetErrorLen(hEngine);
  wchar_t *buf = new wchar_t[err_len+1];
  sol_GetError( hEngine, buf, err_len+1 );

  // ...
  
  sol_ClearError(hEngine);
  delete[] buf;
 }

Пример на C#:

IntPtr gren = SolarixGrammarEngineNET.GrammarEngine.sol_CreateGrammarEngineW("");

// ...

int loading_ok = SolarixGrammarEngineNET.GrammarEngine.sol_LoadDictionaryW( gren, "dictionary.xml" );
if( loading_ok!=1 )
 {
  DictionaryLoadError();
 }

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

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

API layer C++ source code: grammar_engine_api.cpp

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

  © Elijah Koziev 2010
прикладные проекты на основе грамматического словаря API грамматической машины компоненты для доступа к грамматическому словарю условия получения SDK токенизатор и сегментатор морфологический анализ и синтез лемматизатор база N-грамм синтаксический анализатор словоформы морфология и синтаксис русского языка падеж число род совершенный и несовершенный вид экспорт в SQL формат экспорт в XML формат скрипт SQL словаря структура SQL словаря структура XML словаря компоненты для доступа к грамматическому словарю ORM Persistent Dictionary Library лемматизация стемминг примеры использования грамматического словаря склонение существительных в русском языке склонение русских прилагательных спряжение глаголов в русском языке поиск текста с учетом морфологии OCR подсистема расширенные регулярные выражения генератор текста генератор случайного текста и имитатор рандомизатор синонимизатор перефразировщик Статистика буквенных паттернов

Грамматический словарь русского языка



Грамматический словарь
склонение и спряжение глаголов, существительных, прилагательных

В состав входит русский и английский словарь.

платформа:  Windows 2000 ... Windows 7
требования: 512 Mb свободной памяти, 300 Мб на диске
размер:         34 Мб

  скачать грамматический словарь купить грамматический словарь SDK грамматического словаря
грамматический словарь русского языка



SDK Грамматического словаря



SDK Грамматического Словаря
склонение и спряжение глаголов, существительных, прилагательных

В состав входит русский и английский словарь.

платформа:  Windows 2000 ... Windows 7
размер:         13 Мб

SQL словарь (демо):
sqlite mysql oracle firebird mssql

скачать демо-версию SDK купить SDK API грамматического словаря



Поисковая система



Integra
настольная и сетевая поисковая система 

платформа:  Windows XP ... Windows 7
требования: 512 Mb свободной памяти
размер:         21 Мб

Дополнительные компоненты:
MySQL поисковый сервер 13.5 Мб
Integra.Premium MySQL 3.9 Мб

скачать поисковую систему SDK поисковой системыописание поисковой системы



SDK Поисковой системы



SDK Поискового движка
API для настольной и сетевой поисковая система 

платформа:  Windows XP ... Windows 7
размер:         17 Мб

Дополнительные компоненты:

MySQL поисковый сервер 13.5 Мб
Integra.Premium MySQL 3.9 Мб

скачать SDK SDK поисковой системы



Экранный переводчик



Translator
экранный переводчик

платформа:  Windows XP ... Windows 7
требования: 256 Mb свободной памяти
размер:         4.4 Мб

Дополнительные компоненты:
расширенный англо-русский словарь 6.4 Мб


скачать экранный переводчикописание экранного переводчика



изменено 13-Mar-11