- PVSM.RU - https://www.pvsm.ru -

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

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

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

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

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

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

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

Итак, нам необходимо решить две задачи:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Тип документа Количество документов в выборке
Статьи 679
Кандидатские диссертации 250
Авторефераты кандидатских диссертаций 714
Сборники научных конференций 75
Докторские диссертации 159
Авторефераты докторских диссертаций 189
Монографии 107
Учебные пособия 403
Дипломные работы 664
Неопределенный тип 514

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

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

Точность Полнота F-мера
81% 76% 79%

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

На рисунке 2 – распределение научных документов по типам, за исключением типа «статья». Видно, что второй по популярности тип научного документа — учебное пособие, а самый редкий тип — докторская диссертация.
Теория большой свалки: ищем научные документы на просторах интернета - 6
Рис. 2. Распределение других научных документов по типам

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Значение рубрикатора Вероятность
Педагогические науки 47%
Психологические науки 33%
Культурология 20%

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

Рубрикатор Точность на топ-3
ГРНТИ 93%
ВАК 92%
УДК 94%

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

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

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

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

Автор: Yury Chekhovich

Источник [18]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/analiz-danny-h/282154

Ссылки в тексте:

[1] «Антиплагиат»: https://corp.antiplagiat.ru/

[2] только лишь на русском языке: https://habr.com/company/antiplagiat/blog/354142/

[3] yury_chekhovich: https://habr.com/users/yury_chekhovich/

[4] Andrey_Khazov: https://habr.com/users/andrey_khazov/

[5] научную статью: http://philology-and-culture.kpfu.ru/?q=system/files/26_16.pdf

[6] детской сказки: http://az.lib.ru/g/grimm/text_0150.shtml

[7] индекс удобочитаемости: https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D0%B4%D0%B5%D0%BA%D1%81_%D1%83%D0%B4%D0%BE%D0%B1%D0%BE%D1%87%D0%B8%D1%82%D0%B0%D0%B5%D0%BC%D0%BE%D1%81%D1%82%D0%B8

[8] Random forest: https://en.wikipedia.org/wiki/Random_forest

[9] Elibrary.ru: https://elibrary.ru/defaultx.asp

[10] ВАК: http://vak.ed.gov.ru/316

[11] ГРНТИ: http://grnti.ru/

[12] УДК: https://classinform.ru/udk.html

[13] topic modeling: https://en.wikipedia.org/wiki/Topic_model

[14] BigARTM: https://github.com/bigartm/bigartm

[15] k-NN: https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm

[16] Naive Bayes: https://en.wikipedia.org/wiki/Naive_Bayes_classifier

[17] Ensembling: https://en.wikipedia.org/wiki/Ensemble_averaging_(machine_learning)

[18] Источник: https://habr.com/post/413361/?utm_source=habrahabr&utm_medium=rss&utm_campaign=413361