Практические применение алгоритмов машинного обучения, искусственного интеллекта и прочих фокусов ситуационного анализа данных сегодня — уже железобетонно — перешло из области экзотики в сферу рекомендованного сервиса.
Проблема — вовсе не в алгоритмах как таковых. Только на python существует с десяток общедоступных бесплатных библиотек, позволяющих — без особых проблем — реализовывать все три классические задачи эффективной оценки фантастических текстов (рАвно, впрочем, и любых иных текстов): распознавание образов, кластеризация и классификация. Хитрость — в ином: в обеспечении чистоты данных для обучения идентификационных алгоритмов.
Ежели есть некий набор текстов, каждому из которых поставлен в соответствие некий набор числовых характеристик, то препятствие для начала обучения нейронной сети, к примеру — всего одно: «шумы» в этих самых числовых характеристиках. Пример — классический: чтобы иметь в выходном слое нейронов всего 10 классов, соответствующих шкале оценивания текстов (от 1 до 10, надо быть уверенным в том, что никто из оценщиков не вносил в результаты своей оценки систематическую ошибку, то есть не «портил» сознательно оценки (например не лепил подряд «единицы» всем авторам, кто вызывает у него идиосинкразию — вне зависимости от, собственно, качества самих текстов). В противном случае алгоритм обработки контрольной выборки будет оценивать не эффективность функционирования нейросети, а — степень идентичности получаемых оценок тому портрету оценщиков, который имел место в начале обучения нейросети. Иными словами: от искусственного интеллекта (далее — ИИ) в деле оценки качества фантастических текстов будет реальный толк только при соблюдении следующих трёх условий:
*** оценок — достаточно для формирования и обучающей и контрольной выборок (речь о сотнях тысяч экземпляров);
*** все оценщики — адекватны (оценки — не содержат систематических ошибок);
*** все оценки — контрастны (не являются результатом усреднения массы разнообразнейших значений, «равномерно размазанных» по всей шкале оценивания;
Что касаемо первого условия, то Фантлаб — идеальный образец для экспериментов: 650 тысяч текстов и полтора десятка миллионов оценок.
Осталось решить три простенькие задачки:
*** отсеять неадекватных оценщиков;
*** сдемпфировать негативные аспекты усреднения оценок;
*** найти, собственно, полные тексты, соответствующие «очищенным» оценкам.
И тогда — любой ИТ-первокурсник сможет обучить нейросеть оценивать качество любого фантастического текста. Любого. Даже того, что не идентифицирован на Фантлабе. Ибо ИИ задействуется именно для этого: обучить на примерах, оценить точность обучения и получить инструмент, который — далее самостоятельно — имитирует решение творческой задачи оценивания качества с гарантированной точностью. Да, ошибки останутся и в этом случае. Конечно же. Но — согласись, уважаемый потенциальный читатель: иметь инструмент, гарантирующий выставление любому предъявленному тексту оценку в диапазоне от «1» до «10» с точность, допустим, 97% — это более чем приемлемая альтернатива существующей вольнице самолюбий и волюнтаризмов. Тем более, что сей алгоритм — не будет требовать зарплаты и социальных гарантий, болеть и не к месту проявлять характер.
Итак, приступим,
***
1. Задача первая. Отсеять неадекватных оценщиков.
Задача — уже решена. Просто — выкидываем из общей выборки тех оценщиков, массив оценок которых не укладывается в итоговое правило распределения (https://fantlab.ru/blogarticle83833). Напоминаю, уважаемый потенциальный: у нас 15 миллионов оценок. Даже если общее их число в результате данного фильтра уменьшится в 10 раз — это не принципиально. Оставшихся для обучения нейросети — хватит, что называется, «за глаза».
***
2. Задача вторая. Сдемпфировать негативные аспекты усреднения оценок.
Задача — уже решена. Необходимо оставить в массиве оценок только те, для которых соблюдается правило: число оценщиков в той половине гистограммы распределения оценок, которая соответствует оценке, должно превышать более чем в два раза число альтернативных оценщиков (расположенных «по другую сторону» разграничительной черты (https://fantlab.ru/blogarticle83951). Ежели и в этом случае общее число оставшихся оценок уменьшится в 10 раз — не смертельно. Оставшихся для обучения нейросети — всё еще с избытком.
***
3. Задача третья. Найти, собственно, полные тексты, соответствующие «очищенным» оценкам.
Задача — уже практически решена. Что значит «практически»? Тут три аспекта.
Аспект Первый: недоступных текстов в Сети не существует. По крайней мере мне таковых встретить не удалось. Да, я тоже покупаю какие-то тексты, как и все, конечно же. НО. В основном это те, которые публикуются «нон-стоп», прочие же — также связаны именно с удобством сервиса. Алгоритму же первичного распознавания — все равно какого качества сам текст, формат — тоже безразличен. Вполне достаточно любой попавшейся под руку версии. А таковых — десятки в каждом конкретном случае.
Аспект Второй: авторское право. Найти любой текст в Сети — действительно — никакая не проблема. Но в рамках обучения нейросети копирование огромного числа текстовых версий в некое одно место резко увеличит вероятность их утечки таковым массированным пакетом, что — естественно — вызовет протесты авторской аудитории. Обоснованные протесты. Спешу успокоить обеспокоенных авторов: современные алгоритмы вполне себе позволяют выполнять оное распознавание в оперативной памяти, исключая операцию, собственно, складирования файлов. Поскольку первоисточники — всегда (в нашем случае) — всего лишь ссылки Сети, то проблема — как таковая — решается сама собой. Вернее — никакой проблемы и не будет. За отсутствием прецедентов.
Аспект третий. Собственно, «карусель распознавания». Ну, сие — сугубо на общественных началах. Тут примеров — масса. Примеров таковых проектов. Проектов массовой распределенной обработки текстовых объектов. Тем более, что для первого шага, то бишь для обучения нейросети с эффективностью в районе 90%, нам понадобится не более 10 тысяч текстов. А это — при наличии 100 добровольцев — всего по 100 текстов на брата (или — сестру). Не принципиально. Дорогу осилит идущий.
***
Вот такое кино