Хакни плагиатора!

Хакатон по поиску плагиата в русских текстах

Подробности хакатона

Итак, 22-23 сентября на конференции AINL в Санкт-Петербурге пройдет хакатон по определению парафразированных заимствований в текстах. Прямое практическое применение решений этой задачи - нахождение некорректных заимствований, то есть, плагиата и составление карты заимствованных фрагментов текста.

Выложен тестовый сет

Тестовый сет можно скачать здесь.

Участники должны найти точные границы перефразированных заимствований, сгенерировать свои предсказания в том же формате, который использовался в обучающих данных, и выслать эти предсказания на почту организаторам. Объявление результатов состоится в 17 часов 23 сентября в комнате 1221.

Что нужно будет сделать?

Задача, которую предстоит решить участникам хакатона, состоит в следующем. Дано некоторое количество пар текстов. В каждой паре один текст является “подозрительным”, а другой - “источником” (у одного “подозрительного” текста может быть несколько источников). Известно, что “подозрительные” тексты содержат заимствованные из источников куски текста, причем эти куски перефразированы, чтобы затруднить работу систем обнаружения плагиата. Например, предложение

Книга с заголовком "Познавательная кулинария с шеф–поваром Watson" выйдет уже завтра, 14 апреля.”

превращается в

Она вышла в середине апреля 2014 года под названием "Познавательная кулинария с шеф-поваром Watson".”

или

В 2005 году компания впервые выходит за пределы Российской Федерации, открывая представительство на Украине”

превращается в

Уже в 2005 году компания начала выходить на иностранный рынок, открыв офис управления на Украине.”

Такие заимствования не обнаруживаются простым поиском совпадающих строк. Следовательно, требуются более эффективные техники. Мы не сомневаемся, что участники хакатона смогут их найти.

Важно: задача нахождения текстов-кандидатов на заимствования в данном хакатоне не решается! Источники для каждого текста уже известны, нужно лишь найти точные границы заимствованных фрагментов.

Как всё будет проходить?

Утром 22 сентября состоится открытие хакатона и выступление организаторов. Будут представлены обучающие данные и скрипты (впрочем, вы можете скачать их и начать работу уже сейчас). После этого в течение двух дней участники работают над задачей в режиме, который они сами для себя определяют.

Вечером 23 сентября пройдёт подведение итогов. За два часа до начала вечерней сессии организаторы выложат тестовый набор данных (без правильных ответов), который не входит в исходный датасет, но совпадает с ним по структуре.

Участники генерируют свои предсказания для тестовых данных и высылают их в сжатом виде организаторам. Полученные предсказания сравниваются с эталонными ответами, созданными организаторами. Заимствования, найденные участниками, но не указанные в эталонных ответах, не будут учитываться при оценке. Организаторы объявляют результаты каждой команды. После объявления победителя пройдет неформальное обсуждение использованных подходов (мы просим каждую группу подготовить краткое представление своего метода).

Где данные, Билли?

Датасет для обучения и проверки ваших систем вы можете скачать здесь. В архиве вы найдете три каталога и два скрипта на Python, облегчающих работу с данными:

src/
susp/
tasks/
text_alignment_baseline.py
text_alignment_measures.py

В каталоге src/ содержатся тексты-источники, в каталоге susp/ - “подозрительные” документы, в каталоге tasks/ - золотой стандарт, то есть, разметка заимствований по фрагментам и документам. Подавляющее большинство заимствований - перефразирования, но может присутствовать и небольшое (не более 10%) количество дословных заимствований. Подробнее о датасете Paraplag, частью которого являются эти данные, читайте в нашей статье.

Скрипт text_alignment_baseline.py реализует очень примитивный поиск заимствованных фрагментов по совпадающим строкам. Участники могут использовать его как основу для построения своих систем. В скрипте уже реализовано чтение датасета, базовый препроцессинг текстов и сохранение найденных заимствований в требуемом XML-формате (подробно о формате и применении скриптов). Фактически, участникам требуется только усовершенствовать функцию compare в этом скрипте. Не возбраняются и реализации на любых других языках программирования, если команде это удобно.

В существующем виде text_alignment_baseline.py уже можно применить для поиска заимствований в предложенном датасете. Команды

mkdir predictions
python text_alignment_baseline.py tasks/pairs src/ susp/ predictions/

создадут в каталоге predictions набор XML-файлов с обнаруженными фрагментами.

Скрипт text_alignment_measures.py определяет качество обнаружения:

python text_alignment_measures.py -p tasks/ -d predictions/
Reading tasks/
Reading predictions/
Processing...
(this may take a while)
Plagdet Score 0.455244192951
Recall 0.369042237633
Precision 0.881204565662
Granularity 1.20798045603

Об используемых метриках качества можно подробнее почитать тут. Как можно видеть, baseline-метод даёт очень низкую полноту, то есть, не детектирует большинство заимствований.

Мы ожидаем, что созданный командами код будет опубликован под одной из свободных лицензий, но не выдвигаем это в качестве жёсткого требования. Удачи!

Не забудьте заранее зарегистрироваться на хакатон и на саму конференцию AINL!

Хотите присоединиться к обсуждению правил или подготовке данных? Напишите нам: plagevalrus@gmail.com.

Команда организаторов