К сегодняшнему дню существует и активно используется большое количество систем, использующих технологию Text Mining: поисковые системы сети Internet, Intelligent Miner for Text, Oracle Text, Text Miner (SAS) и др. Однако большинство из них ориентировано на промышленные системы, а не на «настольное» использование. Можно выделить наиболее часто встречающиеся недостатки:
Оба этих момента не являются положительными и их нельзя выделить как преимущества.
Таким образом, перед нами стоит задача разработки системы, которая не должна будет требовать от пользователя явного указания набора файлов, на которых будет производиться поиск [5]. Для решения проблемы выбора индексируемых файлов предлагается неявно, «в фоновом режиме» регистрировать файлы, с которыми работает пользователь: просматривает, редактирует или создает. Тем самым, будет получен список файлов, которые с большой вероятностью интересны пользователю. Сбор статистики позволит так же учитывать частоту работы с файлом при определении его релевантности запросу. При этом опция явного указания набора фалов должна остаться в качестве дополнительной возможности. Второй момент - привязанность к программе. Безусловно, привязанность модели текста к самому тексту более логична и практична, чем привязанность к программе.
Для решения обеих проблем были приняты следующие решения:
При выполнении обоих пунктов поиск можно осуществлять без привязки к программе и осуществлять пополнение набора файлов, по которому осуществляется поиск, простым помещением файла на диск компьютера. Второе решение дает также следующие преимущества: работу с документом можно проводить и при отсутствии программы - при поиске или индексировании она сравнит версию документа и его модели (онтологии). При наличии расхождений, модель (онтология) будет модернизирована или же заново перестроена.
Однако момент привязки модели текста к нему самому достаточно проблематичен. Например, достаточно распространенный формат DOC не имеет такой возможности. При анализе форматов наиболее подходящим, с этой точки зрения, является формат OpenXML, используемый Microsoft Office. Сам документ представляет собой zip-архив, доступный для редактирования. Это позволяет хранить модель документа в самом документе, в виде набора файлов. По стандарту эти дополнительные файлы должны игнорироваться редакторами, что не повлияет на их работу, но редакторы не должны удалять или повреждать их, что обеспечит сохранность и привязанность к документу. Для того чтобы обеспечить возможность просмотра онтологий документов безотносительно нашей системы, в качестве формата хранения онтологии был выбран также открытый формат OWL.
Форматы хранения и представления онтологий имеют различные возможности и ограничения. Задача предоставления функционала расширения набора поддерживаемых форматов может быть решена с помощью DSL (Domain Specific Languages). Для простоты описания методов конвертирования между форматами необходимо иметь общие для различных языков концепты. Эти общие концепты будут представлять собой метаязык описания онтологий, что позволит создавать собственные языки описания онтологий как набор экземпляров концептов метаязыка. В этом случае описание методов конвертирования будет заключаться в описании процесса импорта и экспорта языка в концепты метаязыка. Для обеспечения универсальности должна поддерживаться возможность редактирования и метаязыка.
При создании нового языка пользователь создает экземпляры концептов «второго уровня», которые поддерживает данные язык. И в декларативном виде описывает приведение конструкций языка к метаязыку.
Достоинствами такого решения являются гибкость и унифицированность. Благодаря использованию метаязыка обеспечивается поддержка произвольных типов связей, концептов и ограничений. При этом их реализации в конкретных языках хранятся, представляются и обрабатываются единообразно. Такой подход также решает проблему внутреннего представления онтологий. Внутреннее представление будет основано на структуре метаязыка.
Вторым узким местом является набор поддерживаемых форматов. Следовательно, должен существовать механизм его расширения и модификации. Для достижения цели предлагается помещать логику работы с форматом в отдельные классы. Таким образом, для добавления нового формата или модификации существующего достаточно описать класс и скомпилировать его в DLL. Класс должен реализовывать интерфейс:
interface documentFormat
{
public File Document { get; set; }
public string AllText { get; }
public int WordsCount { get; }
public string GetWordAt(int position);
public string FileVersion { get; }
}
Такой подход позволит сузить работу с конкретными форматами до уровня одного класса. Вторым преимуществом будет являться простота расширения (сужения) поддерживаемых форматов путем простого подключения (отключения) определенных библиотек.
Следующим шагом в построении нашего продукта будет являться создание программы, осуществляющий процесс индексирования документа, т.е. построение модели документа в виде онтологии и помещение ее в сам файл. На этом шаге будут поддерживаться только формат OpenXML.
Подобная система позволит упростить и повысить качество поиска и анализа информации на компьютере. Решение задачи востребовано и делает ее привлекательной как для домашнего использования, так и для использования в организациях.
Библиографический список