Компоненты .NET - грамматический словарь, синонимизатор , dotnet_assembly.shtml

Файлы .NET компонентов поисковой машины, грамматического словаря и синонимизатора

Сборка - файл faind_fx.dll, который находится в SDK поисковой системы. Это wrapper для Win DLL поискового движка faind.win32.dll.

Для своей работы компонент может дополнительно потребовать скомпилированый словарь - если будет применяться поиск с учетом морфологии и с синтаксическим разбором. Если морфология не используется (см. описание опций движка), то можно обойтись без словаря.

Разнообразные настройки поисковика могут задаваться в виде текстового конфигурационного файла (обычно имеет имя faind.ini), формат которого описан здесь.

Для доступа к базе данных грамматического словаря можно использовать .NET сборку gren_fx.dll, которая является оберткой для solarix_grammar_engine.dll. Подробнее API грамматического словаря описан здесь. Вы можете скачать исходный текст сборки - файл Grammar_Engine_fx.cs.

Доступ к API синонимизатора и генератора текста осуществляется через .NET сборку synonymizer_fx.dll и динамическую библиотеку synonymizer.dll. Именно эти компоненты использует демонстрационная программа Rewriter, исходные тексты которой входят в состав SDK синонимизатора.

Использование .NET API грамматического словаря

Как легко убедиться, сборка gren_fx.dll содержит класс с набором статических методов, однозначно соответствующих процедурам API движка. Поэтому по существу работа с .NET API мало отличается от кода на C++ или Delphi, за исключением операций с получением строк в буфер.

Минимальный пример работы с движком на C#, состоящий из загрузки и выгрузки словаря:

использование грамматического словаря

Более развернутые примеры можно найти в SDK Грамматического Словаря.

Радикально отличающийся подход к работе со словарем предлагает другая библиотека - ORM Persistent Dictionary Library. Она позволяет работать с сущностями словаря, который загружен в реляционную БД типа MySQL или MS SQL, с помощью набора классов, которые соответствуют словарным и фразовым статьям, частям речи, связям и так далее. Простой пример использования этой библиотеки:

объектно-реляционное отображение словаря

Использование компонента .NET поисковой машины

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

Вы можете свободно использовать сборку в любых своих проектах. Кроме того, если Вы не можете использовать .NET Framework, то есть другая версия поисковой машины в виде обычной библиотеки DLL, хотя мы все-таки рекомендуем использовать компонент .NET.

Подключив эту сборку в проект, в объектном навигаторе можно будет увидеть класс Solarix.Search_Engine.Engine - это и есть весь интерфейс к поисковой машине.

В минимальном варианте выполнение запроса осуществляется предельно просто.

1. Создается объект класса Engine (пространство имен Solarix.Search_Engine).

2. Собирается строка с опциями так, так она подается на вход утилите FAIND. Строка (объект класса System.String) передается как аргумент методу Engine.Search.

3. Результат работы метода Engine.Search - XML файл (его формат описан здесь). Он возвращается как одна строка. В этом XML файле содержится вся информация о результатах поиска, включая перечень найденных файлов и контекстов фиксации паттерна запроса. Для извлечения этой информации удобно применять средства среды .NET Framework по работе с XML. Мы написали специальный учебный пример, в котором рассматривается разбор XML файла результатов - см. здесь.

Обратите внимание, что если для выполнения запроса потребуется морфологический или синтаксический анализ текста, то сборка попытается загрузить файл словаря diction.bin, который можно скачать здесь.

Для отслеживания процесса сканирования файлов можно воспользоваться механизмом делегатов среды .NET Framework. Для этого создается делегат и запоминается в поле Engine.user_handle (можно посмотреть на практическом примере). Перед началом обработки очередного файла делегат вызывается, давая возможность внешнему коду отобразить индикатор прогресса.

Другие методы класса Engine:

Read_Ini - прочитать конфигурационный ini файл (описан здесь).

Open_Log_File - писать лог-файл о работе поисковика

Generate_Html - результат поиска форматировать в виде HTML (а не XML по умолчанию)

Dont_Generate_Results - не создавать результат поиска (ни HTML, ни XML). Если результаты поиска все-таки нужны, то явно используется опция -listfiles. Результаты при этом записываются в дисковый файл.

Как это работает

Идеология взаимодействия пользовательской программы и поискового движка сделана очень простой - подробнее об этом рассказано здесь

Примеры использования .NET компонента поисковой машины

Хотя API поисковой машины намеренно сделан максимально простым, мы подготовили несколько учебных программ, исходные коды которых демонстрируют приемы работы с .NET компонентом поисковой машины.

Кроме того, предоставляемая отдельно программа Bulldozer.NET - поисковая утилита с оконным интерфейсом - также является всего лишь фронтендом (графической оболочкой) для .NET компонента. Эта программа работает с поисковым движком буквально по вышеописанному алгоритму, переводя указанные пользователем запросы на поиск в строковую команду с опциями, и отображает результаты поиска (в виде HTML файла).

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

Компиляция

См. руководство по компиляции.

Где скачать поисковую систему и SDK

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

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

API грамматического движка

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


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



изменено 14-Feb-12