Научная статья на тему 'АЛГОРИТМИ ПОШУКУ ПЛАГіАТУ'

АЛГОРИТМИ ПОШУКУ ПЛАГіАТУ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
226
83
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АЛГОРИТМ / РЕАЛИЗАЦИЯ / ПРОГРАММА / ПОИСК / ALGORITHM / IMPLEMENTATION / PROGRAM SEARCH

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Чижова А. А.

Дана общая характеристика алгоритма. Исследованы основные алгоритмы поиска плагиата текста. Описаны основные принципы работы алгоритмов

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

A general characteristic of the algorithm. The basic algorithms for finding plagiarism of text. The basic principles of the algorithms

Текст научной работы на тему «АЛГОРИТМИ ПОШУКУ ПЛАГіАТУ»

Сущность БД «Time_reception_preparations» имеет следующие атрибуты:

- id_time_reception - номер назначения по порядку, целочисленного типа;

- Время_приема_лекарственных_сре - возможные варианты приема лекарственных средств по времени, символьного типа.

Сущность БД «Harmful_habits» имеет следующие атрибуты:

- id_harmful_habits - номер вредных привычек пациента по порядку, целочисленного типа;

- Вредные привычки - вредные привычки пациента на данный момент, символьного типа.

Сущность БД «Diuresis» имеет следующие атрибуты:

- id_Diuresis - номер вредных привычек пациента по порядку, целочисленного типа;

- Диурез - Состояние диуреза у пациента на данный момент, символьного типа.

На этапе логического проектирования БД информационной системы цитоморфологобио-физической диагностики была разработана физическая модель схемы данных, основанная на реляционной модели (рис. 1).

Исходя из требований к информационному обеспечению, выбрана физическая модель, ориентированная на СУБД MS SQL Server 2008, так как она показывает наивысшее быстродействие[2].

4. Выводы

БД информационной системы цитоморфологоби-офизической диагностики разработана на основе реляционной модели, которая имеет простую и удобную для пользователя схему данных в виде таблиц. Она позволяет хранить необходимый набор текстовых, числовых и графических данных о пациенте, представить их в удобном, структурированном виде, с возможностью корректировки этих данных, а так же имеет возможность быстрого доступа к данным для их визуального отображения и проведения операций, связанных с их анализом и классификацией.

Литература

1. Проблема формализации текстовых данных в универсаль-

ных медицинских информационных системах / М.Ю. Болгов, Д.А. Микитенко // Украинский журнал телемедицины и медицинской телематики. - 2006. - Т.4, №2. - С.171-176.

2. Коннолли, Т. Базы данных. Проектирование, реализация и

сопровождение. Теория и практика. Database Systems: A Practical Approach to Design, Implementation, and Management Third Edition 3-е изд. / Т. Коннолли, К. Берг — М.: "Вильямс" 2003. — 1436 с. — ISBN 0-201-70857-4.

Дана загальна характеристика алгоритму. Дослиджено основш алгоритми пошуку плагiату тексту. Описано основт принципи роботи алгоритмiв

Ключовi слова: алгоритм, реалiзацiя,

програма, пошук

□-□

Дана общая характеристика алгоритма. Исследованы основные алгоритмы поиска плагиата текста. Описаны основные принципы работы алгоритмов

Ключевые слова: алгоритм, реализация,

программа, поиск

□-□

A general characteristic of the algorithm. The basic algorithms for finding plagiarism of text. The basic principles of the algorithms

Keywords: algorithm, implementation, program search

УДК 001.891:65.011.56

АЛГОРИТМИ ПОШУКУ

ПЛАГ1АТУ

А . А . Ч и ж о в а

Хaркiвський нaцiонaльний ушверситет рaдiоелектронiки просп. Лен^, 14, м. XapKiB, yKpaÏHa, 61166 Кон^кший тел.: 097-847-29-63 E-mail: Chijova_alla@ukr.net

1. Введення

Плапат - навмисне привласнення авторства чужого твору науки чи думок або мистецтва чи винаходи. Плапат може бути порушенням авторсько-правового законодавства та патентного законодавства i в 1х яко-си може спричинити за собою юридичну вщповщаль-

шсть. З шшого боку, плапат можливий i в областях, на яю не поширюеться дiя яких-небудь видiв штелек-туально! власносп, наприклад, в математищ та шших фундаментальних наукових дисциплшах.

Алгоритм - це система правил виконання обчис-лювального процесу, що обов'язково приводить до розв'язання певного класу задач тсля скшченного

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

2. Алгоритми пошуку плагiату

Метод iдентифiкацiйних мгток. При пошуку плагiату потрiбно знаходити копи та частковi копи файлу у текстовш базi великого обсягу. У цьому випадку безпосередне порiвняння файлiв не ефективне.

Розглядаема технiка дозволяе перевести файл у б^ьш коротке подання: до документа зктавляеться набiр iдентифiкацiйних мiток, так щоб для близьких докуменпв цi набори перетиналися.

Побудову набору мгток для документа розглянемо на довшьному текстi: abracadabra

(вш складаеться з 11 символiв; m = 11) К-грамом називаються будь-якi к символи що стоять тдряд. Побудуемо всiлякi к-грами для цього тексту при, наприклад, к = 3:

abr, bra, rak, aka, kad, ada, dab, abr, bra Кшьюсть к-грамiв, яю можна побудувати для тексту довжини m позначимо n,

n = (m - (до - 1)) (у прикладд n = 9) (2.2)

Хешуемо ва к-грами, набiр хеш - значень (h1 ... hn) що вийшов характеризуе вихiдний документ. Для розглянутого тексту виходить така послщовшсть хеш - значень:

12, 35, 78, 3, 26, 48, 55, 12, 35

На практищ використовувати ва значення не до-щльно, тому вибирають невелику 1х кiлькiсть. Вибранi хеш - значення стають дрiбними документами [9]. Разом з самою мгткою збер^аеться iнформацiя про те, якому файлу вона належить i в якому мшщ цього файлу зустрь чаеться. Якщо хеш-функцiя гарантуе малу ймовiрнiсть колiзiй, то однакова мiтка у наборах двох файлiв сввд-чить про те, що у них е стльний тдрядок. За юльюстю загальних мiток можна судити про близьюсть файлiв.

Вибiр хеш - значень, яю будуть представляти документ:

- на1вний пiдхiд - вибрати кожне i-те з n значень. Проте, такий споаб не стшкий до вставлення та вида-лення символiв, змiни 1х порядку. Тому спиратися на позищю всерединi документа не можна;

- за Хайнце слщ призначити миками р - мжмаль-них хеш - значень, 1х кiлькiсть для всiх докуменпв буде постiйно. За допомогою цього методу можна знайти частковi копи, але вш добре працюе на файлах при-близно одного розмiру, знаходить схожi файли, може застосовуватися для класифжацп документiв;

- Манбер запропонував обирати в якосп миок тiльки тi хеш - значення, для яких h = 0 mod p, так зали-шиться тiльки n / р позначок. Однак, у цьому випадку вщстань мiж послiдовно вибраними хеш - значеннями не обмежена i може бути велика. У цьому разi зб™, яю опинилися мiж миками, не будуть врахованi;

- метод проиювання не мае цього недолжу. Алгоритм гарантуе, що якщо в двох файлах е хоч би один досить довгий загальний тдрядок, то як мжмум одна позначка у 1х наборах збiгаеться.

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

- якщо довжина тдрядка зб^аеться б^ьше або до-рiвнюe гарантовано! довжиш t, то збiг буде виявлено;

- збiг коротше шумового порогу к, ^норуеться.

Пункт 2 забезпечений вид^енням з тексту к-гра-

мiв. Чим бiльше к, тим менше ймовiрнiсть, що збiги випадковi. Але iз зростанням к падае стшюсть методу до перестановок. У художшх текстах зазвичай за к приймають середню довжину стiйких виразiв.

Щоб задовольнити пункт 1 необхщно, щоб кожний з послвдовно iдучих ^-к +1) хеш - значень хоча б одне було обрано як позначка.

1дея алгоритму: просуваемо вжно розмiру w = =(; - к + 1) вздовж послщовноси Ь1 ... Ьп, на кожному крощ вiкно перемiщаеться на одну позищю вправо. Призначаеться микою м^мальне hj у вiкнi.

Якщо у одному вшт два елементи приймають мшь мальне значення, правий призначаеться мггкою.

Алгоритм Хескела.

Нехай е двi програми, якi представлен у вигля-дi рядкiв токешв а i б вiдповiдно. Одним з критерпв подiбностi рядкiв вважаеться довжина найбiльшоi загально послвдовностг Завжди можна знайти такий елемент рядка а ^ що НОП рядюв а'= а| а | а |а |-1...аi а1... а1.1 i буде значно менше, шж НОП (а, б) (якщо НОП (а, б)> 1). Щоб уникнути цього явища можна скористатися алгоритмом порiвняння рядкiв Хескела, вiн вимагае деюлькох проходiв, але працюе за лшшне час [13]. Розбиваються рядка а i б на к-грами. Знаходяться и к-грами, яю зустрiчаються в а i б пльки по одному разу. Для кожно! тако! пари перевiряеться чи зб^аються елементи рядкiв, безпосередньо що лежать над ними; якщо це так, то проводиться та ж перевiрка i для них i так дал^ поки розбiжнiсть не як знайдено. Аналопчно для рядюв, що лежать нижче вщповвдних к-грамiв. Виходить набiр загальних непересiчних тдрядюв а i б. Тхня загальна довжина може служити мiрою схожост програм вiдповiдних а i б.

Переваги i недолiки.

Переваги:

- лшшна трудомiсткiсть алгоритму.

Недолiки:

- можлившть збiгу токенiзiрованного представлен-ня програм, але вщсутшсть збiгу в початкових кодах програм;

- невелика юльюсть ушкальних к-грамiв у великих програмах, ввдповвдно багато збiги, не мштять в собi к-грамiв будуть про^нороваш;

- вставка в знайдений блок або змша на семантич-но е^валентний оператора в багатьох випадках буде призводити до кнорування пе! частини блоку, в якiй не метиться унiкальний к-грам.

Колмогорiвськая складшсть у задачi знаходження плагiату.

Ввдстань мiж послiдовностями, засноване на теорп iнформацii:

d(x,y) = 1 -

K(x) - K(x|y) K(xy)

(2.5)

де K(x) - Колмогоровская складнiсть послщовносп х. Вона показуе скiльки шформацп мiстить послвдов-нiсть х. За визначенням, К(х) - довжина найкоротшо!

програми, яка на порожнш введення друкуе х, К(х|у) - кiлькiсть шформацп, отримано! х вiд у, якщо пусто, то воно дорiвнюе К(х); (К(х) - К(х|у)) - сюльки у «знае» про х. За визначенням, К(х|у) - це довжина найкорот-шо! програми, яка на введення у друкуе х.

Основна ввдмшшсть наведено! метрики вiд шших, що використовуються в задачах визначення плапату, полягае в ii ушверсальностк двi програми, близькi щодо будь-яко! iншоi метрики, будуть близькими i щодо дано!. Теоретично, детектор, заснований на та-кий метрицi, неможливо обдурити [15].

Процес порiвняння двох програм.

Спочатку проводиться токешзащя, далi запуска-еться алгоритм TokenCompress, заснований на алго-ритмi стиснення LZ. Першим д^ом вiн знаходить довжелезнмий неточно повторюваний пiдрядок, який закшчуеться в поточному символi; кодуе ii указником на попередне розмщення i зберiгае iнформацiю про внесенi поправки.

Реалiзацiя вiдрiзняеться вiд класичного LZ-стис-нення деякими особливостями, пов'язаними зi спе-цифiкою завдання: класичний алгоритм амейства LZ з обмеженим буфером може пропустити деяю довгi повторюваш пiдрядкiв через обмеження на розмiр словника пiд час кодування.

Це не страшно для кодування звичайних тексив, де потрiбно перш за все економити пам'ять i зменшувати час виконання, адже втрати якоси стиснення будуть украй малi.

Але в силу специфжи завдання i вибраного алгоритму ii ршення, який використовуе неточнi збiги, втрата навггь невеликоi кiлькостi довгих повторюва-них пiдрядкiв неприйнятна.

Псевдокод алгоритму:

Algorithm TokenCompress

Input: A token sequences

Output: Comp(s) and matched repeat pairs

i=0

An empty buffer B; while (i < s) { p = FindRepeatPair (i) { if (p.compressProfit > 0) { EncodeRepeatPair (p, compFile); i=i p.length;

OutputRepeatPair (p, repFile); } else {

AppendCharToBuffer (s i , B);

i++; }

}

EnodeLiteralZone (B, compFile); return Comp (s) = compFile.file_size; and repeat pairs stored in repFile.

Передбачаеться, що спочатку алгоритму швдаль зуемо словник усiма пiдстроками рядка у, а далi алгоритм залишаеться без змiн.

Класичнi алгоритми амейства LZ НЕ пiдтримують неточних збтв. Цей же алгоритм шукае неточно по-вторюванi пiдрядка та кодуе !х збiгу. TokenCompress використовуе порогову функщю, щоб визначити чи випдшше кодувати невiдповiдностi або краще скори-статися альтернативами.

Вiдповiдно, деякi HeT04Hi повтори можуть бути об'еднаш в один з невеликою юльюстю помилок. Неточно зб^лися пари пiдрядкiв записуються у файл i пiзнiше можуть бути переглянуи людиною.

На основi роботи цього алгоритму вважаеться d(x, y), яка потiм використовуеться для визначення на-скiльки ймовiрно те, що одна з цих програм е плапатом шший.

Переваги i недолiки.

Переваги:

- переваги токенiзiрованного подання;

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

- використовуеться евристичне наближення метрики, такий що, якщо двi програми, близью щодо будь-яко! шшо'! функцii вiдстанi, будуть близькими i щодо дано!;

- загальш пiдрядки, менше порогово! довжини кноруються, тому алгоритм не вiзьме до уваги малi випадково збiглися д^янки коду;

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

- вкрай висока стшюсть до вставцi операторiв;

- алгоритм нечутливий до перестановок великих фрагменив коду.

Недолж складаеться у тому що можливкть збiгу токенiзiрованного представлення програм, але вщсут-нi зб™ в початкових кодах програм.

Метод пошуку на XML уявлень.

Представлення програми у виглядi дерева вщобра-жае ii кориснi для пошуку плапату властивоси, i не враховуе даремш.

Метод пошуку плагiату, заснований на представ-леннi програми у виглядi дерева, опис якого зберь гаеться у форматi XML. Використання стандартних шструменпв для роботи з XML значно спрощуе архь тектуру детектора плапату.

Програми, написаш на процедурних мовах, таких як Pascal i С, добре структуроваш, тому отримати у XML поданш легко. Для оцiнки близькостi двох програм використовуються числовi матрищ, побудованi на основi XML опиав [16].

Побудова XML-уявлень.

У процедурних мовах програмування програма длиться на основш структурш блоки.

Елемент Block мштить вiдомостi про логiку управ-лiння у функцii. Усерединi нього Contents несе шфор-мацiю про операцп присвоення, виклики функцiй та шших незалежних операторах. Елемент Control Type збер^ае тип управлшня, внутршнш Block описуе на-ступний рiвень вкладеностi.

Вiдповiдне наведенiй схемi XML представлення програми виходить очевидним способом. За цим по-данням будуються числовi матрицi, що вiдображають структуру програми.

Матриця будови програми. Юльюсть N стовпщв в матрицi залежить вiд конкретноi мови програмуван-ня, передбачаеться, що воно достатньо велике.

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

hi h2 hk hk+i hk+2 hn

gi g2 gk gk+i gk+2 gn

rii ri2 rik aii ai2 ain-k

lii li2 lik cii Ci2 cin-k

cdii cdi2 cdik cdik+i cdik+2 cdin

r2i r22 r2k a2i a22 a2n-k

l2i l22 l2k C2i C22 C2n-k

cd2i cdi2 cd2k cd2k+i cd2k+2 cd2n

rmi rm2 rmk ami am2 amn-k

lmi lm2 lmk Cmi Cm2 Cmn-k

cdmi cdm2 cdmk cdmk+i cdmk+2 cd mn

рядку структурно! матрищ на i - тому мшщ ставимо 1, у противному випадку - 0.

Другий рядок вщповвдае за глобальш змшш. Мож-ливi типи змiнних занумерован^ на i - тому мшщ у другому рядку матрицi варто юльюсть глобальних змiнних даного типу в програмь

Решта рядка в матрищ описують функцп, для кож-но1 з функцiй вiдводяться 2 рядки. У першш з них першi к стовпцiв вiдповiдають за тип, що повертаеться значення, стовпчики з (к + 1)-ого ставлять у вщповщ-нiсть можливим типам юльюсть аргументiв даного типу.

Аналопчно, у другому рядку, що описуе функщю, в першi к стовпцях зберкаеться iнформацiя про кiлькiсть локальних змшних даного типу, у стовпцях с (к + 1) на i-тому мшщ стоггь кiлькiсть керуючих операторiв даного типу.

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

Цi послвдовноси можна витягти з XML представ-лення програми за допомогою стандартного шстру-менту XQuery.

Вiн аналiзуе XML i рекурсивно, подiбно алгоритмом пошуку в глибину, витягуе послщовшсть типiв операторiв управлiння.

Для кожно! функцii будуеться масив, в якому мь стяться номери операторiв управлiння в порядку слщування всерединi функцп.

Оцiнка близькостi програм.

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

Де h вiдповiдае заголовками, g - глобальним змш-ним, rk - повертае значення, a - аргументiв, l - локаль-ним змiнним, c - типами управлiння, cdk представляе послщовшсть типiв операторiв управлiння к - пе! функцii [17].

Передбачаеться ощнити близькiсть двох програм.

Вони представлен матрицями А i В.

Порiвнюються матрицi по частинам, враховуючи iхнiй змiст.

«Стутнь схожостЬ» визначаеться юльюстю збiгiв, наприклад, для роздШв заголовкiв:

HeaderVal = A[1][1..n] х BT [1][1..n] =

= (hi h2 ...K-1 hn)x(hi'h2...h'n-i h'n)T =

= E(h* hi) = E bi (2.6)

Литература

1. Шаньгин, В.Ф. Защита компьютерной информации. Эффективные методы и средства // Издательский дом «Вильямс», 2008.

- 386 с.

2. Ворошвка, Г.К. «Генетичш алгоритми, штучнi нейронш мережi i проблеми вiртуальноi реальность» // ОСНОВА, 1997.

- 112 с.

i Надоели баннеры? Вы всегда можете отключить рекламу.