Количество N-грамм определенного типа и порядка

C/C++ сигнатура:

int sol_CountNGrams( HGREN hEngine, int Type, int Order, unsigned int * Hi, unsigned int * Lo )

C# сигнатура:

int sol_CountNGrams( IntPtr hEngine, int Type, int Order, out UInt32 Hi, out UInt32 Lo )

UInt64 sol_CountNGramsFX( IntPtr hEngine, int Type, int Order )

Delphi сигнатура:

function sol_CountNGrams( hEngine: PInteger; Flags: Integer; Order: Integer; Hi: PInteger; Lo: PInteger ): Integer;

function sol_CountNGrams64( hEngine: PInteger; Flags: Integer; Order: Integer ): Int64;

Аргументы:

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

Type - 0 для буквальных, 1 для лемматизированных.

Order - порядок N-граммы, от 1 для одиночных слов до 5 для пентаграмм.

Lo - указатель на младшие 32 бита количества записей.

Hi - указатель на старшие 32 бита количества записей.

Возвращает:

1 - данные возвращены через Lo и Hi, 0 - была ошибка.

Примечания

Так как суммарное число записей в базе данных может превышать допустимый для знакового 32-битного целого предел, то функция возвращает 64-битное целое значение двумя 32-битными порциями.

В зависимости от конфигурации грамматического словаря и параметров загрузки в файле настроек, база данных N-грамм может располагаться в реляционной СУБД общего назначения типа MySQL или в NoSQL хранилище. API предоставляет единый механизм работы с N-граммами, скрывая от прикладного кода детали реализации back-end storage.

Если база N-грамм размещается в реляционной базе данных, то выполнение данной функции может для некоторых типов СУБД потребовать серьезного времени из-за большого объема данных. Например, для FireBird выполнение SELECT count(*) может привести к тяжелому сканированию таблиц NGRAM1 ... NGRAM5 и вызвать чистку мусора.

Для .NET платформы добавлена функция sol_CountNGramsFX, которая возвращает 64-битное целое и избавляет вызывающий код от необходимости компоновать это значение из двух 32-битных. Аналогично для Delphi введена функция sol_CountNGrams64.

Для получения частоты конкретной N-граммы следует использовать функции sol_Seek1Grams, sol_Seek2Grams, sol_Seek3Grams, sol_Seek4Grams, sol_Seek5Grams.

Примеры

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

#include "solarix_grammar_engine.h"

unsigned int Hi=0, Lo=0;
int rc = sol_CountNGrams(hEngine,0,3,&Hi,&Lo);
__int64 Freq = (__int64(Hi)<<32) | (unsigned __int64)Lo;
 
// ...

Пример на C#:

 IntPtr hEngine = GrammarEngine.sol_CreateGrammarEngineW("..\\..\\..\\..\\..\\..\\..\\bin-windows\\dictionary.xml");
  
 UInt64 ngram_count1 = GrammarEngine.sol_CountNGramsFX( hEngine, 1, 1 );
 UInt64 ngram_count2 = GrammarEngine.sol_CountNGramsFX( hEngine, 1, 2 );
 UInt64 ngram_count3 = GrammarEngine.sol_CountNGramsFX( hEngine, 1, 3 );
 UInt64 ngram_count4 = GrammarEngine.sol_CountNGramsFX( hEngine, 1, 4 );
 UInt64 ngram_count5 = GrammarEngine.sol_CountNGramsFX( hEngine, 1, 5 );

Пример на Delphi:

uses SysUtils, Windows,
  _sg_api in '..\..\..\..\..\include\lem\solarix\pro\_sg_api.pas',
  GrammarEngineApi in '..\..\..\..\..\include\lem\solarix\GrammarEngineApi.pas';

var hEngine: PInteger;
var ngram_count1, ngram_count2, ngram_count3, ngram_count4, ngram_count5: Int64;
begin

 hEngine := sol_CreateGrammarEngineA( '..\..\..\..\..\bin-windows\dictionary.xml' );

 ngram_count1 := sol_CountNGrams64( hEngine, 1, 1 );
 ngram_count2 := sol_CountNGrams64( hEngine, 1, 2 );
 ngram_count3 := sol_CountNGrams64( hEngine, 1, 3 );
 ngram_count4 := sol_CountNGrams64( hEngine, 1, 4 );
 ngram_count5 := sol_CountNGrams64( hEngine, 1, 5 );

 { ... }

 sol_DeleteGrammarEngine(hEngine);

end.

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

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

English version of this page

Сборщик N-грамм

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 Мб


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



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