ции заданий в систему редактирования и генерации заданий. Другими словами, предполагается, что для создания нового задания не нужно будет обладать навыками программирования, все будет сводиться к графическому редактированию с помощью набора предоставляемых графических инструментов и подсистемы редактирования случайных переменных. Система постоянно модифи-
цируется и имеет очень хорошие предпосылки для дальнейшего развития.
Литература
Бакушев С.В., Куликов А.В. Генератор заданий для самостоятельной работы студентов // Современные информационные технологии: тр. Междунар. НТК. Вып. 6. ПГТА. 2007. С.129-133.
УДК 002.53:539.21:620.18
МОДУЛЬ ДЛЯ ПОЛУАВТОМАТИЧЕСКОГО ИЗВЛЕЧЕНИЯ И ОБРАБОТКИ ДАННЫХ В ОБЛАСТИ НАНОКОМПОЗИТОВ
(Работа выполнена в рамках государственных контрактов с Министерством образования и науки РФ
№ 02.740.11.0475 и № 11.519.11.4004)
И.В. Митрофанов; А.А. Краснов; Е.А. Поръсева; Э.М. Кольцова, д.т.н.
(Российский химико-технологический университет им. Д.И. Менделеева, г. Москва,
kolts@m-uctr. ru)
В данной работе предпринята попытка создания базы данных по свойствам нанокомпозитов. Проведена классификация нанокомпозитов по матрице и наполнителю. Создан модуль единого поиска статей в научных журналах, а также модуль полуавтоматического извлечения фактов, который значительно ускорил процесс наполнения базы информацией, автоматизировав его.
Ключевые слова: нанокомпозиты, метод опорных векторов, обработка информации.
Нанотехнологическая отрасль сегодня в числе наиболее динамично развивающихся. Оцениваемый объем мирового рынка наноматериалов и технологий их получения в 2009 году составил 10,1 млрд долл. США. Одним из основных продуктов этой отрасли являются нанокомпозиты, позволяющие значительно (в отдельных случаях на несколько порядков) улучшать свойства обычных композитов благодаря применению наночастиц.
Согласно прогнозам, мировой рынок наноком-позитов до 2015 года ежегодно будет расти в среднем на 25 % в натуральном выражении и почти на столько же в стоимостном (снижение темпов произойдет ближе к 2014-2015 годам, причем почти на 10 % ежегодно) [1].
Активное развитие нанотехнологий и, как следствие, информационный бум в этой области привели к появлению в 1990-2010 гг. около 300 тысяч публикаций, посвященных нанокомпози-там, более чем в 120 странах мира. Поэтому создание информационной системы, в которой были бы отражены основные свойства нанокомпозитов, их классификация, методики исследования, способы получения и применения, на данном этапе развития технологий является важной задачей. Ее успешное решение позволит исследователям и производителям выбирать оптимальные критерии при получении или применении композиционных наноматериалов, ускорить разработку, учитывая опыт своих коллег.
Цель данной работы - упростить поиск и обработку информации. Для этого был создан единый модуль, с помощью которого можно находить статьи для уже имеющейся БД по нанокомпозитам, а также реализовать возможность полуавтоматического извлечения информации.
При разработке модуля руководствовались следующими критериями: высокая скорость разработки, дружелюбный интерфейс, легкая поддержка и доработка программы в будущем.
Основой разработанной системы 'ЫапоС1а881-/¡саО стала реализация БД свойств по нанокомпозитам в виде «вопрос-ответ». То есть имеется набор вопросов (количество которых постоянно растет, что позволяет более полно отражать основные свойства и характеристики нанокомпози-тов), разделенных по группам (например, физико-химические свойства, механические свойства, оптические свойства, методы получения и др.), и найденные в статьях ответы на них.
Для удобства хранения обработанной информации необходимо было ее структурировать: для этого разработана несложная и достаточно общая классификация по наполнителям и матрицам, делящая их в общем случае на металлические и неметаллические с последующей детализацией.
Кроме создания структуры системы, необходимо было решить и вопрос ее заполнения: очевидно, что, имея такое количество статей, следует
автоматизировать процесс сбора и обработки информации.
Задачи автоматической классификации текстов и извлечения фактов являются сегодня одними из наиболее актуальных в таких областях, как Text mining и Data mining. Поэтому авторами были разработаны модуль единого поиска информации по существующим сетевым ресурсам, а также модуль полуавтоматического извлечения необходимой информации из отечественных и зарубежных статей, посвященных нанотехнологии и наноин-дустрии.
При разработке модуля автоматической классификации использован метод опорных векторов [2], применяемый при решении задач распознавания образов, управления, прогнозирования и др. Кроме того, метод показывает высокие результаты на тестах и относится к категории методов «Обучение с учителем» (как и нейронные сети), то есть для его работы нужна начальная выборка информации для обучения.
Геометрически суть этого метода сводится к поиску оптимальной разделяющей гиперплоскости и нахождению максимального зазора между этой гиперплоскостью и опорными векторами, как это показано на рисунке 1. Гиперплоскость является разделяющей прямой, опорные векторы лежат на двух параллельных ей прямых. Алгебраически это задача квадратичного программирования.
Метод опорных векторов позволяет:
- получить функцию классификации с минимальной верхней оценкой ожидаемого риска;
- использовать линейный классификатор для работы с нелинейно разделяемыми данными, сочетая простоту с эффективностью.
Правильный выбор программных средств реализации модуля является залогом успеха.
Выбор был сделан в пользу связки Java + MySQL. Основные причины такого решения: высокая скорость разработки, низкая вероятность допущения критических ошибок, сравнимая с С++ по скорости работы приложений.
При разработке модуля использовалась бесплатная IDE Netbeans v6.8.
Использованные библиотеки:
- для разработки интерфейса - фреймворк Spring, лицензия Apache License, v2.0 (совместима с GPLv3);
- для реализации SgL-запросов к БД - Mysql Connector, лицензия GPL License v3;
- для работы с html-кодом страниц - библиотека Jsoup, лицензия MIT License.
Все библиотеки распространяются под открытыми для распространения и разработки лицензиями.
Прежде чем классифицировать текст, необходимо подготовить статью, преобразовав ее в специальную модель. Первым этапом такого преобразования является нормализация. Вначале следует убрать все стоп-слова - предлоги, союзы и другие часто встречаемые слова. Затем необходимо извлечь корни из слов по алгоритму Портера, таким образом выделяется суть статьи. Далее нужно избавиться от шума: убрать все числа, привести статью к единому регистру, убрать знаки препинания.
Следующий этап преобразования - применение так называемой модели TF*IDF к нормализованной статье. TF - отношение количества раз, которое слово t встретилось в документе d, к длине документа. Нормализация длиной документа нужна, чтобы уравнять в правах короткие и длинные (в которых абсолютная встречаемость слов может быть гораздо больше) документы. IDF -логарифм отношения общего числа документов к числу документов, содержащих слово t. Таким образом, для слов, которые встречаются в большом числе документов, IDF будет близок к нулю (если слово встречается во всех документах, IDF равен нулю), что помогает выделить наиболее важные слова. Коэффициент TF*IDF равен произведению TF и IDF; TF играет роль повышающего множителя, IDF - понижающего. Соответственно, вместо простой частоты встречаемости элементами векторов-документов будут значения TF*IDF. Во многих задачах (но не во всех) это позволяет заметно улучшить качество. Полученная в итоге модель представляет собой вектор номеров слов и значений коэффициента TF*IDF.
Извлечение из статьи фактов и необходимой для базы информации происходит на основе анализа структуры htwl-документа. Обработка кода html-страниц с результатами поиска и со статьями производилась с помощью библиотеки Jsoup. Все обработанные html-страницы находятся в папке для хранения временных файлов модуля. Таким образом, в случае повторения поисковых запросов в течение одного сеанса работы с модулем будут обработаны страницы, находящиеся в папке для временных файлов. Так же применялся алгоритм, основанный на регулярных выражениях и поиске ключевых слов, которые были привязаны к вопросам в разработанной БД. Модуль автоматически
Разделяющая гиперплоскость
Опорные векторы
Рис. 1. Опорные векторы
ищет в выбранной статье необходимые авторам для заполнения созданной БД ответы на вопросы. Полученные после применения такого подхода результаты пользователю необходимо или подтвердить, или опровергнуть, или изменить, только после этого информация заносится в созданную БД.
Модуль разработан таким образом, что вся обработанная информация (значимые слова, корни слов, коэффициенты TF*IDF), а также ответы на вопросы и классификация хранятся в БД для промежуточной информации (рис. 2). Это сделано для того, чтобы обеспечить более детальный анализ статей в дальнейшем (без необходимости обработки статей каждый раз, когда происходит модернизация модуля), а также для реализации качественной поисковой системы.
На рисунке 2 показана инфологическая модель используемой структуры БД. Эти таблицы созданы в дополнение к уже имеющимся в БД по нано-композитам.
Таблица wordsall содержит все значимые в статьях слова; в wordsstem находятся только корни слов; feature - это таблица свойств метода опорных векторов для каждой статьи, а таблицы categorymatrix, categorynap, composite, matrix, nap, classification отвечают за классификацию статей по матрицам и наполнителям.
Кроме того, в модуль внедрен единый поиск статей, который использует поисковые механизмы научных журналов, представленных, например, в коллекции электронных журналов на платформе Sciencedirect, обрабатывает результаты (анализируя html-структуру полученной страницы) и выводит на экран пользователя только необходимую для дальнейшей работы информацию. Пользователю больше не нужно посещать сайты научных журналов, чтобы найти статьи. Достаточно воспользоваться поиском, который предлагает модуль.
Кроме того, в модуле создан менеджер загрузок, предназначенный для загрузки и сохранения pdf-файлов статей на жесткий диск пользователя.
Для работы программы необходимо скопировать папку NanoClassificator на жесткий диск пользователя. Программа запускается приложением Classificator.jar. Это клиентское приложение, обеспечивающее связь с сервером БД, а также реализующее поиск по сайтам научных журналов. Входных данных при запуске программы нет. Все выходные данные (название статьи, авторы, дата публикации, ссылка на страницу статьи, а также извлеченная информация по свойствам наноком-позита) проанализированной статьи записываются в БД на сервере.
Для оценки качества работы используемой программы метода SVM был проведен специальный тест с применением программы SVM-light.
Документы, которые необходимо было классифицировать, представлены в виде характеристических векторов (в результате обработки статей по модели TF*IDF). Каждая характеристика соответствовала основе слова (9947 характеристик).
Было проведено обучение программы с помощью статей Reuters и коллекции имеющихся документов на основе 1 000 позитивных и 1 000 отрицательных примеров и произведена проверка на 600 тестах.
В результате работы программы точность классификации составила 97,67 %.
Условия, необходимые для работы программы:
- персональный компьютер с процессором Intel Pentium III (и выше) или аналогичный;
- ОЗУ не менее 512 Мб;
- доступ в Интернет;
- свободное место на жестком диске не менее 1 Гб для хранения временных файлов и статей в формате pdf,
- ПО Java, которое бесплатно доступно для установки (http://www.java. com/ru/);
- операционная система, поддерживающая технологию Java.
Для работы программы необходим хороший канал доступа в Интернет, так как поиск происходит по сайтам научных журналов в online -режиме. Программа работает стабильно, во время тестирования никаких сбоев не наблюдалось. Средства самовосстановления не предусмотрены.
Благодаря разработанным модулям процесс обработки и поиска статей стал значительно проще. Раньше на обработку статьи в ручном режиме требовалось от 4 часов и более: необходимо было перевести статью, найти необходимую информацию и после этого перенести найденные факты в БД. За год таким образом было обработано около 300 статей. Сейчас для обработки одной статьи требуется от 5 до 20 минут в зависимости от ее сложности. За две недели практического применения разработанных модулей было обработано 150 статей.
words all
id
word_stem_id value
words ste
id
value
features
article_id
words_stem_
d
value TF
id
cat_id name
matrix class
id
parent_id name
classification
composite_id matrix_id fil l_id
fill class
id
parent. id
name
composite
id name
fill
id cat_id name
h
Рис. 2. Инфологическая модель БД со статистикой
Таким образом, благодаря разработанным модулям полуавтоматического извлечения фактов и классификации процесс заполнения БД по нано-композитам ускорен в несколько раз. Главным образом разработан модуль автоматического анализа текста и извлечения необходимой информации из него, что значительно облегчило такой длительный и трудоемкий процесс, как наполнение созданной БД информацией.
Информационный и научно-прикладной характер разработанной системы позволяет использовать ее в научно-исследовательских работах (для получения данных о структуре, строении, физико-механических и химических показателях ве-
ществ), в учебно-образовательном процессе, а также в производственной деятельности для извлечения информации о качественном и количественном улучшении свойств композитных материалов, при введении в их матрицу различных армирующих наполнителей.
Литература
1. Исследовательская компания «Abercade». Маркетинговый отчет «Мировой рынок полимерных нанокомпозитов в 2003-2009 годах». 2010. 134 с. http://www.abercade.ru/research/ reports/3829.html.
2. Burges C.J.C. A tutorial on support vector machines for pattern recognition // Data Mining and Knowledge Discovery. Vol. 2. 1998. 988 p.
УДК 004.432.2
СИНТЕЗ СИНТАКСИСОВ В СОЗДАНИИ СПЕЦИАЛИЗИРОВАННЫХ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
А.Ю. Никифоров, к.т.н.; В.А. Русаков, к.т.н.
(Национальный исследовательский ядерный университет «МИФИ», г. Москва, [email protected], [email protected])
Рассматривается метод синтеза синтаксиса языков программирования как специализированных средств описания заданной предметной области.
Ключевые слова: синтаксис, языки программирования, технология разработки, специализированные искусственные языки.
Синтаксис является неотъемлемой частью любого языка. Без его знания невозможно правильно построить фразу. Согласно ряду лингвистических теорий, существует универсальная грамматика, присущая каждому человеческому языку. При этом она понимается как знание о языке, встроенное на генетическом уровне [1]. Для искусственных языков, используемых в ходе последующей компьютерной обработки, наличие строгого описания синтаксиса является основой построения программных систем.
Практика показала, что отсутствие строгих синтаксических правил у естественных языков приводит к существенным трудностям при попытках их использования для решения конкретных прикладных задач. Формируемым описаниям обычно присущи неполнота, неоднозначность, а также недостаточность формальных оснований для последующего анализа свойств объектов. Данное обстоятельство служило и служит мощным стимулом появления искусственных языков. При этом специализация средств описания позволяет значительно снизить сложность создаваемых языков. При возникновении новых потребностей человека разрабатываются новые рукотворные системы и новые средства поддержки их разработки, включая языки программирования. В силу понятийного отрыва универсальных языков от
конкретных предметных областей у специалистов в этих областях мотивация к изучению и последующему применению таких языков чрезвычайно слаба. Естественным средством повышения привлекательности средств описания является разработка новых специализированных языков, максимально простых и приближенных к задаваемым предметным областям.
Объединенные усилия специалистов в конкретной предметной области и теории построения языков дают возможность таких выделения и группировки понятий этой области при адекватном семантическом наполнении соответствующих языковых конструкций, что вся совокупность подобных групп понятий полностью содержательно покрывает данную предметную область. Разумеется, наилучшим вариантом описанного объединения усилий является их воплощение в одном лице. В настоящее время широчайшее применение разного рода моделей не такая уж редкость.
За меру удаленности, приводящей к включению в разные группы, может быть принята ориентировочная семантическая независимость понятий. Поэтому, выбрав по представителю в каждой из таких групп, можно сформировать семантический базис предметной области. Это означает, что язык с конструкциями, нагруженными семантикой такого базиса, и представляемый совокупностью