База N-грамм представляет из себя несколько таблиц с информацией о частотных характеристиках текстов. В грамматическом движке реализовано несколько типов хранилищ, в том числе на основе обычных реляционных СУБД SQLite и MySQL, а также специальный вариант Key-Value хранилища без SQL интерфейса для особо больших объемов данных.
Вне зависимости от используемого типа хранилища, API грамматического словаря предоставляет унифицированный доступ к этой базе данных с помощью описываемых ниже процедур. Все процедуры экспортируются из динамически загружаемой библиотеки solarix_grammar_engine.dll (solarix_grammar_engine.so для Linux).
Параметры подключения к базе данных N-грамм задаются в конфигурационном файле словаря. В частности, там указывается каталог с файлами для локального хранилища или строка подключения к серверу БД.
Наполнение базы данных статистикой может осуществляться как сторонними программами, так и штатной утилитой проекта Empirika.
Статистическую информацию из собираемой базы данных используют несколько прикладных проектов, созданных на основе грамматического словаря. В частности, полнотекстовый переводчик использует их для фильтрации вариантов переводов, вызывая некоторые функции языка трансформаций. Классификатор текста также использует N-граммы, причем реализует собственный алгоритм сбора и анализа, и кроме того работает одновременно с набором баз для многокритериальной классификации.
Определение количества N-грамм в базе
int sol_CountNGrams( HGREN hEngine, int Type, int Order )
Аргументы:
Type - 0 для ненормализованных, 1 для нормализованных
Order - порядок Nграммы, от 1 (монограммы, то есть слова) до 5 (пентаграммы).
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 грамматического словаря
Утилита Empirika - сборщик N-грамм
Утилита Lexicon - интерактивный доступ к базе Nграмм
Использование N-грамм - синонимизатор
© Козиев Илья 2019
![]() |
|
изменено 25-Aug-11 |