УДК 004.056
ПРОСТОЙ МЕХАНИЗМ ПОИСКА НЕГАТИВНОГО КОНТЕНТА
© Д.В. Лопатин, А.А. Новиков, И.Э. Стрекалов, М.В. Лопатина, Ю.В. Калинина, И.А. Житенёва
Ключевые слова: поиск; контент.
Рассмотрены возможности алгоритмов полнотекстового поиска нежелательного контента на веб -страницах. Показано, что для поиска в пределах среднестатистических размеров веб-страниц и случайных посещений сайтов с негативным содержанием эффективно использовать наивный подход.
ВВЕДЕНИЕ
Полнотекстовый поиск, или поиск по ключевым терминам (паттернам) в силу объективных причин (простота и доступность Мт1-стандарта представления данных и манипулирования ими с помощью веб-браузеров) является одним из главных механизмов детектирования нежелательного контента. Наиболее известные алгоритмы, реализующие поиск подстрок в тексте, - это наивный подход, или полный перебор Кнута-Морриса-Пратта, Боуера-Мура и его модификации.
Цель работы: рассмотреть возможности перечисленных алгоритмов применительно к поиску негативных терминов, ЫшЬтегов и шг1-адресов на реальных веб-страницах.
МЕТОДЫ ПОИСКА
Полный перебор осуществляет последовательное считывание данных и сравнение с термином из словаря нежелательного контента. Основными достоинствами метода является простота реализации, большое количество ассемблерных вариантов функций поиска строк. Для поиска худшего варианта алгоритма полного перебора требуется О(тп) команд сравнения. При практической работе с обычными текстами эффективность метода может повышаться до О(т+п).
Алгоритм Кнута-Морриса-Пратта [1] использует информацию, получаемую в процессе поиска, что позволяет избежать переборов с возвратом во входном тексте. Текстовая строка последовательно просматривается со смещением. Для хранения смещений формируется дополнительная таблица перед началом поиска. Для наихудшего случая время работы алгоритма составляет О(т+п). Метод дает хорошие результаты только для текстов с большим количеством повторов терминов.
В алгоритме Бойера-Мура [2] пропускаются части текста, которые заведомо не участвуют в успешном сопоставлении. В неблагоприятном случае алгоритм Бойера-Мура потратит время О(п+тт), где г - число найденных совпадений. Р.Н. Хорспул [3] показал, что упрощенная форма алгоритма Бойера-Мура с одной
таблицей, индексируемой отклоняющими символами текста, по производительности превосходит или сравнима с исходным алгоритмом. В работе [4] показано, что можно увеличить эффективность поиска в неравномерно распределенном тексте на естественном языке за счет оптимального маршрута сравнений, основанных на их вероятностном распределении в тексте. Если рассматривать данный метод применительно к задаче данной работы, то маршрут сравнений можно получить из предварительной обработки контента веб-страниц и/или словаря терминов. Также существуют и другие модификации алгоритма Бойера-Мура: быстрый поиск, оптимальное несовпадение, максимальный сдвиг [5-6]. Работы по совершенствованию алгоритма продолжаются и в настоящее время [7-10].
Относительная эффективность описанных выше алгоритмов изучалась многими исследователями как теоретически, так и эмпирически [4, 11-13]. Показано, что самым эффективным для практических целей является в первую очередь алгоритм Бойера-Мура-Хорспула. По результатам представленных работ, в экстремальных случаях, когда длина термина мала (< < 6) и размер текста не велик, можно использовать наивный подход.
РЕЗУЛЬТАТЫ И ОБСУЖДЕНИЕ
Относительно простая реализация [14-15] позволяет провести практический анализ поисковых алгоритмов Бойера-Мура-Хорспула и полного перебора. Полный перебор организован с использованием функции поиска подстрок со смещением, написанной на ассемблере для набора инструкций 1А32 [16]. Все вычислительные результаты получены при равных программных и аппаратных ресурсах.
Рассмотрим синтетический модельный эксперимент по определению скорости поиска и от длины термина << = 3...20. Каждый термин встречается в тексте сто раз. На рис. 1 представлена зависимость и(<) в произвольных единицах. Видно, что алгоритм Бойера-Мура-Хорспула значительно эффективнее работает при поиске длинных терминов. Функция поиска на основе полного перебора не чувствительна к длине терминов.
Рис. 1. Зависимость скорости поиска и от длины термина й: ♦ - данные для полного перебор; • - данные для алгоритма Бойера-Мура-Хорспула
Рис. 2. Распределение длины терминов для словарей
Перейдем к рассмотрению результатов, полученных на реальных объектах. По статистическим данным проекта [17], средний размер текстового контента на странице составляет 59 кбайт. В рамках нашей задачи целесообразно принять за основу данный размер веб-страницы при поиске контента для тестовых испытаний.
Для вычислительного эксперимента были сформированы словари, содержащие от 20 до 7000 уникальных терминов, включая отдельные слова и словосочетания, html теги и URL-адреса. На наш взгляд, максимальный объем словаря - 7000 терминов - позволяет значительно перекрыть негативно-пассивный словарный запас современного человека. Частотное распределение длины терминов приведено на рис. 2. Так, 60 % терминов содержат от 5 до 17 символов, и 66 % терминов имеют длину от 10 до 100. Последнее удовлетворяет опти-
мальным условиям поиска на основе алгоритма Бойе-ра-Мура-Хорспула (рис. 1).
Объем словаря терминов является важной частью системы поиска, т. к. от него в первом приближении зависит точность и скорость работы всей системы детектирования нежелательного контента. Для примера приведем зависимость скорости поиска и от размера словаря V (рис. 3). Для наглядности ось ординат представлена в логарифмическом масштабе. Видно, что скорость резко падает от объема словаря. Отсюда следует, что к вопросу формирования реальных словарей необходимо подходить с особой тщательностью. При этом задача усложняется в силу того, что по условию задачи работы необходимо проводить анализ незнакомого контента веб-страницы.
Рис. 3. Кривые зависимостей и(У): ♦ - данные для полного перебор; • - данные для алгоритма Бойера-Мура-Хорспула
Рис. 4. Относительная эффективность алгоритмов Л(^р, Ср)
При выборе оптимального алгоритма для реальных страниц необходимо учитывать скорость поиска и при определенных объемах словарей (V), размеры вебстраниц (5), число обнаруженных терминов и их количество. Сведем эти сложные зависимости к виду и = ДРр, Ср), где ¥р - число обнаруженных терминов;
Ср - число вызовов элементарной процедуры поиска. Из обшдх соображений следует, что ¥р е [0...г] (г -количество найденных совпадений для текущего термина) и зависит от а величина Ср является зависимой от V и г.
На рис. 4 представлены результаты интерполяции на основе метода кригинга [18] 88 экспериментальных точек для тестовой веб-страницы. По оси абсцисс - Fp, по оси ординат - Cp. По оси аппликат - А относительная эффективность алгоритмов А = (UBF - UBMH)/UBMH, где UBMH - скорость работы алгоритма Бойера-Мура-Хорспула; UBF - скорость работы алгоритма полного перебора. Видно, что при любых параметрах рассматриваемый подход полного перебора значительно эффективнее в рамках условий поставленной задачи. Скорости поиска у алгоритмов сопоставимы только при обнаружении незначительных совпадений r = 20...61 при малых объемах словаря V = 20 (рис. 3-4).
Отметим, что негативное содержание ресурса должно встречаться относительно редко. В противном случае интернет-ресурс должен быть заблокирован в соответствии с законодательством РФ. Таким образом, разрабатываемая система детектирования должна быть ориентирована в первую очередь на ограничение случайных посещений сайтов с нежелательным, агрессивным, злонамеренным или незаконным контентом. В силу этого система поиска должна эффективно работать при неудачных попытках обнаружений. Как видно из рис. 4, для рассматриваемых алгоритмов при неудачных попытках (Fp = 0) эффективность полного перебора резко возрастает и варьируется от 85 до 114 %.
Таким образом, представляется весьма перспективным использование рассмотренного наивного подхода к реализации полнотекстового поиска. При этом метод позволяет реализовать многофункциональный поиск (например, регулярным выражениям) без каких-либо существенных ограничений.
ЛИТЕРАТУРА
1. Knuth D.E., Morris (Jr) J.H., Pratt V.R. Fast pattern matching in strings // SIAM Journal on Computing. 1977. V. 6. № 1. Р. 323-350.
2. Boyer R.S., Moore J.S. A Fast String Searching Algorithm // Communications of the ACM. 1977. V. 20. P. 762-772.
3. Horspool R.N. Practical fast searching in strings // Software - Practice and Experience. 1980. V. 10. P. 501-506.
4. Baeza-Yates R.A. Algorithms for string searching // ACM SIGIR Forum. 1989. V. 23. № 3-4. Р. 34-58.
5. Sunday D.M. A very fast substring search algorithm // Communications of the ACM. 1990. V. 33. № 8. Р. 132-142.
6. Smith P.D. Experiments with a very fast substring search algorithm // Softw. Pract. & Exper. 1991. V. 21. № 10. Р. 1065-1074.
7. Cantone D., Faro S. Fast-Search: a New Efficient Variant of the Boyer-Moore String Matching Algorithm // Second International Workshop on Experimental and Efficient Algorithms. 2003. V. 2647. Р. 4758.
8. Shan Y., Jiang Y., Tian S. Improved Pattern Matching Algorithm of BMHS for Intrusion Detection // Computer Engineering. 2009. V. 35. Р. 170-173.
9. Akhtar R., Nilay K. Performance Improvement of BMH and BMHS using PDJ (Possible Double Jump) and MValue (Match Value) // International Journal of Computer Applications. 2013. V. 72. Р. 1-6.
10. Jaiswal M. Accelerating Enhanced Boyer-Moore String Matching Algorithm on Multicore GPU for Network Security // International Journal of Computer Applications. 2014. V. 97. № 1б. Р. 30-35.
11. Smith G. de V. A comparison of three string matching algorithms // Softw. Prat. & Exper. 1982. V. 12. Р. 57-66.
12. Davies G., Bowsher S. Algorithms for pattern matching // Software-Practice and Experience. 1986. V. 16. № 6. Р. 575-601.
13. Pirklbauer K. A study of pattern-matching algorithms // Structured Programming. 1992. V. 13. Р. 89-98.
14. Apostolico Z.A. Galil Pattern Matching Algorithms. Oxford: Oxford University Press, 1997. 377 p.
15. Charras C., Lecroq T. Hanbook exact string matching algorithms // College Publications. 2004. 256 р.
16. The Fastcode Challenges. URL: http://fastcode.sourceforge.net/ (дата обращения: 01.02.2015).
17. Http Archive // Interesting stats. Choose a run: 1 Feb 2015. URL: http ://httparchive. org/interesting.php?a=All&l=Feb%201 %202015 (дата обращения: 01.02.2015)
18. Stein M.L. Interpolation of Spatial Data: Some Theory for Kriging. Springer-Verlag, 1999. 249 р.
БЛАГОДАРНОСТИ: Работа выполнена при финансовой поддержке РФФИ, грант № 15-07-08378.
Поступила в редакцию 5 марта 2015 г.
Lopatin D.V., Novikov A.A., Strekalov I.E., Lopatina M.V., Kalinina Y.V., Zhiteneva I.A. NAIVE APPROACH TO SEARCH NEGATIVE CONTENT
Were discussed the possibility of full-text search algorithms inappropriate content on Web pages. It shown, for average size of web pages and random visits to sites with negative content effectively search should be organized with the naive approach. Key words: search; content.
Лопатин Дмитрий Валерьевич, Тамбовский государственный университет им. Г.Р. Державина, г. Тамбов, Российская Федерация, кандидат физико-математических наук, доцент, директор Центра компьютерной безопасности, e-mail: [email protected]
Lopatin Dmitriy Valeryevich, Tambov State University named after G.R. Derzhavin, Tambov, Russian Federation, Candidate of Physics and Mathematics, Associate Professor, Director of Center of Computer Security, e-mail: [email protected]
Новиков Артем Алексеевич, Тамбовский государственный университет им. Г.Р. Державина, г. Тамбов, Российская Федерация, студент института математики, физики и информатики, e-mail: [email protected]
Novikov Artem Alekseevich, Tambov State University named after G.R. Derzhavin, Tambov, Russian Federation, Student of Mathematics, Physics and Informatics Institute, e-mail: [email protected]
Стрекалов Илья Эдуардович, Тамбовский государственный университет им. Г.Р. Державина, г. Тамбов, Российская Федерация, студент института математики, физики и информатики, e-mail: [email protected]
Strekalov Ilya Eduadovich, Tambov State University named after G.R. Derzhavin, Tambov, Russian Federation, Student of Mathematics, Physics and Informatics Institute, e-mail: [email protected]
Лопатина Маргарита Владимировна, Тамбовский государственный университет им. Г.Р. Державина, г. Тамбов, Российская Федерация, магистрант, кафедра информатики и информационных технологий, e-mail: [email protected]
Lopatina Margarita Vladimirovna, Tambov State University named after G.R. Derzhavin, Tambov, Russian Federation, Postgraduate, Informatics and Information Technologies Department, e-mail: [email protected]
Калинина Юлия Вячеславовна, Тамбовский государственный университет им. Г.Р. Державина, г. Тамбов, Российская Федерация, студент института математики, физики и информатики, e-mail: [email protected]
Kalinina Yulia Vechyaslavovna, Tambov State University named after G.R. Derzhavin, Tambov, Russian Federation, Student of Mathematics, Physics and Informatics Institute, e-mail: [email protected]
Житенёва Ирина Андреевна, Тамбовский государственный университет им. Г.Р. Державина, г. Тамбов, Российская Федерация, студент института математики, физики и информатики, e-mail: [email protected]
Zhiteneva Irina Andreeevna, Tambov State University named after G.R. Derzhavin, Tambov, Russian Federation, Student of Mathematics, Physics and Informatics Institute, e-mail: [email protected]