Российская открытая конференция учащихся "Юность, наука, культура"

Вид материалаДокументы
Подобный материал:

Российская открытая конференция учащихся

“Юность, наука, культура”


Секция Программирование


Компьютерный анализ классификационных систем при автоматическом индексировании текстов


Байских Геннадий


Самарский Государственный Архитектурно-строительный Университет ФИСТ Гип - 105


Научный руководитель

Декан ФИСТ, д.т.н., профессор

Пиявский Семен Авраамович


г. Самара, 2006


Оглавление:
  1. История информационно –поисковых систем с 19 столетия до наших дней._________3
  2. Постановка задачи исследования_____________________________________________4
  3. Разработка программного обеспечения _______________________________________4
  4. Развитие базы данных разработанной системы_________________________________5
  5. Анализ эффективности_____________________________________________________6
  6. Выводы и направление дальнейших исследований______________________________6
  7. Приложение 1: Используемые фрагменты УДК и ББК __________________________7
  8. Приложение 2: Журнал экспериментальных исследований_______________________7
  9. Библиография____________________________________________________________9



Введение

В наше время в Интернете содержится очень много текстовой информации и, чтобы быстрее можно было найти нужный потребителю текст, каждый пользователь, заносящий в Интернет текстовую информацию, обязан присвоить ей тот или иной классификационный код (в России УДК и ББК). Классификационные системы широко применяются в печатных издательствах, в библиотеках: как компьютерных, так и в обычных. Также тексты без индекса не принимают ни в каких издательствах, поэтому, чтобы отправить текст на печатание, необходимо присвоить ему классификационный код.

В пошлом году мною была представлена программа "Автоматическое индексирование текста на основе формирования словаря УДК" и я получил степень лауреата. Но встал вопрос: "Почему индексирование происходит только по системе УДК?" В связи с этим я доработал программу так, что она обрабатывает и классифицирует тексты по все классификационным системам, и провел анализ на совместимость УДК и ББК. Также стоит отметить что программа стала правильно работать в 90% случаев.

В основу УДК была положена "Десятичная классификация" М. Дьюи. В 1876 г. вышло первое, очень краткое, издание таблиц ДКД. В 1905 г. в Брюсселе на французском языке вышло первое сводное издание таблиц новой десятичной классификации. В 1933 г. на французском языке закончилось второе полное издание таблиц десятичной классификации, теперь оно называлось "Универсальная десятичная классификация". В 1962 г. в стране в качестве единой обязательной классификации принята Универсальная десятичная классификация (УДК), а с 1963 г. в научно-технических издательствах, редакциях научно-технических журналов, в органах научно-технической информации, научно-технических библиотеках введено обязательное индексирование всех публикаций по Универсальной десятичной классификации, т. е. все информационные материалы в области естественных и технических наук издаются с индексами Универсальной десятичной классификации (УДК).

Сегодня мы отмечаем 30-летие ББК. Процесс внедрения ББК начался с выходом в свет первого выпуска таблиц. Распространение ББК сдерживалось крупным недостатком системы обозначений. В 1968 г. вышло в свет последнее издание таблиц классификации для массовых библиотек под редакцией З.Н.Амбарцумяна, содержательно переработанное в соответствии с ББК. Таблицы ББК для массовых библиотек (в одном томе) вышли в свет лишь в 1977 г. и переизданы в 1988 г.. В 1978, 1986 и 1988 гг. публиковался вариант для детских и школьных библиотек. В 1989 г. вышел в свет специализированный вариант ББК для краеведческих каталогов. Сегодня ББК - это система вариантов и изданий. Библиотекам нужны живые, постоянно развивающиеся КС, оперативно реагирующие на все изменения в общественной и научной жизни.

В наше время существует много поисковых систем, таких как Rambler, Yandex, Googl, и т.д. Но у всех них есть один, самый главный, недостаток – они пользуются дескрипторным способом поиска. Из – за этого все поисковики выводят по несколько тысяч подходящих файлов, хотя на самом деле из них подходит только около десяти. Чтобы устранить этот недостаток нужно перевести все поисковые системы на классификационный поиск. Данное преобразование во много раз сократит число подходящих текстов и упростит Работу пользователю.

Опираясь на все выше перечисленное, появилась цель написать программу, которая автоматически индексировала текст, при его вводе в Интернет. Чтобы достичь данную цель, нужно было решить несколько задач:
  1. Составить алгоритм индексирования и написать соответствующую программу.
  2. Найти классификационные таблицы УДК и ББК.
  3. Подобрать ключевые слова по которым проходило бы индексирование.
  4. Решить проблему сравнения одинаковых слов но с различным родом, числом, падежом.
  5. Провести исследование на правильность работы программы.
  6. Добиться наиболее высокого процента верного индексирования.

Программа написана на языке Visual Basic 6.0. При написании данной программы возникали некоторые сложности, решение которых нашлось не сразу. Например, одна из таких проблем носила программистский характер, что нужно сделать, чтобы программа учитывала род, число, падеж и наклонения слов. Предлагалось достаточно много способов решения этой проблемы, в частности предлагали подключить к ней словарь из Microsoft Word, но из – за недостаточных моих знаний по программированию от этой идеи пришлось сразу отказаться. Предлагалось искать слова в тексте по схожему корню, но этот способ оказался не эффективен, т.к. многие слова, относящиеся к разным понятиям, могут иметь один и тот же корень, и тогда бы работа моей программы была бы неправильной и вводила бы пользователя только в заблуждение. После некоторого времени раздумий я пришел к выводу, что самым надежным способом в этой ситуации будет перебрать данные слова во всех падежах, числах, наклонениях и родах. Принцип действия данной программы следующий: Пользователь, запустив программу, видит перед собой окно приветствия. Далее ему надо указать месторасположение текста. После этого программа поочередно берет базовые слова, относящиеся к тому или иному разделу. Далее она берет по порядку строки данного текста и определяет есть ли в ней базовое слово, если да, то в счетчик добавляется 1, а если нет, то программа продолжает повторять все эти действия, пока не переберет все базовые слова. Проделав всю эту работу, программа находит наибольшее число совпавших слов, проверяет к какому разделу они относятся, и выводит сообщение о том, как лучше заиндексировать текст. Может возникнуть вопрос, а если число наибольших совпадений достигнуто в 2-х или более разделах УДК. Как же программа поступит в этом случае? При написании программы я учел и этот случай, поэтому если возникает такая ситуация, что текст можно заиндексировать несколькими способами, то программа все их перечисляет с их названиями.

Для правильной работы программы необходимо было подобрать ключевые слова, характеризующие тот или иной раздел классификационной системы. Проводя эту работу я взял несколько уже заиндексированных текстов из Интернета и пробовал присвоить им код с помощью моей программы. По каждому разделу УДК я взял по 10 текстов. В результате исследований у меня получились следующие результаты: 80% текстов программа индексировала верно, и 20% индексировала иначе, чем они были заиндексированы в Интернете. Далее я написал приложение к программе, которое автоматически пополняло бы базы вспомогательных слов, что значительно облегчило их поиск. Ниже вы можете познакомиться с графиком прироста базовых и вспомогательных слов (рисунок 3). Стоит отметить, что после сделанных пополнений базы слов программа правильно работала уже в 90% случаев. Данная программа может значительно сэкономить время необходимое для индексирования текста т.к. пользователю не придется самому: подбирать подходящий индекс, искать наибольшее количество совпадений текста с темами в словаре УДК – все это за него сделает программа. Я считаю, что в ХХI веке, веке компьютерного бунта, развития почти безграничных способностей техники, сидеть и самому по нескольку часов искать нужный индекс было бы не очень приятно и охотно, поэтому я советую вам воспользоваться моей программой и не тратить напрасно и без того не хватающее время.

Также я провел исследование на корреляционную связь между УДК и ББК. В результате я получил, что текстам с одним кодом УДК, коды ББК присваиваются не равномерно, а имеются какие-то сгущения (рисунок 4).

Следует отметить, что моя программа рассчитана не только на опытного пользователя, но и на только еще начинающего пользователя и не знакомого с компьютером в совершенстве. В программе есть окно “справка”, в которой пользователь может подробнее узнать о цели написания программы, принципе действия и о том, как ей пользоваться. Также пользователь может прочесть адрес моего почтового ящика в Интернете и послать на него какие – либо советы или пожелания, а я только буду рад этому.

В результате исследований данная программа приобрела следующие обновления:

1. Было введено индексирование текстов по системе ББК;

2. Была обновлена база ключевых слов (правильность работы программы в 90% случаев);

3. Программа стала обрабатывать не только txt-файлы но и документы Microsoft Word;

4. Было разработано приложение автоматизирующее процесс подбора ключевых слов;

5. Был проведен корреляционный анализ между ББК и УДК;


Приложение 1:

Фрагмент УДК обрабатываемый программой
  • 681.3.01 - принцип обработки данных
  • 681.3.02 - машины и их составные части по конструкции и компоновке
  • 681.3.04 - представление данных: числами, алфавитом, кодами
  • 681.3.06 - математическое обеспечение (программирование). Программы ЦВМ.
  • 681.3.07 - аспекты запоминающих устройств (ЗУ) и ввода- вывода.
  • 681.3.08 - принципы измерения, измерительные приборы, погрешности измерения и их коррекция.
  • 681.31 - вычислительная техника в целом.
  • 681.32 - цифровые или преимущественно цифровые системы, машины и устройства.
  • 681.321 - настольные калькуляторы (простые, управляемые) вручную машины, на которых каждая операция выполняется шаг за шагом.
  • 681.322 - автоматические цифровые вычислительные машины (ЦВМ). Комплектные машины с хранимой модифицируемой программой, которая может

включать операции принятия решений и условные операции.
  • 681.323 - специализированные цифровые системы или комплектные машины.
  • 681.324 - вычислительные системы. Многомашинные комплексы. Сети ЦВМ.
  • 681.325 - устройства, блоки, элементы для преобразования данных сортировки и счета


Фрагмент ББК обрабатываемый программой:
  • 32.97- Вычислительная техника
  • 32.973- Компьютеры (электронно-вычислительные машины)
  • 32.973.1- Аналоговые компьютеры (электронно-вычислительные машины

непрерывного действия)
  • 32.973.2- Цифровые компьютеры (электронно-вычислительные машины дискретного

действия)
  • 32.973.202- Компьютерные системы и сети
  • 32.973.202-018.2- Программное обеспечение компьютерных сетей
  • 32.973.202-04- Коммуникационное оборудование
  • 32.973.26- Микро-ЭВМ. Персональные компьютеры
  • 32.973.26-018- Программирование для микро-ЭВМ
  • 32.973.26-018.1- Языки программирования
  • 32.973.26-018.2- Программное обеспечение
  • 32.973.26-02- Проектирование. Архитектура микро-ЭВМ
  • 32.973.26-04- Элементы и узлы микро-ЭВМ


Библиография
    1. Крейг Дж., Уэбб Дж. Microsoft Visual Basic 6. Мастерская разработчика. Пер. с англ. М., Русская Редакция ТОО “Channel Trading Ltd.”, 1999. 5-е изд., испр. и доп.  -  648 с., ил., компакт-диск.
    2. Мак-Кинни Брюс. Крепкий орешек Visual Basic. Пер. с англ. М., Русская Редакция ТОО “Channel Trading Ltd.”, 1998. 2-е изд., испр. и доп.  -  632 с., ил., компакт-диск.
    3.   Э. Р. Сукиасян. Универсальная десятичная классификация. Естественные и технические науки, в, 1–6, М., 1969–71; Dezimalklassifikation. DK Deutsche Kurzausg, v. 1–4, В. – Koln, 1973; Dubuc R., La classification decimale universelle (C. D. U.), 3 ed., P., 1973; FiII K., Einfuhrung in das Wesen der Dezimalklassifikation, 3 Aufl., B., 1969; MiIIs J., The universal decimal classification, New Bninswick (N. J.), 1964; PerraultJ., An introduction to UDC, [L., 1969];
    4. Библиотечно-библиографическая классификация (ссылка скрыта)
    5. Библиотечно-библиографическая классификация (u/tot.asp?7_8_1.php">)


Схема 1 –

Блок-схема программы






Рисунок 2 – указание местоположения программы




Рисунок 3 – открытие файла




Рисунок 4 – результат индексирования


Рисунок 5 – диаграмма прироста слов





Рисунок 6 – корреляционная св