Автоматизована інтелектуальна система класифікації інформаційних повідомлень засобів масової

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

ДИПЛОМНИЙ ПРОЕКТ

Випускна кваліфікаційна робота дипломованого фахівця

Спеціальність 230102

Автоматизовані системи обробки інформації та управління

АВТОМАТИЗОВАНА ІНТЕЛЕКТУАЛЬНА СИСТЕМА КЛАСИФІКАЦІЇ ІНФОРМАЦІЙНИХ ПОВІДОМЛЕНЬ ЗАСОБІВ МАСОВОЇ ІНФОРМАЦІЇ

Зміст

Введення

1. Огляд та аналіз існуючих систем

2. Загальносистемні рішення

2.1 Пояснювальна записка до технічного проекту

2.2 Опис схеми організаційної структури управління інформаційних та аналітичних технологій апарату адміністрації Тульської області

2.3 Опис автоматизуються функцій і схеми функціональної структури АІС «Класифікатор»

2.4 Опис постановки завдання

3 Інформаційне забезпечення

3.1 Перелік вхідних даних

3.2 Перелік вихідних даних і документів

3.3 Опис інформаційного забезпечення АІС «Класифікатор»

3.4 Опис організації інформаційної бази

4 Математичне забезпечення

4.1 Математична постановка задачі класифікації інформаційних повідомлень ЗМІ

4.2 Опис методу нечіткого пошуку

4.3 Опис запитів

4.4 Опис схеми роботи системи

5. Технічне забезпечення

5.1 Опис комплексу технічних засобів

5.2 Інструкція з експлуатації комплексу технічних засобів

6 Програмне забезпечення

6.1 Опис програмного забезпечення

6.2 Опис контрольного прикладу

7 Організаційне забезпечення

7.1 Опис організаційної структури

7.2 Керівництво користувача

Висновок

Бібліографічний список

Програми

1. Структура вхідних і вихідних документів

2. Текст програми.

ВСТУП

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

В даний час йде постійний і швидкий ріст обсягів інформації. Значну частину цієї інформації складають текстові дані. У зв'язку з цим постає проблема створення засобів доступу до текстової інформації.

Технічно існує можливість доступу до значної частини наявних текстів, але практично доступна лише мала частина. Це пов'язано з недосконалістю засобів доступу. Сучасні засоби пошуку, каталогізації, опису текстів не задовольняють наростаючим потребам користувачів. Потрібно їх розвиток у напрямку підвищення ефективності пошуку інформації та спрощення взаємодії з користувачем.

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

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

Проблема використання великого обсягу накопичених даних є ключовою в багатьох організаціях. Проблема роботи з великою кількістю інформації має два аспекти:

- Автоматичний збір інформації;

- Автоматичний розбір надійшла інформації з даної тематики, проведений на основі аналізу тексту документа.

У зв'язку з цим, по-перше, з'являється завдання завантаження інформації в систему. Процес завантаження полягає у занесення даних з носія інформації у сховищі даних. Постачають інформацію оперативні системи далеко не завжди володіють достатнім рівнем якості даних, тому процес завантаження цих даних в сховищі не обмежується простим копіюванням, а включає в себе очищення, погодження та контроль якості. Сховища даних завантажують і постійно оновлюють величезні об'єми даних з різних джерел, тому ймовірність потрапляння в них "брудних даних" вельми висока. Тому з'являється проблема пошуку і вибірки необхідної інформації з великих масивів текстових даних.

Ефективність пошуку у великому інформаційному масиві істотно підвищиться, якщо його розбити на частини по деякому критерію, пов'язаному з цілями пошуку. Отже, по-друге, постає проблема класифікації повідомлень. Для вирішення задачі аналізу текстової інформації та подальшого автоматичного розподілу її по необхідних тематиками необхідно в першу чергу сформувати рубрикатор, тобто задати список рубрик і словник, найбільш точно характеризують досліджувану область знань. Класифікація документів дозволяє звузити область пошуку і не тільки збільшити його швидкість, але і значно підвищити точність результатів. Тому технології автоматичної класифікації документів відводиться важливе місце в системах керування електронним документообігом.

Суть задачі класифікації полягає в автоматичному розподілі що у систему документів в залежності від їх типу та утримання за рубриками.

В даний час в структурі обласної виконавчої влади відповідальність за наповнення інформаційного тонусу в регіоні покладено на управління інформаційних та аналітичних технологій апарату адміністрації Тульської області (УІАТ ТО), одним із завдань якого є створення умов для задоволення інформаційних потреб органів влади, населення.

З метою забезпечення інформацією органів влади і населення все більше увага приділяється вдосконаленню професійної майстерності робочого персоналу відділу технологій відображення інформації (ОТОІ) УІАТ ТО, підвищенню оперативності та ефективності роботи. ОТОІ здійснює свою діяльність у сфері управління процесами створення та впровадження передових інформаційних технологій і в сфері управління питаннями графічної обробки і відображення інформації.

Впровадження системи автоматизації в технологічні процеси відділів з ​​управління інформацією дозволяє максимально використовувати їх можливості:

- Автоматизація процесу завантаження інформаційних повідомлень ЗМІ в інформаційну базу системи дозволяє поліпшити якість даних, виявити і видалити помилки невідповідностей в даних;

- Автоматизація процесу пошуку дозволяє частково зняти навантаження з працівника і скоротити час з відстеження необхідної інформації;

- Автоматизація процесу класифікації інформаційних повідомлень ЗМІ дозволяє автоматично розподілити надходять в систему інформаційні повідомлення в залежності від їх типу та утримання за рубриками.

Управління процесами у відділах по управлінню інформацією повинно виконуватися в режимі реального часу для більш успішного розвитку підприємства. Також необхідні такі можливості, щоб система швидко реагувала на виникаючі зміни.

Одним із шляхів підвищення ефективності діяльності відділів з ​​управління інформацією є вдосконалення роботи процесів щодо формування інформації. Тому важливе місце посідає проблема автоматизації роботи консультанта ОТОІ, пов'язаної з обробкою інформації та присвоєння їй класифікуючих атрибутів.

1 ОГЛЯД І АНАЛІЗ ІСНУЮЧИХ СИСТЕМ КЛАСИФІКАЦІЇ ІНФОРМАЦІЇ

В даний час завдання автоматичного рознесення інформаційного потоку за тематичними рубриками є однією з найважливіших в області обробки інформації в системах електронного документообігу. Головна увага при організації робіт з управління інформацією зосереджено на проблему автоматизації процесів класифікації інформаційних повідомлень ЗМІ. Найбільш актуальними є задачі завантаження інформаційних повідомлень в інформаційну базу, обробки текстової та цифрової інформації, перехід до структурованих повідомленнями, оперативне коректування структури рубрикатора і словника.

В даний час у відділах документообігу почалося активне використання програмних продуктів для автоматизації процесу класифікації.

Найбільшого поширення у відділах документообігу отримали програмні продукти: пошуково-аналітична система «Галактика-Зум», система «Термін-5», інформаційно-аналітична система «Астарта», інформаційно-аналітична система INLINE Technologies.

Кожен із варіантів має свої переваги і недоліки. Найбільш поширені зарубіжні системи добре налагоджені, але мають набагато вищу вартість, недостатньо пристосовані до прийнятих в організаціях технологіям, стандартам і форматам, що вимагає їх серйозною і дорогої адаптації.

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

Враховуючи ситуацію, що склалася, доцільно здійснити аналіз вітчизняних систем з метою доопрацювання їх до рівня повної конкурентоспроможності.

Розглянемо ряд автоматизованих систем по процесу класифікації інформації.

Пошуково-аналітична система «Галактика-Зум» призначена для компаній і організацій, яким необхідно автоматизувати процес класифікації.

Програма надає наступні можливості:

- Визначення «інформаційного портрета» запитуваної теми, тобто набір упорядкованих за значимістю ключових слів і словосполучень, характерний саме для даної вибірки;

- Рішення задачі ранжування документів вибірки за значимістю - за найбільшим відповідності інфопортрету вибірки кількості значущих тем і їх рангу в даному документі;

- Коригування отриманих інфопортретов;

- Порівняння інфопортрета документа з інфопортретамі рубрик, з відсікання малохарактерні інфопортретов.

Інформаційно-аналітична система «Астарта» призначена для компаній і організацій, яким необхідно автоматизувати і кардинальним чином підвищити ефективність збору, обробки та аналізу неструктурованої інформації, одержуваної з Інтернету, друкованих матеріалів, ЗМІ і т.д. Програмне рішення базується на технології «Євфрат» і призначений для збору, обробки та аналізу неструктурованої інформації, одержуваної з Інтернету, друкованих матеріалів ЗМІ та інших джерел.

До недоліків даних систем можна віднести наступне:

- Незручний для роботи інтерфейс;

- Відсутність достатньо повного словника для процесу класифікації інформаційних повідомлень;

- Відсутність необхідних для ефективної роботи функцій формування рекомендацій для прийняття рішень і звітів.

Таким чином, враховуючи можливості та недоліки існуючих систем, необхідно розробити систему, яка надавала б наступні можливості:

- Створення інформаційної бази для автоматизованого процесу класифікації статей за категоріями рубрикатора;

- Завантаження інформаційних повідомлень ЗМІ в інформаційну базу;

- Обробка текстової та цифрової інформації з використанням методу нечіткого пошуку;

- Класифікація інформаційних повідомлень з використанням методу ранжування;

- Можливість оперативного коригування структури рубрикатора і словника;

- Формування рекомендацій для прийняття рішень;

- Формування звітів.

2 загальносистемних рішень

2.1 Пояснювальна записка до технічного проекту

Повне найменування системи: Автоматизована інтелектуальна система класифікації інформаційних повідомлень засобів масової інформації (ЗМІ). Умовне позначення: АІС «Класифікатор».

Замовник: Управління інформаційних та аналітичних технологій апарату адміністрації Тульської області (УІАТ ТО), відділ технологій відображення інформації (ОТОІ).

Розробник: студентка Тульського державного університету факультету Економіки і права кафедри Автоматизованих інформаційних і керуючих систем групи 730211 Жіренкова Ірина Юріївна.

Планові терміни початку і закінчення роботи зі створення системи:

- Початок робіт: 1 вересня 2006 року;

- Закінчення робіт: 1 грудня 2006 року.

Розробляється АІС «Класифікатор» призначена для забезпечення більш зручною, ефективної та якісної роботи консультанта ОТОІ, пов'язаної з обробкою інформації та присвоєння їй класифікуючих атрибутів.

Метою створення системи є автоматизація процесу класифікації інформаційних повідомлень ЗМІ. Система дозволить звільнити людину від необхідності рутинної роботи з відстеження необхідної інформації, що належить до тієї чи іншої рубриці, а також скоротити час на їх обробку.

АІС «Класифікатор» включає в себе такі підсистеми:

1) підсистема ведення інформаційної бази;

  1. підсистема обробки інформаційних повідомлень ЗМІ;

  2. підсистема налаштування параметрів;

  3. підсистема класифікації інформаційних повідомлень ЗМІ.

Підсистема ведення інформаційної бази повинна виконувати наступні функції:

1) формування інформаційної бази;

2) додавання запису;

3) зміна запису;

4) видалення запису;

5) збереження запису.

Підсистема обробки інформаційних повідомлень ЗМІ повинна виконувати наступні функції:

  1. відкриття списку текстових файлів в каталозі;

  2. відкриття файлу;

  3. зчитування рядки з файлу;

  4. запис інформаційних повідомлень ЗМІ в базу;

    5) закриття файлу.

    Підсистема настройки параметрів повинна виконувати наступні функції:

    1) визначення каталогу з файлами;

    2) настройка розширення файлів з ​​вихідними даними;

    3) настройка параметрів класифікації.

    Підсистема класифікації інформаційних повідомлень ЗМІ повинна виконувати наступні функції:

    1) пошук записів за різними ключами словника з допомогою методу нечіткого пошуку;

    2) класифікація повідомлень за результатами пошуку;

    3) формування рекомендацій для прийняття рішень;

    4) формування звітів.

    Інформаційне забезпечення організовано у відповідності з принципами розвитку, сумісності, стандартизації та уніфікації.

    Вхідними даними є:

    - Інформаційні повідомлення ЗМІ;

    - Параметри класифікації;

    - Рубрикатор тим;

    - Словник.

    Вихідними даними є результати класифікації інформаційних повідомлень ЗМІ.

    Вихідними документами є:

    - Звіт за результатами класифікації;

    - Звіт за обробленими повідомленнями ЗМІ.

    АІС «Класифікатор» була розроблена в середовищі програмування Borland Delphi 7.0, основним інструментом якого є Object Pascal. На магнітних носіях відомості про повідомлення зберігаються у вигляді бази, яка розроблена в системі MS Access. Самі інформаційні повідомлення зберігаються у файлах на жорсткому диску. Програмне забезпечення реалізовано за допомогою модульного принципу та функціонує незалежно від апаратної частини.

    Для функціонування АІС «Класифікатор» розроблений комплекс технічних засобів, що включає в себе ПЕОМ на базі процесора Intel Celeron з тактовою частотою 2 ГГц, клавіатуру, мишу, монітор SVGA, 2 Гбайт на жорсткому диску, 512 Мбайт оперативної пам'яті (RAM), операційну систему Windows Me, 2000, XP.

    Для введення системи в експлуатацію необхідна персональна ЕОМ з набором периферійних пристроїв робочого місця. Також необхідно провести ознайомлення консультанта ОТОІ з принципами роботи даної системи.

    2.2 Опис схеми організаційної структури управління інформаційних та аналітичних технологій апарату адміністрації Тульської області

    Керує управлінням інформаційних та аналітичних технологій апарату адміністрації Тульської області начальник управління. У безпосередньому підпорядкуванні у начальника перебуває заступник начальника управління. У заступника у підпорядкуванні певну кількість підрозділів (відділів). Схема організаційної структури управління інформаційних та аналітичних технологій наведена на малюнку 2.1.

    ОТОІ здійснює свою діяльність у сфері управління процесами створення та впровадження передових інформаційних технологій і в сфері управління питаннями графічної обробки і відображення інформації.

    Основними завданнями та функціями відділу є:

    - Участь у підготовці управлінських рішень (нормативно-правових актів губернатора і адміністрації Тульської області) у сфері інформатизації;

    - Участь в організації інформаційної взаємодії федеральних і регіональних органів влади, органів місцевого самоврядування шляхом відпрацювання технології виготовлення і розповсюдження інформаційних та інформаційно-правових електронних і друкованих бюлетенів і збірників;

    - Підготовка довідкових, інформаційних та аналітичних матеріалів з ​​метою підвищення інформованості та компетентності представників органів влади;

    - Збір та обробка інформації про діяльність органів виконавчої влади, апарату адміністрації Тульської області, органів місцевого самоврядування регіону з метою створення державних інформаційних ресурсів;

    - Технічне, інформаційне, лінгвістичне, організаційна участь у наповненні сайту (порталу) адміністрації Тульської області, включаючи розробку інтернет-сторінок;

    - Підготовка пропозицій щодо застосування в органах виконавчої влади нових технічних засобів і комп'ютерних технологій введення, обробки і відображення графічної, текстової, гіпертекстової, аудіо-та відеоінформації;

    - Підготовка інформаційних матеріалів для публікації у федеральних виданнях.

    З метою організації інформаційного обміну між структурними підрозділами обласної адміністрації, муніципальними утвореннями області та органами влади регіонів економічного Центру Росії

    здійснюється випуск інформаційно-правового періодичного видання «Вісник адміністрації Тульської області», періодичних електронних бюлетенів «Досвід регіонів» і «В Тулі та області».

    Підготовка цих матеріалів включає в себе розробку тематики та композиційної структури кожного випуску, стилістичне та технічне редагування матеріалів.

    Основоположними принципами організації випуску інформаційних матеріалів є:

    - Відповідність завданням, що вирішуються місцевими органами влади;

    - Оперативність та достовірність наданої інформації;

    - Читабельність матеріалів, що випускаються (технічна грамотність, дохідливість викладу, лаконічність).

    Необхідно автоматизувати роботу консультанта, який від Центру урядового зв'язку (ЦПЗ) по Тульській області регулярно отримує об'ємний масив інформації, заснований на публікаціях ЗМІ різних регіонів. Перед спеціалістом департаменту стоїть завдання переробити його до читабельного обсягу і зручною для користувачів форми.

    Посадова інструкція консультанта відділу технологій відображення інформації

    1. Ефективно організовує службову діяльність у взаємозв'язку з державними органами та органами місцевого самоврядування Тульської області, державними і муніципальними службовцями Тульської області, організаціями, громадянами.

    2. Володіє сучасними засобами, методами і технологією роботи з інформацією та документами.

    3. Володіє оргтехнікою та засобами комунікації.

    4. Розробляє проекти законів та інших нормативних правових актів з напряму діяльності.

    5. Веде службовий документообіг, виконує службові документи, готує проекти відповідей на звернення організацій, громадян.

    6. Систематизує та готує аналітичний, інформаційний матеріал, в тому числі для засобів масової інформації.

    7. Здійснює збір, обробку та надання інформації про діяльність регіональних і муніципальних органів влади області у вигляді інформаційних (електронних і друкованих) бюлетенів, збірників, буклетів і т.д.

    8. Готує матеріали для сайту (порталу) адміністрації Тульської області.

    9. Визначає тематику, терміни подання та оформлення аналітичних та інших матеріалів, що розміщуються в офіційному інформаційно-правовому виданні «Вісник адміністрації Тульської області», електронних інформаційних бюлетенях та на сайті адміністрації області.

    2.3 Опис автоматизуються функцій і схеми функціональної структури АІС «Класифікатор»

    Використовуючи методологію IDEF 0 при проектуванні АІС «Класифікатор» була отримана її функціональна модель.

    Головною функцією системи (А0) є автоматизація процесу класифікації інформаційних повідомлень ЗМІ. Для реалізації даної функції необхідно реалізувати наступні функції:

    А0 Автоматизувати процес класифікації інформаційних повідомлень ЗМІ

    А1 Обробити інформаційні повідомлення ЗМІ

    А11 Відкрити файл

    А12 Вважати інформаційні повідомлення з файлу

    А13 Сформувати повідомлення ЗМІ для занесення в інформаційну базу

    А2 Вести інформаційну базу

    А21 Створити інформаційну базу

    А22 Додати запис

    А23 Змінити запис

    А24 Видалити запис

    А25 Зберегти запис

    А3 Налаштувати параметри

    А31 Визначити каталог з файлами

    А32 Поставити розширення файлів

    А33 Налаштувати параметри класифікації

    А4 Виконувати класифікацію інформаційних повідомлень ЗМІ

    А41 Знайти запис за різними ключами словника

    А42 Класифікувати інформаційних повідомлень ЗМІ

    А43 Видавати результати класифікації

    А5 Формувати звіти

    Дерево вузлів, розробленої моделі представлено на малюнку 2.2. Контекстна діаграма А-0 і її дочірні діаграми представлені у додатку Б.

    2.4 Опис постановки завдання

    Метою створення системи є автоматизація процесу класифікації інформаційних повідомлень ЗМІ. Комплекс завдань, що реалізуються розробляється системою, повинен забезпечувати зручну, швидку і якісну роботу консультанта ОТОІ.

    Основними завданнями АІС «Класифікатор» будуть наступні:

    - Створення інформаційної бази для автоматизованого процесу класифікації статей до тієї чи іншої категорії;

    - Завантаження інформаційних повідомлень ЗМІ в базу;

    - Обробка текстової та цифрової інформації з використанням методу нечіткого пошуку;

    - Класифікація інформаційних повідомлень з використанням методу ранжування;

    - Відкритість структури рубрикатора і словника, то є можливість оперативної їх коригування;

    - Формування рекомендацій для прийняття рішень;

    - Формування звітів.

    Вхідний інформацією для реалізації завдань системи є:

    - Інформаційні повідомлення ЗМІ;

    - Параметри класифікації;

    - Рубрикатор тим;

    - Словник.

    Вихідними даними є результати класифікації інформаційних повідомлень ЗМІ.

    Вихідними документами є:

    - Звіт за результатами класифікації;

    - Звіт за обробленими повідомленнями ЗМІ.

    3 ІНФОРМАЦІЙНЕ ЗАБЕЗПЕЧЕННЯ

    3.1 Перелік вхідних даних

    Для розробки АІС «Класифікатор» використовуються такі вхідні дані:

    - Інформаційні повідомлення ЗМІ;

    - Параметри класифікації;

    - Рубрикатор тим;

    - Словник.

    3.2 Перелік вихідних даних і документів

    Вихідними даними будуть результати класифікації інформаційних повідомлень ЗМІ.

    Вихідними документами будуть:

    - Звіт за результатами класифікації;

    - Звіт за обробленими повідомленнями ЗМІ.

    3.3 Опис інформаційного забезпечення АІС «Класифікатор»

    3.3.1 Опис структури вхідних інформаційних повідомлень і вихідних даних і документів

    Інформаційні повідомлення ЗМІ готуються у вигляді текстових файлів.

    Текстові файли формуються у форматі MS DOS в кодуванні ASCII.

    Ім'я текстового файлу складається з власного імені, що займає 6 знакомест, і 3 символів розширення. Порядок утворення імені текстового файлу має наступну структуру:

    ГГЧЧММ. Smi,

    де ГГ - найменування міста, з якого прийшло інформаційне повідомлення (2 знакоместа);

    ГГ - число місяця (2 знакоместа), за яке підготовлено інформаційне повідомлення;

    ММ - місяць, у якому підготовлено інформаційне повідомлення;

    smi - розширення інформаційного повідомлення ЗМІ.

    3.3.2 Опис структури інформаційної частини повідомлення ЗМІ

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

    До складу текстового файлу може входити декілька інформаційних повідомлень.

    При формуванні текстового файлу з 1-ої позиції на окремому рядку без пропуску рядків введена інформаційна частина повідомлення.

    Інформаційна частина повідомлення має наступну структуру:

    АТ ХХХХХХХ

    == / ЗМІ

    01/ХХХХ

    02/ДДММГГ

    03/ХХХХХХХХ

    04/ХХХХХХХХ

    05/ХХ

    06/ключевие слова і текст статті

    07/наіменованіе статті

    08/автор статті

    ===

    де АТ ХХХХХХХ - адреса відправника;

    АТ - великі літери російського алфавіту;

    ХХХХХХХ - семизначний код відправника.

    Між літерами (АТ) і кодом допускається один пробіл.

    == / - Ознака початку інформаційної частини (два символи "дорівнює" і слеш - справа наліво);

    ЗМІ - приналежність повідомлення ЗМІ.

    Кожне інформаційне повідомлення відокремлюється цим набором символів.

    Далі заповнюються атрибути з 1-ї позиції по 8-ю:

    01 / - чотиризначний код джерела інформації (код або найменування газети);

    02 / - дата публікації у форматі ДДММГГ;

    03 / - шести-або восьмизначний код регіону;

    04 / - найменування населеного пункту (або його 8-розрядний код), про який пишеться в статті газети.

    Атрибут заповнюється великими літерами без вказівок р., п., смт. Під населеним пунктом мається на увазі місто, село, але не район області, не район міста.

    05 / - двозначний код галузі, про яку йде мова відповідно до класифікатора галузей. Якщо в статті газети зачіпається кількох галузей, то код кожної з них дається окремим рядком з покажчиком - 05 /;

    06 / - ключові слова та текст статті.

    Перший рядок атрибута - ключові слова по тематиці, відображеної в статті. Ключові слова відокремлюються один від одного крапкою. Наприклад:

    Бюджет. Заборгованість.

    Зміст статті, що відбиває істота порушеної проблеми. Воно має необмежену довжину, але з урахуванням обмежень обсягу повідомлень в мережах. Продовження статті у другій та наступних рядках починається з 4-ій позиції, довжина рядка повинна бути не більше 55 знаків.

    07 / - найменування статті. Заноситься в атрибут повністю, як в оригіналі статті газети;

    08 / - автор статті.

    Всі значення атрибутів заносяться відразу ж після слеша без пропуску порожніх знакомест.

    === - Ознака завершення інформаційного повідомлення (три символи "дорівнює").

    Приклад заповнення інформаційної частини повідомлення наведено в додатку В.

    3.3.3 Основні вимоги, що пред'являються до підготовки повідомлень ЗМІ в частині орфографії

    До підготовки інформаційних повідомлень ЗМІ пред'являються наступні вимоги:

    1. Текст повідомлення готується у вигляді текстового файлу.

    2. Інформація в текстовому файлі розміщується в одну колонку і не форматується.

    3. Текстовий файл формується без розбиття на сторінки зі збереженням оригінальної структури публікацій (абзаци, червоні рядки та ін.)

    4. Інформація в текстовий файл вводиться великими та малими буквами як в статті газети.

    5. У текстовий файл вводяться найменування рубрики, підзаголовок (якщо вони присутні) і текст статті окремими абзацами.

    6. Абзаци, перелік пунктів і т.п. в тексті не відокремлюються "порожній" рядком.

    7. Російські слова тексту не повинні містити літер латинського алфавіту; римські цифри - російських букв.

    8. Текст не повинен містити незакінчених пропозицій і обривів у словах.

    9. У текстовий файл не заносяться:

    - Рекламні вставки, фотографії, таблиці, графіки, діаграми та інші графічні матеріали;

    - Назва міста, що стоїть на початку або в кінці тексту статті, так як воно заноситься в атрибут 04 /;

    - Спецсимволи, відсутні на клавіатурі ПЕОМ.

    Якщо в кінці тексту статті є посилання на джерело, з якого надрукований текст, то вона заноситься на першому рядку перед текстом. Наприклад:

    За матеріалами російського радіо.

    10. Якщо до статті газети дається анотація чи коментар, виділені

    іншим шрифтом, укладені або не укладені в рамку, то вони вводяться після тексту статті в звичайному шрифті без рамки, відокремлюючи словами:

    Коментар (прізвище автора).

    11. Прізвище від ініціалів відокремлюється пробілом.

    12. Слова тексту, надруковані в розрядку (через пробіл) вводяться разом. Ключові слова в тексті повинні бути повними без розривів і скорочення.

    13. Абревіатури вводяться без крапок і розрядки.

    14. Скорочення типу: т.д., т.п., ц.р., п.р. вводяться без розрядки.

    15. У числах між цифрами не повинно бути пробілів.

    16. Римські цифри вводити латинською регістрі великими літерами. Наприклад: XXIV.

    17. Спецсимволи, що зустрічаються в математичних формулах, мають бути замінені на літери російського або латинського алфавіту.

    18. Хімічні елементи, одиниці виміру, математичні вирази та інша інформація вводиться в текстовий файл у відповідності з таблицею значень (додаток Г).

    19. Примітка (виноска) вводиться в текстовий файл з нового рядка після тексту, відокремлюється рискою. Наприклад:

    _________________

    (Прім.2) - ...

    *) ....

    20. Якщо в газеті під одним найменуванням кілька повідомлень з різних регіонів, то кожне повідомлення оформляється окремим текстовим файлом.

    21. Якщо стаття газети має продовження в наступному номері газети, то її текстовий файл готується звичайним способом, а в кінці тексту з нового рядка вводиться: «Продовження в N». Якщо стаття є продовженням попереднього номера газети, то на початку тексту вводиться: «Початок в N».

    22. Текст повідомлення повинен бути відредагований. Всі спецсимволи в

    тексті повинні бути замінені наступним чином:

    - Лапки («») на лапки ("");

    - Номер (№) на номер (латинська літера N);

    - Довге тире (¾) на тире (-);

    - Буква (е) на букву (е);

    - Апостроф (') на твердий знак.

    Характерними помилками в текстових файлах є:

    - Орфографічні помилки в російських словах: пропуск букв (и), зайва (і) літера (и), заміна літер (и), латинська (і) літера (и);

    - Слова написані разом без пробілу;

    - В складних словосполученнях пропуск дефіса;

    - Після скорочення і розділових знаків відсутній пробіл;

    - Пропуск точки у скороченні та в одиницях виміру;

    - Замість коми стоїть крапка і навпаки;

    - Замість номера (латинської літери N) стоїть інший символ.

    Параметри класифікації включають в себе завдання кількості збігів по назві статті, за текстом статті та за ключовими словами тексту статті. Тут же задається поріг нечіткого пошуку у відсотках від 40 до 100. Чим вище відсоток, тим чіткіше пошук.

    Рубрикатор тим являє собою перелік рубрик на паперових носіях та має наступну структуру:

    - Рубрики 1-го рівня;

    - Рубрики 2-го рівня, що розкривають суть рубрик 1-го рівня;

    - Рубрики 3-го рівня, що розкривають суть рубрик 2-го рівня;

    - Рубрики 4-го рівня, що розкривають суть рубрик 3-го рівня.

    Рубриками 3-го і 4-го рівнів відповідають свої словники, що представляють собою перелік ключових слів. Рубрикатор тим і словник наведені у додатку Д.

    Результати класифікації інформаційних повідомлень ЗМІ містять код рубрики, найменування рубрики, кількість збігів за назвою, тексту, ключовими словами статті, і остаточний результат

    класифікації.

    Звіт за результатами класифікації містить дані по кожній статті: дату, вибраний файл, назва статті, ключові слова статті, автора, текст статті, кількість збігів за назвою, текстом і ключовими словами статті.

    Звіт за обробленими повідомленнями ЗМІ містить результати класифікації по кожному файлу і включає: дату, назву статті, ключові слова статті, автора, текст статті та зіставлені рубрики.

    Структура вихідних даних і документів представлена ​​в додатку Е.

    3.4 Опис організації інформаційної бази

    3.4.1 Опис організації внутримашинной бази

    Всі відомості про повідомлення ЗМІ зберігаються в базі даних, яка складається з наступних таблиць:

    - Статті;

    - Газета;

    - Регіон;

    - Галузь;

    - Довідник галузей;

    - Рубрики;

    - Класифікація;

    - Рубрикатор 1;

    - Рубрикатор 2;

    - Рубрикатор 3;

    - Рубрикатор 4;

    - Словник рубрикатора 3;

    - Словник рубрикатора 4.

    Їх опис представлено в таблицях 3.1 - 3.13 відповідно.

    Таблиця 3.1 - Таблиця «Статті»

    Первинний ключ

    Атрибути

    Тип даних

    Опис


    Код газети

    Числовий

    Довжина 2 символи


    Код регіону

    Числовий

    Довжина 8 символів


    Номер статті

    Лічильник

    Послідовне значення

    Унікальний ключ

    Найменування

    Текстовий

    Довжина 150 символів


    Ключові слова

    Текстовий

    Довжина 255 символів


    Текст

    Поле MEMO



    Дата

    Дата / час

    Короткий формат дати


    Автор

    Текстовий

    Довжина 150 символів


    Файл

    Текстовий

    Довжина 255 символів


    Класифіковано

    Логічний

    Істина / брехня

    Таблиця 3.2 - Таблиця «Газета»

    Первинний ключ

    Атрибути

    Тип даних

    Опис

    Унікальний ключ

    Код газети

    Числовий

    Довжина 2 символи


    Найменування

    Текстовий

    Довжина 150 символів

    Таблиця 3.3 - Таблиця «Регіон»

    Первинний ключ

    Атрибути

    Тип даних

    Опис

    Унікальний ключ

    Код регіону

    Числовий

    Довжина 8 символів


    Найменування регіону

    Текстовий

    Довжина 150 символів

    Таблиця 3.4 - Таблиця «Галузь»

    Первинний ключ

    Атрибути

    Тип даних

    Опис

    Складовою ключ

    Номер статті

    Числовий

    Довге ціле


    Код галузі

    Числовий

    Довге ціле

    Таблиця 3.5 - Таблиця «Довідник галузей»

    Первинний ключ

    Атрибути

    Тип даних

    Опис

    Унікальний ключ

    Код галузі

    Числовий

    Довге ціле


    Найменування

    Текстовий

    Довжина 150 символів

    Таблиця 3.6 - Таблиця «Рубрики»

    Первинний ключ

    Атрибути

    Тип даних

    Опис

    Складовою ключ

    Код рубрики

    Числовий

    Довге ціле


    Номер статті

    Числовий

    Довге ціле


    Рівень рубрики

    Числовий

    Довге ціле

    Таблиця 3.7 - Таблиця «Класифікація»

    Первинний ключ

    Атрибути

    Тип даних

    Опис

    Унікальний ключ

    Номер статті

    Числовий

    Довге ціле


    Код рубрики

    Числовий

    Довге ціле


    Рівень рубрики

    Числовий

    Довге ціле


    За назвою статті

    Числовий

    Довге ціле


    По ключових словах

    Числовий

    Довге ціле


    По тексту статті

    Числовий

    Довге ціле


    Результат

    Текстовий

    Довжина 50 символів

    Таблиця 3.8 - Таблиця «Рубрикатор 1»

    Первинний ключ

    Атрибути

    Тип даних

    Опис

    Унікальний ключ

    Код_1

    Лічильник

    Послідовне значення


    Індекс_1

    Числовий

    Довге ціле


    Наіменованіе_1

    Текстовий

    Довжина 150 символів

    Таблиця 3.9 - Таблиця «Рубрикатор 2»

    Первинний ключ

    Атрибути

    Тип даних

    Опис

    Унікальний ключ

    Код_2

    Лічильник

    Послідовне значення


    Індекс_2

    Числовий

    Довге ціле


    Наіменованіе_2

    Текстовий

    Довжина 150 символів


    Код_1

    Числовий

    Довге ціле

    Таблиця 3.10 - Таблиця «Рубрикатор 3»

    Первинний ключ

    Атрибути

    Тип даних

    Опис

    Унікальний ключ

    Код_3

    Лічильник

    Послідовне значення


    Індекс_3

    Числовий

    Довге ціле


    Наіменованіе_3

    Текстовий

    Довжина 150 символів


    Код_2

    Числовий

    Довге ціле

    Таблиця 3.11 - Таблиця «Рубрикатор 4»

    Первинний ключ

    Атрибути

    Тип даних

    Опис

    Унікальний ключ

    Код_4

    Лічильник

    Послідовне значення


    Індекс_4

    Числовий

    Довге ціле


    Наіменованіе_4

    Текстовий

    Довжина 150 символів


    Код_3

    Числовий

    Довге ціле

    Таблиця 3.12 - Таблиця «Словник рубрикатора 3»

    Первинний ключ

    Атрибути

    Тип даних

    Опис

    Унікальний ключ

    Код_3

    Числовий

    Довге ціле


    Слова

    Текстовий

    Довжина 255 символів

    Таблиця 3.13 - Таблиця «Словник рубрикатора 4»

    Первинний ключ

    Атрибути

    Тип даних

    Опис

    Унікальний ключ

    Код_4

    Числовий

    Довге ціле


    Слова

    Текстовий

    Довжина 255 символів

    Дані таблиці об'єднані в інфологічну модель, схема якої представлена ​​на малюнку 3.4.1.

    Малюнок 3.4.1 - Инфологическая модель бази

    Ієрархія заповнення таблиць бази представлена ​​на малюнку 3.4.2.

    Малюнок 3.4.2 - Ієрархія заповнення таблиць бази

    4 МАТЕМАТИЧНЕ ЗАБЕЗПЕЧЕННЯ

    4.1 Математична постановка задачі класифікації інформаційних повідомлень ЗМІ

    Нехай дано безліч статей Х, безліч ключових слів статті W і безліч назв статей A. Кожне безліч описується своїм набором елементів:

    X = {x 1, x 2, ..., x c},

    де x i - i - я стаття;

    c - кількість статей;

    W = {w 1, w 2, ..., w c},

    де w i - рядок ключових слів i-ої статті, ;

    A = {a 1, a 2, ... a c},

    де a i - Назва i-ої статті, .

    Є рубрикатор, що складається з чотирьох рівнів:

    R 1 = {r 11, r 12, ... r 1 k},

    де k - кількість елементів рубрикатора 1;

    R 2 = {r 21, r 22, ... r 2 l},

    де l - кількість елементів рубрикатора 2;

    R 3 = {r 31, r 32, ... r 3 m},

    де m - кількість елементів рубрикатора 3;

    R 4 = {r 41, r 42, ... r 4 n},

    де n - кількість елементів рубрикатора 4.

    До кожного елементу рубрикаторів 3-го і 4-го рівнів прив'язані словники зі своїми множинами:

    D 3 j = {d 31 j, d 32 j, ... d 3 y j}, ;

    D 4 j = {d 41 j, d 42 j, ... d 4 z j}, ,

    де j - індекс елемента рубрики;

    y, z - кількість елементів у словнику для конкретної рубрики.

    Функція нечіткого пошуку задається наступним чином:

    тут U = {{X}, {W}, {A}};

    d pq j - ключове слово,

    де j - індекс елемента рубрики, або ;

    p - рівень рубрикатора 3-й або 4-й;

    q - індекс елементів у словниках D 3 j і D 4 j;

    або ;

    p н.п - поріг нечіткого пошуку.

    Далі для кожної статті застосовуємо функцію нечіткого пошуку:

    де - Загальна кількість збігів по i-ої статті зі словника 3-го і 4-го рівнів;

    ;

    .

    Потім для ключових слів статті також застосовуємо функцію нечіткого пошуку:

    де загальна кількість збігів по рядку ключових слів i-ої статті зі словника 3-го і 4-го рівнів;

    ;

    .

    Для назв статей теж застосовуємо функцію нечіткого пошуку:

    де - Загальна кількість збігів за назвою i-ої статті зі словника 3-го і 4-го рівнів;

    ;

    .

    Далі для віднесення кожної статті до тієї чи іншої рубриці використовується метод ранжування. Для цього визначаються межі трьох інтервалів:

    1. статтю однозначно не можна віднести до рубрики;

    2. консультант ОТОІ приймає рішення про приналежність статті до даної рубриці;

    3. стаття із заданою вірогідністю відноситься до даної рубрики.

    Межею є кількість слів, які повинні зустрітися в тексті, назві статті або у списку ключових слів, що відносяться до цієї статті.

    Метод ранжування полягає в наступному:

    де межі інтервалів по тексту i-ої статті;

    межі інтервалів по рядку ключових слів i-ої статті;

    межі інтервалів за назвою i-ої статті.

    4.2 Опис методу нечіткого пошуку

    Для нечіткого пошуку інформації використовується алгоритм, заснований на процентному відношенні збігу двох рядків. Процес пошуку починається з порівняння кожного елемента одного рядка з кожним елементом іншої і закінчується порівнянням рядків цілком. Ця процедура повторюється двічі для однієї і тієї ж пари рядків. У першому випадку перша рядок приймається за еталон, у другому - друга. У процесі порівняння підраховується число збігів і загальне число розглянутих випадків, після чого обчислюється їх процентне співвідношення. На основі цього співвідношення приймається рішення - вважати знайдену інформацію задовольняє умовам пошуку чи ні. Описана процедура застосовується до всіх записів інформаційної бази, в результаті користувач отримує всю інформацію, що задовольняє запиту.

    Змінюючи мінімальний відсоток збігу можна зменшувати або збільшувати точність відповідності знайденої інформації шуканої. У даній системі використовується 50% збіги, тому що (з практики) цього достатньо для знаходження інформації. Схема програми пошуку даних за алгоритмом нечіткого пошуку наведена на малюнку 4.2.1, схема програми порівняння рядків наведена на малюнку 4.2.2.

    Малюнок 4.2.1 - Схема програми пошуку даних за алгоритмом нечіткого пошуку

    Малюнок 4.2.2 - Схема програми порівняння рядків «Matching»

    4.3 Опис запитів

    Для даної роботи необхідно створити такі запити: «Рубрикатор», «Класифікація 3-го рівня», «Класифікація 4-го рівня», «Класифіковані повідомлення», «Оброблені повідомлення 3-го рівня», «Оброблені повідомлення 4-го рівня» .

    Запит «Рубрикатор» необхідний для виведення всієї інформації по всіх рівнях рубрикатора і словникам 3-го і 4-го рівнів. Структура запиту «Рубрикатор» в режимі SQL:

    SELECT Рубрікатор_1.Індекс_1, Рубрікатор_2.Індекс_2, Рубрікатор_3.Індекс_3, IIf (IsNull ([Індекс_4]), 0, [Індекс_4]) AS Індекс_4, Trim (Str ([Рубрікатор_1]. [Індекс_1 ]))+"."+ Trim (Str ([Рубрікатор_2]

    [Індекс_2 ]))+"."+ Trim (Str ([Рубрікатор_3]. [Індекс_3 ]))+"."+ Trim (Str (IIf (IsNull ([Індекс_4]), 0, [Індекс_4 ])))+ "." AS Індекс, Рубрікатор_1.Наіменованіе_1, Рубрікатор_2.Наіменованіе_2, Рубрікатор_3.Наіменованіе_3, Рубрікатор_4. Наіменованіе_4, Рубрікатор_1.Код_1, Рубрікатор_2.Код_2, Рубрікатор_3.Код_3, Рубрикатор

    _4.Код_4

    FROM ((Рубрікатор_1 LEFT JOIN Рубрікатор_2 ON Рубрікатор_1.Код_1 = Рубрікатор_2.Код_1) LEFT JOIN Рубрікатор_3 ON Рубрікатор_2.Код_2 = Рубрікатор_3.Код_2) LEFT JOIN Рубрікатор_4 ON Рубрікатор_3.

    Код_3 = Рубрікатор_4.Код_3

    ORDER BY Рубрікатор_1.Індекс_1, Рубрікатор_2.Індекс_2, Рубрікатор_3.Індекс_3, IIf (IsNull ([Індекс_4]), 0, [Індекс_4]);

    Запит «Класифікація 3-го рівня» необхідний для виведення інформації за результатами класифікації за 3-го рівня рубрикатора. Структура запиту «Класифікація 3-го рівня» в режимі SQL:

    SELECT Trim (Str ([Рубрікатор_1]. [Індекс_1 ]))+"."+ Trim (Str ([Рубрікатор_2]. [Індекс_2 ]))+"."+ Trim (Str ([Рубрікатор_

    3]. [Індекс_3 ]))+"." AS Індекс, [Рубрікатор_1]. [Наіменованіе_1 ]+"."+[ Рубрікатор_2]. [Наіменованіе_2 ]+"."+[ Рубрікатор_3]. [Наіменованіе_3] AS Наіменованіерубрікі, [ Класифікація]. [Уровеньрубрікі], [Класифікація].

    [Найменування статті], [Класифікація]. [Текст статті], [Класифікація]. [Ключові слова], [Класифікація]. [Результат], [Класифікація]. [Код статті], [Рубрікатор_3]. [Код_3] AS Номер статті

    FROM (Рубрікатор_1 INNER JOIN Рубрікатор_2 ON [Рубрікатор_1]. [Код_1] = [Рубрікатор_2]. [Код_1]) INNER JOIN (Рубрікатор_3 INNER JOIN Класифікація ON [Рубрікатор_3]. [Код_3] = [Класифікація]. [Код рубрики]) ON [ Рубрікатор_2]. [Код_2] = [Рубрікатор_3]. [Код_2]

    WHERE ((([Класифікація]. [Рівень рубрики]) = 3));

    Запит «Класифікація 4-го рівня» необхідний для виведення інформації за результатами класифікації за 4-го рівня рубрикатора. Структура запиту «Класифікація 4-го рівня» в режимі SQL:

    SELECT Trim (Str (Рубрікатор_1.Індекс_1 ))+"."+ Trim (Str (Рубрікатор_2.Індекс_2 ))+"."+ Trim (Str (Рубрікатор_3.

    Індекс_3 ))+"."+ Trim (Str (Рубрікатор_4.Індекс_4 ))+"." AS Індекс, Рубрікатор_1.Наіменованіе_1 + "." + Рубрикатор

    _2.Наіменованіе_2 + "." + Рубрікатор_3.Наіменованіе_3 +"."+ Рубрікатор_4.Наіменованіе_4 AS Найменування рубрики, Классіфікація.Уровень рубрики, Классификация.Наименование статті, Классіфікація.Текст статті, Классіфікація.Ключевие слова, Классіфікація.Результат, Классіфікація.Код рубрики, Рубрікатор_4.Код_4 AS Номер статті FROM ((Рубрікатор_1 INNER JOIN Рубрікатор_2 ON Рубрікатор_1.Код_1 = Рубрікатор_2.Код_1) INNER JOIN Рубрікатор_3 ON Рубрікатор_2.Код_2 = Рубрікатор_3.Код_2) INNER JOIN (Рубрікатор_4 INNER JOIN Класифікація ON Рубрікатор_4.Код_4 = Классіфікація.Код рубрики ) ON Рубрікатор_3.Код_3 =

    Рубрікатор_4.Код_3 WHERE (((Классіфікація.Уровень рубрики) = 4));

    Запит «Класифіковані повідомлення» необхідний для створення звіту за результатами класифікації. Структура запиту «Оброблені повідомлення» в режимі SQL:

    SELECT DISTINCT Статьі.Код статті

    FROM Статті INNER JOIN Рубрики ON Статьі.Код статті = Рубрікі.Код рубрики;

    Запит «Оброблені повідомлення 3-го рівня» необхідний для виведення інформації з обробленим повідомленнями ЗМІ, віднесених до 3-го рівня рубрикатора. Структура запиту «Оброблені повідомлення 3-го рівня» в режимі SQL:

    SELECT Trim (Str (Рубрікатор_1.Індекс_1 ))+"."+ Trim (Str (Рубрікатор_2.Індекс_2 ))+"."+ Trim (Str (Рубрікатор_3

    . Індекс_3 ))+"." AS Індекс, Статьі.Файл, Статьі.Код газети, Статьі.Код регіону, Статьі.Код статті, Статьі.Наіменованіе статті, Статьі.Ключевие слова, Статьі.Текст статті, Статьі.Дата, Статті . автор, Статьі.Код рубрики, Статьі.Уровень рубрики, Рубрікатор_1.Наіменованіе_1 +"."+ Рубрікатор_2.Наіменованіе

    _2 + "." + Рубрікатор_3. Наіменованіе_3 AS Найменування рубрики

    FROM (Рубрікатор_1 INNER JOIN Рубрікатор_2 ON Рубрікатор_1.Код_1 = Рубрікатор_2.Код_1) INNER JOIN (Рубрікатор_3 INNER JOIN Стати ON Рубрікатор_3.Код_3 = Статьі.Код рубрики) ON Рубрікатор_2.Код_2 = Рубрікатор_3.Код_2

    WHERE (((Статьі.Уровень рубрики) = 3));

    Запит «Оброблені повідомлення 4-го рівня» необхідний для виведення інформації з обробленим повідомленнями ЗМІ, віднесених до 4-го рівня рубрикатора. Структура запиту «Оброблені повідомлення 4-го рівня» в режимі SQL:

    SELECT Trim (Str (Рубрікатор_1.Індекс_1 ))+"."+ Trim (Str (Рубрікатор_2.Індекс_2 ))+"."+ Trim (Str (Рубрікатор_3.

    Індекс_3 ))+"."+ Trim (Str (Рубрікатор_4.Індекс_4 ))+"." AS Індекс, Статьі.Файл, Статьі.Код газети, Статьі.Код регіону, Статьі.Код рубрики, Статьі.Наіменованіе статті, Статті. Ключові слова, Статьі.Текст статті, Статьі.Дата, Статьі.автор, Статьі.Код рубрики, Статьі.Уровень рубрики, Рубрікатор_1.Наіменованіе_1 + "." + Рубрікатор_2.Наіменованіе_2 + "." + Рубрікатор_3.Наіменованіе_3 +"."+ Рубрікатор_4.Наіменованіе_4 AS Найменування рубрики

    FROM ((Рубрікатор_1 INNER JOIN Рубрікатор_2 ON Рубрікатор_1.Код_1 = Рубрікатор_2.Код_1) INNER JOIN Рубрікатор_3 ON Рубрікатор_2.Код_2 = Рубрікатор_3.Код_2) INNER JOIN (Рубрікатор_4 INNER JOIN Статті ON Рубрікатор_4.Код_4 = Статьі.Код рубрики) ON Рубрікатор_3.Код_3 = Рубрікатор_4.Код_3

    WHERE (((Статьі.Уровень рубрики) = 4));

    4.4 Опис схеми роботи системи

    Схема роботи системи являє собою послідовність етапів, яку необхідно виконати для класифікації інформаційних повідомлень ЗМІ.

    Роботу необхідно почати з завантаження інформаційних повідомлень ЗМІ

    в базу системи, на основі яких буде проводитися класифікація. Для завантаження повідомлень визначається місце розташування каталогу з файлами з завданням розширення з вихідними інформаційними повідомленнями.

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

    На етапі класифікації в першу чергу виконується пошук записів за різними ключами словника за допомогою алгоритму нечіткого пошуку. Далі виконується класифікація інформаційних повідомлень ЗМІ за допомогою методу ранжування, яка полягає в автоматичному розподілі що у систему інформаційних повідомлень ЗМІ в залежності від їх типу та утримання за рубриками. Результати класифікації виводяться на екран.

    За результатами класифікації формуються рекомендації для прийняття рішень і звіти. Звіти зберігаються в текстовому файлі формату doc.

    При виборі завершального режиму роботи системи відбудеться вихід з неї.

    Схема роботи системи представлена ​​на малюнку 4.4.1.

    Текст програми представлений в додатку Е.

    Малюнок 4.4.1 - Схема роботи системи

    5 ТЕХНІЧНЕ ЗАБЕЗПЕЧЕННЯ АІС «КЛАСИФІКАТОР»

    5.1 Опис комплексу технічних засобів

    АІС «Класифікатор» реалізована на базі ПЕОМ. ПЕОМ дозволяє істотно підвищити ефективність роботи користувача архітектурними та технічними можливостями. Вирішено використовувати базовий комплект ПЕОМ типу IBM PC, технічні характеристики якого дозволяють вирішувати всі поставлені завдання.

    При проектуванні та функціонуванні системи використовується базовий комплект ПЕОМ IBM PC, що включає наступні пристрої:

    - Процесор Intel Seleron з тактовою частотою 2 Ггц;

    - 256 Мбайт оперативної пам'яті;

    - Жорсткий диск не менше 2 Гбайт;

    - Операційна система - Windows Me, 2000, XP;

    - Монітор SVGA;

    - Клавіатура стандартна русифікована;

    - Миша.

    Під час експлуатації обладнання користувачі повинні керуватися наступними документами:

    - Інструкція з техніки безпеки;

    - Керівництво користувача.

    Необхідно дотримуватися вимог техніки безпеки і такі запобіжні заходи:

    1) не підключати і не відключати з'єднувачі електроживлення при поданій напрузі в мережу;

    2) не залишати ЕОМ включеної без спостерігача;

    3) по закінченню робіт відключати ПЕОМ від мережі.

    5.2 Інструкція з експлуатації комплексу технічних засобів

    Дана інструкція дає користувачеві необхідне вказівку щодо використання базового комплекту ПЕОМ IBM PC. До роботи з ЕОМ допускаються особи, які пройшли інструктаж з техніки безпеки при роботі з електроустановками напругою до 1000 В.

    При експлуатації ПЕОМ забороняється:

    1) застосовувати комплектуючі вироби, носії даних та матеріали, не зазначені в експлуатаційній документації;

    2) підключати пристрої, використання яких не погоджено з виробником ПЕОМ;

    3) отримувати електронні модулі, від'єднувати кабель інтерфейсу при підключеному електроживленні будь-який з складових частин ПЕОМ;

    4) знімати кожухи пристрої, проводити будь-які ремонтні роботи.

    Категорично забороняється працювати на ПЕОМ при знятому кожусі будь-якого з пристроїв. До включення електроживлення ПЕОМ необхідно перевірити візуально цілісність сполучних кабелів.

    До експлуатації обладнання допускаються особи, які працюють з АІС «Класифікатор», які можуть не бути фахівцями в області комп'ютерних технологій та програмування, а володіють лише навичками роботи з комп'ютером.

    Рішення завдань здійснюється ПЕОМ під управлінням операційної системи (ОС) Windows Me, 2000, XP. Підготовка до роботи полягає в початковому завантаженні в ОЗУ ПЕОМ ОС Windows. Початкова завантаження OC Windows виконується автоматично в наступних випадках:

    1) при включенні електроживлення комп'ютера;

    2) при натисканні на клавішу RESET, яка знаходиться на передній панелі корпусу ПЕОМ;

    3) при перезавантаженні комп'ютера.

    Щоб виконати завантаження системи, необхідні наступні дії:

    1) включити стабілізатор напруги (якщо необхідно);

    2) включити (якщо необхідно) принтер;

    3) включити монітор комп'ютера;

    4) включити вимикач на корпусі системного блоку.

    Після цього на екрані з'явиться повідомлення про хід роботи програм перевірки і початкового завантаження комп'ютера. Коли початкова завантаження буде закінчена, на екрані монітора з'явиться зображення робочого столу.

    Після успішного закінчення початкової завантаження можна перейти до вирішення задач користувача.

    При закінченні роботи програми необхідно:

    1) закінчити роботу програм;

    2) вимкнути принтер, якщо він включений;

    3) виключити монітор комп'ютера, якщо необхідно;

    4) вимкнути комп'ютер;

    5) вимкнути стабілізатор напруги.

    ВИСНОВОК

    Під час виконання дипломної роботи був зроблений огляд і проведено аналіз деяких існуючих розробок у сфері електронного документообігу, спрямованих на автоматизацію процесу класифікації інформаційних повідомлень, вказані їх можливості та недоліки. З урахуванням необхідних вимог були визначені можливості, якими повинна володіти АІС «Класифікатор»:

    - Створення інформаційної бази для автоматизованого процесу класифікації статей до тієї чи іншої категорії;

    - Завантаження інформаційних повідомлень ЗМІ в базу;

    - Обробка текстової та цифрової інформації з використанням методу нечіткого пошуку;

    - Класифікація інформаційних повідомлень з використанням методу ранжування;

    - Відкритість структури рубрикатора і словника, то є можливість оперативної їх коригування;

    - Формування рекомендацій для прийняття рішень;

    - Формування звітів.

    Були сформульовані призначення і цілі системи, поставлені завдання та визначено функції.

    Була розроблена форма і представлено докладний опис структури вхідних інформаційних повідомлень ЗМІ та результатів класифікації, що використовуються і отримані в результаті функціонування АІС «Класифікатор». Була розроблена структура організації бази для зберігання інформаційних повідомлень ЗМІ.

    Була розроблена математична постановка задачі класифікації інформаційних повідомлень ЗМІ, а також описані метод нечіткого пошуку і метод ранжирування, що застосовуються при реалізації необхідних функціональних характеристик АІС «Класифікатор», була розроблена схема роботи системи.

    Була розрахована надійність системи на всіх етапах її розвитку.

    Результатом виконаної роботи є програма, що виконує наступні функції:

    - Ведення інформаційної бази: формування, додавання запису, зміна запису, видалення запису, збереження запису, узгоджене з роботою всього об'єкта автоматизації;

    - Обробка інформаційних повідомлень ЗМІ: відкриття списку текстових файлів в каталозі, відкриття файлу, зчитування рядки з файлу, запис інформаційних повідомлень ЗМІ в базу, закриття файлу;

    - Налаштування параметрів: визначення каталогу з файлами, завдання розширення файлів з ​​вихідними даними, настройка розширення файлів, настройка параметрів класифікації;

    - Відкритість структури рубрикатора і словника, то є можливість оперативної їх коригування;

    - Класифікація інформаційних повідомлень ЗМІ: пошук записів за різними ключами словника з допомогою методу нечіткого пошуку, класифікація повідомлень за результатами пошуку, формування рекомендацій для прийняття рішень, формування звітів.

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

    СПИСОК

    1. ГОСТ 2.105-95. ЕСКД. Загальні вимоги до текстових документів.

    2. ГОСТ Р50.1.028-2001. Методологія функціонального моделювання.

    3. ГОСТ 28195-89. Оцінка якості програмних засобів.

    4. ГОСТ 19.102-77.ЕСПД. Стадії розробки.

    5. ГОСТ 19.402-78.ЕСПД. Опис програми.

    6. ГОСТ 12.1.005-88 Загальні санітарно-гігієнічні вимоги до повітря в робочій зоні.

    7. ГОСТ 19.701-90 Схеми алгоритмів, програм, даних і систем.

    8. ГОСТ 34.201-89 Інформаційна технологія. Види, комплектність і позначення документів при створенні автоматизованих систем.

    9. ГОСТ 34.602-89 Інформаційна технологія. Технічне завдання на створення автоматизованої системи.

    10. СанПіН 2.2.2/2.4.1340-03 Гігієнічні вимоги до персональних електронно-обчислювальних машин та організації роботи.

    11. Р.2.2.2006-05 Гігієнічні критерії оцінки умов праці за показниками шкідливості і небезпеки навколишнього середовища, важкості та напруженості трудового процесу.

    12. СанПіН 2.2.548-96 Загальні санітарно-гігієнічні вимоги до повітря в робочій зоні.

    13. Андрейчик А.В., Андрійчикове О.М. Інтелектуальні інформаційні системи: Підручник. - М.: Фінанси і статистика, 2004. - 424 с.: Іл.

    14. Бази даних в Delphi 7. Самовчитель / В. Понамарьов. - СПб.: Пітер, 2003. - 224 с.: Іл.

    15. Башмаков А.І., Башмаков І.А. Інтелектуальні інформаційні технології: Учеб. посібник. - М.: Із МГТУ ім. Н.Е. Баумана, 2005. - 304 с.: Іл.

    16. Бобровський С. І. Delphi 7. Навчальний курс .- СПб.: Пітер, 2003. - 736с.

    17. Глушаков С.В., Клевцов А.Л. Програмування в середовищі Delphi 7. - Харків: Фоліо, 2003. - 528с.

    18. Гофман В.Е., Хомоненко А.Д. Робота з базами даних в Delphi / В. - 2-е вид. - СПб.: БХВ - Петербург, 2002. - 624с.: Іл.

    19. Девятко В.В. Системи штучного інтелекту: Учеб. посібник для вузів. - М.: Із МГТУ ім. Н.Е. Баумана, 2001. - 352 с.: Іл.

    20. Діго С.М. Проектування баз даних: Підручник. - М.: Фінанси і статистика, 1988. - 216с.

    21. Дубнов П.Ю. Access 2000: Програмування баз даних. - М.: ДМК, 2000. - 272с.: Іл.

    22. Пономарьов В. Бази даних в Delphi 7: Самовчитель. - М. та ін: Пітер, 2003. - 224с.: Іл.

    23. Засоби захисту в машинобудуванні: Розрахунок і проектування: Довідник / С.В. Бєлов, А.Ф. Козьяков, О.Ф. Партолін та ін; Під ред. С.В. Бєлова. - М.: Машинобудування, 1989. - 368 с.: Іл.

    24. Типові норми часу на програмування задач для ЕОМ. - М.: Економіка, 1989.

    25. Http://google.ru/com/str.zip

    26. Http: / / google. Ru / / narod. Ru / Hem / infon. Zip

    Додаток 1. Структура вхідних і вихідних документів

    Результати класифікації інформаційних повідомлень ЗМІ

    Код

    Найменування рубрики

    Назва

    Текст

    Ключові слова

    Результат







    Звіт за результатами класифікації статті

    Дата публікації :_________________

    Файл публікації :________________

    Назва публікації :_____________

    Ключові слова :__________________

    Автор публікації: ________________

    Текст публікації: _______________

    Код

    Найменування

    За назвою

    По тексту

    По ключових словах

    Результат








    Звіт за обробленими статтями файлу

    Дата публікації: ____________________

    Назва публікації: ________________

    Ключові слова: _____________________

    Автор публікації: ___________________

    Текст публікації: ___________________

    Зіставлені рубрики: _______________

    Додаток 2. Текст програми

    unit uMain;

    interface

    uses

    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

    Dialogs, Menus, OleServer, WordXP;

    type

    TfrmMain = class (TForm)

    mnMain: TMainMenu;

    N1: TMenuItem;

    N2: TMenuItem;

    N3: TMenuItem;

    N4: TMenuItem;

    N5: TMenuItem;

    N6: TMenuItem;

    N7: TMenuItem;

    N8: TMenuItem;

    N9: TMenuItem;

    N10: TMenuItem;

    N11: TMenuItem;

    wa: TWordApplication;

    wd: TWordDocument;

    wf: TWordFont;

    N12: TMenuItem;

    procedure N2Click (Sender: TObject);

    procedure N3Click (Sender: TObject);

    procedure N5Click (Sender: TObject);

    procedure N7Click (Sender: TObject);

    procedure N9Click (Sender: TObject);

    procedure N11Click (Sender: TObject);

    procedure N12Click (Sender: TObject);

    private

    {Private declarations}

    public

    {Public declarations}

    end;

    var

    frmMain: TfrmMain;

    implementation

    uses uInputModule, uClassify, uEditDictModule, uClassifySettings,

    uDataModule, uGetFileName, uEditPubl;

    {$ R *. dfm}

    procedure TfrmMain.N2Click (Sender: TObject);

    begin

    frmInputForm.ShowModal;

    end;

    procedure TfrmMain.N3Click (Sender: TObject);

    begin

    frmClassify.ShowModal;

    end;

    procedure TfrmMain.N5Click (Sender: TObject);

    begin

    frmEditDict.ShowModal;

    end;

    procedure TfrmMain.N7Click (Sender: TObject);

    begin

    frmClassifySettings.ShowModal;

    end;

    procedure TfrmMain.N9Click (Sender: TObject);

    begin

    Close;

    end;

    procedure TfrmMain.N11Click (Sender: TObject);

    var tmpl, Template, NewTemplate, ItemIndex: olevariant;

    ARange: Range;

    pars: Paragraphs;

    par: Paragraph;

    st: string;

    vcol: OleVariant;

    iStat: integer;

    begin

    dmIAS.aqFiles.Close;

    dmIAS.aqFiles.Open;

    frmGetFileName.cbFiles.Items.Clear;

    frmGetFileName.cbFiles.Text: = dmIAS.aqFiles.FieldByName ('file'). AsString;

    while not dmIAS.aqFiles.Eof do

    begin

    frmGetFileName.cbFiles.Items.Add (dmIAS.aqFiles.FieldByName ('file'). AsString);

    dmIAS.aqFiles.Next;

    end;

    frmGetFileName.iMD: = 0;

    frmGetFileName.ShowModal;

    if (frmGetFileName.iMD = 0) or (frmGetFileName.cbFiles.Text ='')

    then exit;

    dmIAS.aqExe.Close;

    dmIAS.aqExe.SQL.Text: = 'Select * from qObrPubl where file =: file';

    dmIAS.aqExe.Parameters.ParamByName ('file'). Value: = frmGetFileName.cbFiles.Text;

    dmIAS.aqExe.Open;

    try

    wa.Connect;

    wa.Visible: = True;

    except

    MessageDlg ('А у Вас Word не встановлено: (", mtError, [mbOk], 0);

    Abort;

    end;

    ItemIndex: = 1;

    Template: = EmptyParam;

    NewTemplate: = False;

    / / Створення документа

    wa.Documents.Add (Template, NewTemplate, EmptyParam, EmptyParam);

    wd.ConnectTo (wa.Documents.Item (ItemIndex));

    wd.PageSetup.Set_Orientation (wdOrientLandscape);

    wa.Options.CheckSpellingAsYouType: = False;

    wa.Options.CheckGrammarAsYouType: = False;

    ARange: = wd.Range (EmptyParam, EmptyParam);

    pars: = wd.Paragraphs;

    tmpl: = ARange;

    par: = pars.Add (tmpl);

    wf.ConnectTo (wd.Sentences.Get_Last.Font);

    wd.Range.Paragraphs.Set_Alignment (wdAlignParagraphLeft);

    wa.Selection.Font.Bold: = 1;

    wa.Selection.Font.Size: = 16;

    st: = "Звіт по обробленим статтями файлу '+ frmGetFileName.cbFiles.Text;

    wa.Selection.InsertAfter (st + # 13);

    wa.Selection.InsertAfter ('' + # 13);

    vcol: = wdCollapseEnd;

    wa.Selection.Collapse (vcol);

    iStat: = -1;

    while not dmIAS.aqExe.Eof do

    begin

    if iStat <> dmIAS.aqExe.FieldByName ('id_publ'). AsInteger

    then

    begin

    vcol: = wdCollapseEnd;

    wa.Selection.Collapse (vcol);

    wa.Selection.Font.Bold: = 0;

    wa.Selection.Font.Size: = 14;

    wa.Selection.InsertAfter ('' + # 13);

    wa.Selection.InsertAfter ('' + # 13);

    st: = 'Дата публікації: ';

    wa.Selection.InsertAfter (st);

    vcol: = wdCollapseEnd;

    wa.Selection.Collapse (vcol);

    if (dmIAS.aqExe.FieldByName ('data'). AsString = '30 .12.1899 ')

    then st: = ''

    else st: = dmIAS.aqExe.FieldByName ('data'). AsString;

    wa.Selection.InsertAfter (st + # 13);

    vcol: = wdCollapseEnd;

    wa.Selection.Collapse (vcol);

    st: = 'Назва публікації: ';

    wa.Selection.InsertAfter (st);

    vcol: = wdCollapseEnd;

    wa.Selection.Collapse (vcol);

    st: = dmIAS.aqExe.FieldByName ('name_publ'). AsString;

    wa.Selection.InsertAfter (st + # 13);

    vcol: = wdCollapseEnd;

    wa.Selection.Collapse (vcol);

    st: = 'Ключові слова: ';

    wa.Selection.InsertAfter (st);

    vcol: = wdCollapseEnd;

    wa.Selection.Collapse (vcol);

    st: = dmIAS.aqExe.FieldByName ('keywords'). AsString;

    wa.Selection.InsertAfter (st + # 13);

    vcol: = wdCollapseEnd;

    wa.Selection.Collapse (vcol);

    st: = 'Автор публікації: ';

    wa.Selection.InsertAfter (st);

    vcol: = wdCollapseEnd;

    wa.Selection.Collapse (vcol);

    st: = dmIAS.aqExe.FieldByName ('author'). AsString;

    wa.Selection.InsertAfter (st + # 13);

    vcol: = wdCollapseEnd;

    wa.Selection.Collapse (vcol);

    st: = 'Текст публікації: ';

    wa.Selection.InsertAfter (st);

    vcol: = wdCollapseEnd;

    wa.Selection.Collapse (vcol);

    st: = dmIAS.aqExe.FieldByName ('text_publ'). AsString;

    wa.Selection.InsertAfter (st + # 13);

    vcol: = wdCollapseEnd;

    wa.Selection.Collapse (vcol);

    st: = 'зіставлені рубрики: ';

    wa.Selection.InsertAfter (st + # 13);

    vcol: = wdCollapseEnd;

    wa.Selection.Collapse (vcol);

    st: = dmIAS.aqExe.FieldByName ('indx'). AsString

    + ''

    + DmIAS.aqExe.FieldByName ('name_r'). AsString;

    wa.Selection.InsertAfter (st);

    vcol: = wdCollapseEnd;

    wa.Selection.Collapse (vcol);

    iStat: = dmIAS.aqExe.FieldByName ('id_publ'). AsInteger;

    end

    else

    begin

    wa.Selection.InsertAfter ('' + # 13);

    st: = dmIAS.aqExe.FieldByName ('indx'). AsString

    + ''

    + DmIAS.aqExe.FieldByName ('name_r'). AsString;

    wa.Selection.InsertAfter (st);

    vcol: = wdCollapseEnd;

    wa.Selection.Collapse (vcol);

    end;

    dmIAS.aqExe.Next;

    end;

    wa.Disconnect;

    end;

    procedure TfrmMain.N12Click (Sender: TObject);

    begin

    frmEditPubl.ShowModal;

    end;

    end.

    unit uFuzzySearch;

    interface

    function IndistinctMatching (MaxMatching: Integer; strInputMatching: WideString; strInputStandart: WideString): Integer;

    implementation

    uses SysUtils;

    type

    TRetCount = packed record

    lngSubRows: Word;

    lngCountLike: Word;

    end;

    function Matching (StrInputA: WideString; StrInputB: WideString; lngLen: Integer): TRetCount;

    Var

    TempRet: TRetCount;

    PosStrB: Integer;

    PosStrA: Integer;

    StrA: WideString;

    StrB: WideString;

    StrTempA: WideString;

    StrTempB: WideString;

    begin

    StrA: = String (StrInputA);

    StrB: = String (StrInputB);

    For PosStrA: = 1 To Length (strA) - lngLen + 1 do

    begin

    StrTempA: = System.Copy (strA, PosStrA, lngLen);

    For PosStrB: = 1 To Length (strB) - lngLen + 1 do

    begin

    StrTempB: = System.Copy (strB, PosStrB, lngLen);

    If SysUtils.AnsiCompareText (StrTempA, StrTempB) = 0 Then

    begin

    Inc (TempRet.lngCountLike);

    break;

    end;

    end;

    Inc (TempRet.lngSubRows);

    end; / / PosStrA

    Matching.lngCountLike: = TempRet.lngCountLike;

    Matching.lngSubRows: = TempRet.lngSubRows;

    end; {function}

    //------------------------------------------------ ------------------------------

    function IndistinctMatching (MaxMatching: Integer; strInputMatching: WideString; strInputStandart: WideString): Integer;

    Var

    gret: TRetCount;

    tret: TRetCount;

    lngCurLen: Integer; / / поточна довжина підрядка

    begin

    / / Якщо не переданий який-небудь параметр, то вихід

    If (MaxMatching = 0) Or (Length (strInputMatching) = 0) Or

    (Length (strInputStandart) = 0) Then

    begin

    IndistinctMatching: = 0;

    exit;

    end;

    gret.lngCountLike: = 0;

    gret.lngSubRows: = 0;

    / / Цикл проходу по довжині порівнюєш фрази

    For lngCurLen: = 1 To MaxMatching do

    begin

    / / Порівнюємо рядок A з рядком B

    tret: = Matching (strInputMatching, strInputStandart, lngCurLen);

    gret.lngCountLike: = gret.lngCountLike + tret.lngCountLike;

    gret.lngSubRows: = gret.lngSubRows + tret.lngSubRows;

    / / Порівнюємо рядок B з рядком A

    / / Tret: = Matching (strInputStandart, strInputMatching, lngCurLen);

    / / Gret.lngCountLike: = gret.lngCountLike + tret.lngCountLike;

    / / Gret.lngSubRows: = gret.lngSubRows + tret.lngSubRows;

    end;

    If gret.lngSubRows = 0 Then

    begin

    IndistinctMatching: = 0;

    exit;

    end;

    IndistinctMatching: = Trunc ((gret.lngCountLike / gret.lngSubRows) * 100);

    end;

    end.

    unit uClassify;

    interface

    uses

    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

    Dialogs, StdCtrls, ExtCtrls, Mask, DBCtrls, Grids, DBGridEh, ComCtrls,

    WordXP, OleServer;

    type

    TfrmClassify = class (TForm)

    Panel1: TPanel;

    Panel2: TPanel;

    Label1: TLabel;

    DBNavigator1: TDBNavigator;

    dbmText: TDBMemo;

    Panel3: TPanel;

    Label7: TLabel;

    Button2: TButton;

    Panel4: TPanel;

    Label6: TLabel;

    Label3: TLabel;

    dbAuthor: TDBEdit;

    Label2: TLabel;

    dbDate: TDBEdit;

    Label4: TLabel;

    dbName: TDBEdit;

    Label5: TLabel;

    dbKeywords: TDBEdit;

    pbClassify: TProgressBar;

    dbgClassify: TDBGridEh;

    Button1: TButton;

    Label8: TLabel;

    dbFile: TDBEdit;

    lblCountArticles: TLabel;

    Button3: TButton;

    wd: TWordDocument;

    wa: TWordApplication;

    wf: TWordFont;

    procedure SetDBElemColor (flColor: boolean);

    procedure Button1Click (Sender: TObject);

    procedure Button2Click (Sender: TObject);

    procedure FormCreate (Sender: TObject);

    procedure FormShow (Sender: TObject);

    procedure Button3Click (Sender: TObject);

    private

    {Private declarations}

    public

    {Public declarations}

    end;

    var

    frmClassify: TfrmClassify;

    implementation

    uses uDataModule, uFuzzySearch, uClassifySettings, uStructs;

    {$ R *. dfm}

    procedure TfrmClassify.SetDBElemColor (flColor: boolean);

    begin

    if frmClassify = nil

    then exit;

    if flColor

    then

    begin

    dbName.Color: = clMoneyGreen;

    dbKeywords.Color: = clMoneyGreen;

    dbmText.Color: = clMoneyGreen;

    end

    else

    begin

    dbName.Color: = clWindow;

    dbKeywords.Color: = clWindow;

    dbmText.Color: = clWindow;

    end;

    end;

    procedure TfrmClassify.Button1Click (Sender: TObject);

    var id_publ, id_rubr, level,

    Name_cnt, Text_cnt, Key_cnt, im,

    iNamePorog12, iTextPorog12, iKeyPorog12,

    iNamePorog23, iTextPorog23, iKeyPorog23,

    iFuzzyPorog: integer;

    stWord, res: string;

    function GetRes (NameCnt, TextCnt, KeyCnt: integer): String;

    begin

    if (NameCnt <iNamePorog12)

    and (TextCnt <iTextPorog12)

    and (KeyCnt <iKeyPorog12)

    then result: = '-'

    else

    if (NameCnt> = iNamePorog23)

    or (TextCnt> = iTextPorog23)

    or (KeyCnt> = iKeyPorog23)

    then result: = '+'

    else result: = '?';

    end;

    begin

    / / Встановлюємо пороги спрацьовування

    iNamePorog12: = frmClassifySettings.GetNamePorog (12);

    iTextPorog12: = frmClassifySettings.GetTextPorog (12);

    iKeyPorog12: = frmClassifySettings.GetKeyPorog (12);

    iNamePorog23: = frmClassifySettings.GetNamePorog (23);

    iTextPorog23: = frmClassifySettings.GetTextPorog (23);

    iKeyPorog23: = frmClassifySettings.GetKeyPorog (23);

    iFuzzyPorog: = frmClassifySettings.GetFuzzyPorog;

    / / Починаємо класифікацію

    dmIAS.aqDict.Close;

    dmIAS.aqDict.Open;

    dmIAS.TruncClassify;

    pbClassify.Position: = 0;

    pbClassify.Max: = dmIAS.atPublikatsii.RecordCount * (dmIAS.aqDict.RecordCount +1);

    with dmIAS.atPublikatsii do

    begin

    First;

    while not Eof do

    begin

    id_publ: = FieldByName ('id_publ'). AsInteger;

    Name_cnt: = 0;

    Text_cnt: = 0;

    Key_cnt: = 0;

    dmIAS.aqDict.First;

    id_rubr: = dmIAS.aqDict.FieldByName ('id'). AsInteger;

    level: = dmIAS.aqDict.FieldByName ('level'). AsInteger;

    while not dmIAS.aqDict.Eof do

    begin

    / / Класифікуємо за словником для кожної рубрики

    if id_rubr <> dmIAS.aqDict.FieldByName ('id'). AsInteger

    then

    begin

    res: = GetRes (Name_cnt, Text_cnt, Key_cnt);

    dmIAS.InsertClassify (id_publ, id_rubr, level, Name_cnt,

    Text_cnt, Key_cnt, res);

    id_rubr: = dmIAS.aqDict.FieldByName ('id'). AsInteger;

    level: = dmIAS.aqDict.FieldByName ('level'). AsInteger;

    Name_cnt: = 0;

    Text_cnt: = 0;

    Key_cnt: = 0;

    end;

    stWord: = AnsiUpperCase (dmIAS.aqDict.FieldByName ('Word'). AsString);

    / / Класифікація по найменуванню

    im: = IndistinctMatching (length (stWord),

    stWord,

    AnsiUpperCase (FieldByName ('name_publ'). AsString));

    if im> iFuzzyPorog

    then Inc (Name_cnt);

    / / Класифікація по тексту

    im: = IndistinctMatching (length (stWord),

    stWord,

    AnsiUpperCase (FieldByName ('text_publ'). AsString));

    if im> iFuzzyPorog

    then Inc (Text_cnt);

    / / Класифікація по ключовим словами

    im: = IndistinctMatching (length (stWord),

    stWord,

    AnsiUpperCase (FieldByName ('keywords'). AsString));

    if im> iFuzzyPorog

    then Inc (Key_cnt);

    dmIAS.aqDict.Next;

    pbClassify.StepIt;

    Application.ProcessMessages;

    end;

    res: = GetRes (Name_cnt, Text_cnt, Key_cnt);

    dmIAS.InsertClassify (id_publ, id_rubr, level, Name_cnt,

    Text_cnt, Key_cnt, res);

    Next;

    pbClassify.StepIt;

    Application.ProcessMessages;

    end;

    end;

    dmIAS.aqClassify.Close;

    dmIAS.atPublikatsii.First;

    dmIAS.aqClassify.Open;

    Application.ProcessMessages;

    ShowMessage ("Класифікація успішно завершена. ');

    end;

    procedure TfrmClassify.Button2Click (Sender: TObject);

    var i, i_rubr, level: integer;

    begin

    if dbgClassify.SelectedRows.Count = 0

    then

    begin

    ShowMessage ('Не вибрано жодного запису!');

    exit;

    end;

    / / Видалити всі записи з Publ_Rubr для даної статті

    dmIAS.DeleteFromPublRubr (dmIAS.atPublikatsii.FieldByName ('id_publ'). AsInteger);

    / / Записати в Publ_Rubr всі вибрані рубрики для даної статті

    for i: = 0 to dbgClassify.SelectedRows.Count-1 do

    begin

    dbgClassify.DataSource.DataSet.GotoBookmark (Pointer (dbgClassify.SelectedRows.Items [i]));

    i_rubr: = dbgClassify.DataSource.DataSet.FieldByName ('id'). AsInteger;

    level: = dbgClassify.DataSource.DataSet.FieldByName ('level_r'). AsInteger;

    dmIAS.InsertIntoPublRubr (dmIAS.atPublikatsii.FieldByName ('id_publ'). AsInteger,

    i_rubr,

    level);

    end;

    dbgClassify.DataSource.DataSet.GotoBookmark (Pointer (dbgClassify.SelectedRows.Items [0]));

    ShowMessage ('Відповідні статті рубрики збережені.');

    dmIAS.atObrPublikatsii.Close;

    dmIAS.atObrPublikatsii.Open;

    dmIAS.atCountObrPublikatsii.Close;

    dmIAS.atCountObrPublikatsii.Open;

    lblCountArticles.Caption: = 'Всього в базі: '

    + IntToStr (dmIAS.atPublikatsii.RecordCount)

    + 'Статей. '

    + 'Класифіковано'

    + IntToStr (dmIAS.atCountObrPublikatsii.RecordCount)

    + 'Статей.';

    end;

    procedure TfrmClassify.FormCreate (Sender: TObject);

    begin

    frmClassifySettings.SetNamePorog (2, 12);

    frmClassifySettings.SetTextPorog (3, 12);

    frmClassifySettings.SetKeyPorog (2, 12);

    frmClassifySettings.SetNamePorog (4, 23);

    frmClassifySettings.SetTextPorog (6, 23);

    frmClassifySettings.SetKeyPorog (4, 23);

    frmClassifySettings.SetFuzzyPorog (50);

    frmClassifySettings.SetflShowAll (true);

    end;

    procedure TfrmClassify.FormShow (Sender: TObject);

    begin

    {If frmClassifySettings.GetflShowAll

    then / / Показувати всі статті

    with dmIAS.atPublikatsii do

    begin

    Close;

    SQL.Text: = stSelectAllPubl;

    Open;

    end

    else / / Показувати необроблені статті

    with dmIAS.atPublikatsii do

    begin

    Close;

    SQL.Text: = stSelectNeobrPubl;

    Open;

    end;}

    lblCountArticles.Caption: = 'Всього в базі: '

    + IntToStr (dmIAS.atPublikatsii.RecordCount)

    + 'Статей. '

    + 'Класифіковано'

    + IntToStr (dmIAS.atCountObrPublikatsii.RecordCount)

    + 'Статей.';

    end;

    procedure TfrmClassify.Button3Click (Sender: TObject);

    var tmpl, Template, NewTemplate, ItemIndex: olevariant;

    ARange: Range;

    pars: Paragraphs;

    par: Paragraph;

    tbls: Tables;

    tbl1: Table;

    st: string;

    vcol: OleVariant;

    i: integer;

    begin

    try

    wa.Connect;

    wa.Visible: = True;

    except

    MessageDlg ('А у Вас Word не встановлено: (", mtError, [mbOk], 0);

    Abort;

    end;

    ItemIndex: = 1;

    Template: = EmptyParam;

    NewTemplate: = False;

    / / Створення документа

    wa.Documents.Add (Template, NewTemplate, EmptyParam, EmptyParam);

    wd.ConnectTo (wa.Documents.Item (ItemIndex));

    wd.PageSetup.Set_Orientation (wdOrientLandscape);

    wa.Options.CheckSpellingAsYouType: = False;

    wa.Options.CheckGrammarAsYouType: = False;

    ARange: = wd.Range (EmptyParam, EmptyParam);

    pars: = wd.Paragraphs;

    tmpl: = ARange;

    par: = pars.Add (tmpl);

    wf.ConnectTo (wd.Sentences.Get_Last.Font);

    wd.Range.Paragraphs.Set_Alignment (wdAlignParagraphLeft);

    wa.Selection.Font.Bold: = 1;

    wa.Selection.Font.Size: = 16;

    st: = "Звіт за результатами класифікації статті ';

    wa.Selection.InsertAfter (st + # 13);

    wa.Selection.InsertAfter ('' + # 13);

    vcol: = wdCollapseEnd;

    wa.Selection.Collapse (vcol);

    wa.Selection.Font.Bold: = 0;

    wa.Selection.Font.Size: = 14;

    st: = 'Дата публікації: ';

    wa.Selection.InsertAfter (st);

    vcol: = wdCollapseEnd;

    wa.Selection.Collapse (vcol);

    if (dmIAS.atPublikatsii.FieldByName ('data'). AsString = '30 .12.1899 ')

    then st: = ''

    else st: = dmIAS.atPublikatsii.FieldByName ('data'). AsString;

    wa.Selection.InsertAfter (st + # 13);

    vcol: = wdCollapseEnd;

    wa.Selection.Collapse (vcol);

    st: = 'Файл публікації: ';

    wa.Selection.InsertAfter (st);

    vcol: = wdCollapseEnd;

    wa.Selection.Collapse (vcol);

    st: = dmIAS.atPublikatsii.FieldByName ('file'). AsString;

    wa.Selection.InsertAfter (st + # 13);

    vcol: = wdCollapseEnd;

    wa.Selection.Collapse (vcol);

    st: = 'Назва публікації: ';

    wa.Selection.InsertAfter (st);

    vcol: = wdCollapseEnd;

    wa.Selection.Collapse (vcol);

    st: = dmIAS.atPublikatsii.FieldByName ('name_publ'). AsString;

    wa.Selection.InsertAfter (st + # 13);

    vcol: = wdCollapseEnd;

    wa.Selection.Collapse (vcol);

    st: = 'Ключові слова: ';

    wa.Selection.InsertAfter (st);

    vcol: = wdCollapseEnd;

    wa.Selection.Collapse (vcol);

    st: = dmIAS.atPublikatsii.FieldByName ('keywords'). AsString;

    wa.Selection.InsertAfter (st + # 13);

    vcol: = wdCollapseEnd;

    wa.Selection.Collapse (vcol);

    st: = 'Автор публікації: ';

    wa.Selection.InsertAfter (st);

    vcol: = wdCollapseEnd;

    wa.Selection.Collapse (vcol);

    st: = dmIAS.atPublikatsii.FieldByName ('author'). AsString;

    wa.Selection.InsertAfter (st + # 13);

    vcol: = wdCollapseEnd;

    wa.Selection.Collapse (vcol);

    st: = 'Текст публікації: ';

    wa.Selection.InsertAfter (st);

    vcol: = wdCollapseEnd;

    wa.Selection.Collapse (vcol);

    st: = dmIAS.atPublikatsii.FieldByName ('text_publ'). AsString;

    wa.Selection.InsertAfter (st + # 13);

    vcol: = wdCollapseEnd;

    wa.Selection.Collapse (vcol);

    wa.Selection.InsertAfter ('' + # 13);

    st: = 'Результати класифікації: ';

    wa.Selection.InsertAfter (st);

    vcol: = wdCollapseEnd;

    wa.Selection.Collapse (vcol);

    ARange: = wd.Sentences.Last;

    tbls: = ARange.Tables;

    tbl1: = tbls.Add (ARange,

    dmIAS.aqClassify.RecordCount +1, / / число рядків

    6, / / число стовпців

    EmptyParam,

    EmptyParam);

    tbl1.Cell (1, 1). Range.Text: = 'Код';

    tbl1.Cell (1, 2). Range.Text: = 'Найменування';

    tbl1.Cell (1, 3). Range.Text: = 'По назв. ';

    tbl1.Cell (1, 4). Range.Text: = 'По тексту ';

    tbl1.Cell (1, 5). Range.Text: = 'По кл. сл. ';

    tbl1.Cell (1, 6). Range.Text: = 'Результат';

    i: = 2;

    dmIAS.aqClassify.First;

    while not dmIAS.aqClassify.Eof do

    begin

    tbl1.Cell (i, 1). Range.Text: = dmIAS.aqClassify.FieldByName ('indx'). AsString;

    tbl1.Cell (i, 2). Range.Text: = dmIAS.aqClassify.FieldByName ('name_r'). AsString;

    tbl1.Cell (i, 3). Range.Text: = dmIAS.aqClassify.FieldByName ('name_cnt'). AsString;

    tbl1.Cell (i, 4). Range.Text: = dmIAS.aqClassify.FieldByName ('text_cnt'). AsString;

    tbl1.Cell (i, 5). Range.Text: = dmIAS.aqClassify.FieldByName ('key_cnt'). AsString;

    tbl1.Cell (i, 6). Range.Text: = dmIAS.aqClassify.FieldByName ('res'). AsString;

    dmIAS.aqClassify.Next;

    Inc (i);

    end;

    vcol: = wdCollapseEnd;

    wa.Selection.Collapse (vcol);

    wa.Disconnect;

    dmIAS.aqClassify.First;

    end;

    end.

    Додати в блог або на сайт

    Цей текст може містити помилки.

    Програмування, комп'ютери, інформатика і кібернетика | Диплом
    412кб. | скачати


    Схожі роботи:
    Система класифікації готелів та інших засобів розміщення
    Журналістика як система засобів масової інформації
    Розрахунок інформаційних характеристик джерел повідомлень сигналів і кодів
    Вивчення та опис живої та неживої системи з точки зору класифікації інформаційних систем
    Особливості класифікації у Товарній номенклатурі зовнішньоекономічної діяльності засобів наземного
    Інтелектуальна карта або інтелектуальна платформа проблема вибору
    Система передавання неперервних повідомлень із використанням широтноімпульсної модуляції
    Система передачі повідомлень при безперервній роботі SMTP-сервера
    Система передавання неперервних повідомлень із використанням широтно імпульсної модуляції
    © Усі права захищені
    написати до нас