Хабрахабр

Теория большой свалки: ищем научные документы на просторах интернета

Система «Антиплагиат» – это специализированный поисковик. Как и положено поисковику, с собственным движком и поисковыми индексами. Самый большой наш индекс по количеству источников – конечно же, у русскоязычного интернета. Довольно давно мы решили, что будем помещать в этот индекс все, что является именно текстом (а не картинкой, музыкой или видео), написано на русском языке, имеет размер больше 1 кб и не является «почти-дубликатом» чего-то, что уже есть в индексе.

С другой стороны, в результате мы мало знаем, какие именно документы находятся в итоге в индексе. Такой подход хорош тем, что он не требует сложных предварительных обработок и минимизирует риски «выплеснуть с водой ребенка» – пропустить документ, из которого потенциально может быть заимствован текст.

По мере роста интернет-индекса – а сейчас, на секундочку, это уже более 300 млн документов только лишь на русском языке – возникает вполне естественный вопрос: а много ли в этой свалке действительно полезных документов.

Сколько проиндексировано научных документов, а сколько ненаучных? И раз уж мы (yury_chekhovich и Andrey_Khazov) занялись такой рефлексией, то почему бы нам заодно не ответить еще на несколько вопросов. Каково распределение документов по тематикам? Какую долю среди научных статей занимают дипломы, статьи, авторефераты?

Конечно, в большинстве случаев качество экспертной оценки превосходит машинные методы, но привлекать человеческие ресурсы для решения столь обширной задачи оказалось бы слишком дорогим удовольствием.
Итак, нам необходимо решить две задачи: Так как речь идет о сотнях миллионов документов, то необходимо использовать средства автоматического анализа данных, в частности, технологии машинного обучения.

  1. Создать фильтр «научности», который, с одной стороны, позволяет отбрасывать в автоматическом режиме не подпадающие по структуре и содержанию документы, а с другой стороны определяет тип научного документа. Сразу оговоримся, что под «научностью» ни в коей мере не понимается научная значимость или достоверность полученных результатов. Задача фильтра – отделять документы, имеющие вид научной статьи, диссертации, диплома и т.п. от других видов текстов, а именно художественной литературы, публицистических статей, новостных заметок и т.п.;
  2. Реализовать средство рубрикации научных документов, относящее документ к одной из научных специальностей (например, Физико-математические науки, Экономические науки, Архитектура, Культурология и т.д.).

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

Даже беглого взгляда хватает, чтобы отличить научную статью Поясним на примере.

от, например, детской сказки.

А вот при наличии только текстового слоя (для тех же самых примеров) приходится вчитываться в содержание.

Фильтр «научности» и сортировка по типам

Решаем задачи последовательно:

  1. На первом этапе отфильтровываем ненаучные документы;
  2. На втором этапе все документы, которые были определены как научные, классифицируем по типу: статья, кандидатская диссертация, докторский автореферат, диплом и т.д.

Выглядит это примерно так:

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

Это высокая скорость работы алгоритма и нетребовательность к ресурсам – все-таки наша задача носит вспомогательный характер. Есть еще одно обстоятельство, которое нужно принимать во внимание. Поэтому используем очень небольшое признаковое описание документов:

  • средняя длина предложения в тексте;
  • доля стоп-слов по отношению ко всем словам текста;
  • индекс удобочитаемости;
  • доля знаков препинания по отношению ко всем символам текста;
  • количество слов из списка («автореферат», «диссертация», «дипломный», «аттестационный», «специальность», «монография» и т.п.) в начальной части текста (признак отвечает за титульный лист);
  • количество слов из списка («список», «литература», «библиографический» и т.п.) в последних части текста (признак отвечает за список литературы);
  • доля букв в тексте;
  • средняя длина слова;
  • количество уникальных слов в тексте.

Все эти признаки хороши тем, что они быстро вычисляются. В качестве классификатора используем алгоритм случайного леса (Random forest) — популярный в машинном обучении метод классификации.

Предполагаем, что все статьи будут определены как научные. С оценками качества при отсутствии размеченной экспертами выборки трудновато, потому напускаем классификатор на коллекцию статей научной электронной библиотекой Elibrary.ru.

Ничего подобного – всего 70%. Результат 100%? Просматриваем отфильтрованные статьи. Может быть, мы создали плохой алгоритм? Выборочный просмотр статей, которые классификатор посчитал научными, ошибок не выявляет, поэтому признаем классификатор годным. Выясняется, что в научных журналах печатают много ненаучных текстов: редакционные статьи, поздравления с юбилеями, некрологи, кулинарные рецепты и даже гороскопы.

Здесь без качественного материала для обучения не обойтись. Теперь беремся за вторую задачу. Получаем чуть больше 3,5 тысяч документов с таким распределением: Просим асессоров подготовить выборку.

Тип документа

Количество документов в выборке

Статьи

679

Кандидатские диссертации

250

Авторефераты кандидатских диссертаций

714

Сборники научных конференций

75

Докторские диссертации

159

Авторефераты докторских диссертаций

189

Монографии

107

Учебные пособия

403

Дипломные работы

664

Неопределенный тип

514

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

Получаем следующее качество классификации:

Точность

Полнота

F-мера

81%

76%

79%

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

Рис. 1. Распределение документов по «научности»

Видно, что второй по популярности тип научного документа — учебное пособие, а самый редкий тип — докторская диссертация.

Рис. На рисунке 2 – распределение научных документов по типам, за исключением типа «статья». Распределение других научных документов по типам 2.

От быстрого «грубого» классификатора нам больше и не нужно. В целом результаты соответствуют ожиданиям.

Определение тематики документа

Так получилось, что пока не создан единый общепризнанный классификатор научных работ. Наиболее популярными на сегодняшний день являются рубрикаторы ВАК, ГРНТИ, УДК. Мы решили на всякий случай тематически классифицировать документы под каждый из этих рубрикаторов.

В качестве инструмента для построения тематической модели используем открытую библиотеку BigARTM. Для построения тематического классификатора используем подход, основанный на тематическом моделировании (topic modeling) — статистическом способе построения модели коллекции текстовых документов, при котором для каждого документа определяется его вероятность принадлежности к определенным темам. Мы уже использовали эту библиотеку раньше и знаем, что она отлично подходит для тематического моделирования больших коллекций текстовых документов.

В тематическом моделировании определение состава и структуры тем – это результат решения оптимизационной задачи по отношению к конкретной коллекции документов. Однако есть одна сложность. Естественно, что получившиеся при настройке на нашу коллекцию темы не будут соответствовать ни одному из целевых классификаторов. Мы не можем повлиять на них напрямую.

Для этого в пространстве тем BigARTM мы с помощью алгоритма ближайших соседей (k-NN) ищем несколько наиболее похожих на запрос документов с известными значениями рубрикаторов, и, исходя из этого, присваиваем документу-запросу наиболее релевантный класс. Поэтому, чтобы получить итоговое неизвестное значение рубрикатора конкретного документа-запроса, нам нужно выполнить еще одно преобразование.

В упрощенном виде алгоритм изображен на рисунке:

Удаляем из коллекции документы, которые привязаны к очень общим позициям рубрикаторов, например, Общие и комплексные проблемы естественных и точных наук, так как такие документы будут сильно зашумлять итоговую классификацию. Для обучения модели мы используем документы из открытых источников, а также данные, предоставленные Elibrary.ru с известными специальностями ВАК, ГРНТИ, УДК.

Итоговая коллекция содержала порядка 280 тысяч документов для обучения и 6 тысяч документов для тестирования для каждого из рубрикаторов.

Например, для текста со значением ГРНТИ 27. Для наших целей нам достаточно предсказывать значения рубрикаторов первого уровня. 24: Гармонические функции и их обобщения верным является предсказание рубрики 27: Математика. 27.

В качестве признаков в нем используются частоты слов, наиболее характерных для каждого из документов с конкретным значением рубрикатора ВАК. Для улучшения качества разработанного алгоритма мы добавляем к нему в пару подход, в основе которого лежит старый добрый наивный байесовский (Naive Bayes) классификатор.

В результате мы берем предсказания обоих алгоритмов, взвешиваем их и выдаем усредненное предсказание для каждого запроса. Зачем так сложно? Подобный подход в итоге дает нам заметный прирост качества. Этот прием в машинном обучении называется ансамблированием (Ensembling). Например, для спецификации ГРНТИ точность исходного алгоритма составила 73%, точность наивного байесовского классификатора — 65%, а их объединения — 77%.

В итоге получается вот такая схема работы нашего классификатора:

Во-первых, любому документу может быть одновременно присвоено более одного значения рубрикатора. Отметим два фактора, влияющих на результаты классификатора. 00. Например, значения рубрикатора ВАК 25. 00. 24 и 08. И это не будет ошибкой. 14 (Экономическая, социальная и политическая география и Мировая экономика).

Яркий пример — такие, казалось бы, непохожие темы, как Машиностроение и Сельское и лесное хозяйство. Во-вторых, на практике значения рубрикаторов расставляются экспертно, то есть субъективно. Наш алгоритм отнес статьи с названиями «Машины для рубок ухода за лесом» и «Предпосылки к разработке типоразмерного ряда тракторов для условий северо-западной зоны» к машиностроению, а по оригинальной разметке они относились как раз к сельскому хозяйству.

К примеру, для статьи «Профессиональная толерантность учителя (на примере деятельности учителя русского языка полиэтнической школы)» вероятности значений рубрикатора ВАК распределились следующим образом:
Поэтому мы приняли решение выводить топ-3 наиболее вероятных значения каждого из рубрикаторов.

Значение рубрикатора

Вероятность

Педагогические науки

47%

Психологические науки

33%

Культурология

20%

Точность итоговых алгоритмов составила:

Рубрикатор

Точность на топ-3

ГРНТИ

93%

ВАК

92%

УДК93%

94%

На диаграммах представлены результаты исследования по распределению тематик документов в индексе русскоязычного интернета для всех (рисунок 3) и только для научных (рисунок 4) документов. Видно, что большая часть документов относится к гуманитарным наукам: самые частые спецификации — экономика, юриспруденция и педагогика. При этом среди только научных документов их доля еще больше.

Рис. 3. Распределение тематик по всему модулю поиска

Рис. 4. Распределение тематик научных документов.

В результате мы буквально из подручных материалов не только узнали тематическую структуру проиндексированного интернета, но и сделали дополнительную функциональность, с помощью которой можно «одним движением» классифицировать статью или другой научный документ сразу по трем тематическим рубрикаторам.

Описанная выше функциональность сейчас активно внедряется в систему «Антиплагиат» и скоро будет доступна пользователям.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть