Диссертация (1149623), страница 5
Текст из файла (страница 5)
Для минимизациисубъективности анализа повторов работа с каждым документом проводилась парой исследователей, распределение документов по парам производилось случайным образом. В начале анализа каждая пара описывала шаблоны для замеченных ложноположительных повторов в анализируемо документе, адресованныеиспользуемому клон-детектору. Это делалось до тех пор, пока клон-детектор переставал выдавать ложноположительные срабатывания — повторы, которыене представляют практического интереса.
После этого запускался клон-детектори далее его выдача анализировалась «вручную». Авторы приводят следующуюклассификацию ложноположительных срабатываний: повторы в метаданных документов — фамилии авторов, дата публикациидокументации и пр.; повторы в автоматически генерируемых разделах документации — в оглавлении, в колонтитулах и т.д.; «TODO»-заметки; стандартные названия разделов, общие для разных документов документации.Также в работе оценивается влияние повторов на скорость чтения, а также наэффективность сопровождения требований.
Авторы делают вывод о том, что повторяются в среднем 13,6% текста (отношение размера всех повторов в документе к размеру документа термин сlone сoverage — покрытие клонами). Приэтом они сравнивают объём анализируемой документации с гипотетической документацией, содержащей такой же текст, но без повторов, и показывают, что всреднем, благодаря повторам, документация увеличена на 13,5% (термин blow-21up — раздувание). Авторы также отмечают важность неточных повторов, однаков своём исследовании их не учитывают.С.
Вагнер и Д. Фернандес [145] рассматривают задачу разработки и сопровождения различной текстовой информации программных проектов: исходногокода, документации, текстовых артефактов конфигурационного управления, заметок в системе учёта ошибок (bug tracking system) и т.д. В работе рассматриваются различные техники поиска повторов, основанные на анализе текстов наестественных языках и на поиске программных клонов.
При проведении экспериментов авторы используют для анализа документации инструмент поиска программных клонов из состава анализатора программного обеспечения [50]. Такжеобсуждаются вопросы субъективности при «ручном» анализе и классификациинайденных в документации повторов.А. Вингквист с коллегами [150] также исследуют точные повторы в документации различных, не только программных, проектов, делая на основании количества найденных повторов выводы об уникальности и об избыточности документации. Для анализа они используют средство поиска клонов, входящее в состав пакета VizzAnalyzer [99].А. Раго (A. Rago) c коллегами [121] ищет неточные повторы в текстовых описаниях случаев использования (use cases, см. Д.В.
Кознов [9] и М. Фаулер [66]).Используются методы анализа текстов на естественных языках. Следует отметить, что данный подход ориентирован на очень простые документы, состоящиеиз последовательностей пронумерованных действий. Применимость подхода кболее сложным документам неочевидна.
Заметим, что авторы согласны с [89] вчасти отношения к повторам: по их мнению, повторы могут затруднять использование и сопровождение документации, а также оказывать негативное влияниена реализованный в соответствии с этими спецификациями программный код.221.3. Методы и средства поиска текстовых повторовВыше были рассмотрены подходы к поиску повторов в документации ПО,включая связи с программным кодом, средства повторного использования, разные виды документации и другие реалии разработки программного обеспечения.В этом разделе рассмотрим различные методы и средства обнаружения повторовв текстах — как в контексте других областей, так и в смысле низкоуровневыхсредств поиска, которые могут быть использованы в нашей задаче.Методы и средства анализа текстов на естественных языкахНекоторые техники и средства анализа и обработки текста на естественныхязыках могут быть использованы при поиске повторов в документации.Популярной является модель N-грамм [46] — разновидность статистическоймодели языка, которая рассматривает текст как множество перекрывающихсяфрагментов одинаковой длины, называемых N-граммами.
Модель позволяет,например, с помощью меры Жаккара [82], делать выводы о синтаксической близости текстов на основе того, насколько похожи множества их N-грамм.Тематическое моделирование (topic modelling) [12, 138] позволяет разбиватьколлекцию документов или фрагментов текстов на классы, относящиеся к различной тематике. Подробнее можно анализировать текст c использованием векторных смысловых представлений слов при помощи таких систем, как GoogleWord2Vec [105] или Stanford GloVe [137]. Большое количество алгоритмов анализа текстов на естественных языках реализовано в программных библиотекахNLTK [44] и Texterra [26]. Детальный анализ текста на естественном языке,включая морфологический анализ слов и синтаксический анализ предложений,может быть выполнен при помощи более мощных анализаторов, таких как SyntaxNet [140], SpaCy [75].
Сравнительный анализ нескольких таких систем представлен в [48].В некоторых исследованиях, посвящённых анализу повторов в документацииПО, применяются средства анализа текстов на естественных языках. В работе [121] эти средства применяются для анализа случаев использования. В [145]23описывается поиск повторов в текстах программных проектов с применением Nграмм, а также средств для разметки частей речи и тематического моделирования.
В работах [89, 145] стандартные алгоритмы обработки текстов на естественных языках использовались для нормализации текста — приведения форм словк основным формам (падежам, числам, временам и т.д.)2.Информационный поискПоиску повторов в документах посвящён ряд работ в рамках тематики информационного поиска.
В отличие от исследований, описанных в разделе 1.2, этиработы не относятся к программной инженерии и не рассматривают документацию ПО. Тем не менее, применяемые в них приёмы и техники анализа текстовыхданных на предмет повторов интересны с точки зрения темы данной работы.В [149] рассматриваются подходы к дедупликации3 цифровых коллекций с использованием перцептивного хеширования4 на основе алгоритма SimHash [47], атакже и при помощи метода N-грамм. В работе анализируется контент электронных библиотек CiteSeerX и ArXiv, которые содержат сотни тысяч научных статей. Статистический анализ повторов, найденных с применением обоих подходов, доказывает их эффективность в задачах поиска повторов (точнее, повторяющихся документов).Использование предварительной нормализации перед поиском повторов формально позволяет говорить о поиске неточных повторов — в одну группу повторов попадают текстовыефрагменты, которые не являются идентичными.
Но отличия в текстовых повторах, очевидно,нельзя сводить только к различиям на уровне форм отдельных слов или пунктуации.2Дедупликация (deduplication) является разновидностью сжатия данных, которая производитзамену повторяющихся фрагментов ссылками на единственный экземпляр этих данных. Этотметод активно применяется в работах, посвящённых систематизации цифровых коллекций иорганизации систем хранения данных [102, 131]3Перцептивное хеширование (perceptual hashing) — способ построения цифрового отпечаткаданных, при котором сходным данным соответствуют близкие отпечатки [107].424Работа [122] предлагает механизм обнаружения повторяющихся фрагментовВеб-страниц с целью дедупликации их контента и оптимизации кеширования5.Современные технологии Веб-разработки поддерживают повторное использование, но «ручное» выделение повторно используемых фрагментов Веб-страництрудоёмко и повышает риск появления ошибок.
Предложенные авторами методы повторного использования и обнаружения повторно используемых фрагментов призваны решать эти проблемы. Проведённая апробация показывает хорошие результаты для крупных информационных ресурсов, таких, как веб-сайтыBBC, IBM и SlashDot. Следует отметить, что данная задача решается на большихколлекциях документов и имеет очень большую трудоёмкость (как правило, дляеё решения требуется вычислительный кластер).Интересна задача поиска в наборе документов исходного документа, из которого фрагменты текста были скопированы в остальные [30]. В данной работепредлагается алгоритм поиска в коллекции документов исходных фрагментовраскопированного текста, позволяющий найти «оригинальный» документ, из которого, вероятно, они были заимствованы.















