База N-грамм

База N-грамм представляет из себя несколько таблиц с информацией о частотных характеристиках текстов. В грамматическом движке реализовано несколько типов хранилищ, в том числе на основе обычных реляционных СУБД SQLite и MySQL, а также специальный вариант Key-Value хранилища без SQL интерфейса для особо больших объемов данных.

Вне зависимости от используемого типа хранилища, API грамматического словаря предоставляет унифицированный доступ к этой базе данных с помощью описываемых ниже процедур. Все процедуры экспортируются из динамически загружаемой библиотеки solarix_grammar_engine.dll (solarix_grammar_engine.so для Linux).

Параметры подключения к базе данных N-грамм задаются в конфигурационном файле словаря. В частности, там указывается каталог с файлами для локального хранилища или строка подключения к серверу БД.

Наполнение базы данных статистикой может осуществляться как сторонними программами, так и штатной утилитой проекта Empirika.

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

Функции API

Определение количества N-грамм в базе

int sol_CountNGrams( HGREN hEngine, int Type, int Order )

Аргументы:

Type - 0 для ненормализованных, 1 для нормализованных

Order - порядок Nграммы, от 1 (монограммы, то есть слова) до 5 (пентаграммы).

Подробнее об этой функции ...

Получение частоты N-граммы

int sol_Seek1Grams( HGREN hEngine, int Type, const wchar_t *Word1 )

int sol_Seek2Grams( HGREN hEngine, int Type, const wchar_t *Word1, const wchar_t *Word2 )

int sol_Seek3Grams( HGREN hEngine, int Type, const wchar_t *Word1, const wchar_t *Word2, const wchar_t *Word3 )

int sol_Seek4Grams( HGREN hEngine, int Type, const wchar_t *Word1, const wchar_t *Word2, const wchar_t *Word3, const wchar_t *Word4 )

int sol_Seek5Grams( HGREN hEngine, int Type, const wchar_t *Word1, const wchar_t *Word2, const wchar_t *Word3, const wchar_t *Word4, const wchar_t *Word5 )

Аргументы:

hEngine - дескриптор созданного объекта движка - см. sol_CreateGrammarEngine.

Type - 0 - ненормализованные N-граммы, 1 - нормализованные.

Word1 и т.д. - части N-граммы, то есть отдельные слова.

Возвращает: абсолютную частоту.

Подробнее о функции sol_Seek1Grams ...

Подробнее о функции sol_Seek2Grams ...

Подробнее о функции sol_Seek3Grams ...

Подробнее о функции sol_Seek4Grams ...

Подробнее о функции sol_Seek5Grams ...

Дополнительные материалы

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

Примеры использования API

Утилита Empirika - сборщик N-грамм

Утилита Lexicon - интерактивный доступ к базе Nграмм

Алгоритмы русской морфологии

Использование N-грамм - синонимизатор

  © Mental Computing 2010
изменено 25-Aug-11