• Самоучитель клингонского

      Пару лет назад мы рассказали о том, как в системе Антиплагиат устроен поиск русского перевода английских статей. Естественно, без машинного переводчика в алгоритме не обойтись. В основе машинного переводчика, конечно, лежит машинное обучение, которое, в свою очередь, требует весьма значительного количества «параллельных предложений», т.е. одинаковых по смыслу предложений, написанных на двух языках. Значительное количество — это миллионы предложений, и чем больше, тем лучше. Понятно, что для русско-английской пары найти такую базу (в том числе и в открытом доступе) реально. А что делать с теми языковыми парами, для которых параллельных предложений принципиально не может быть слишком много?


      Казалось бы, не имея в распоряжении большого объема обучающих примеров, обучить систему машинного перевода невозможно. Но на помощь приходит идеология Unsupervised Learning, или «обучение без учителя». Ну а чтобы задача была действительно интересной (особенно порадует она фанатов вселенной Стартрека), мы будем обучать наш машинный переводчик для пары языков «английский – клингонский».


      Источник картинки: Собственное творчество от команды Антиплагиата


      А самым подходящим девизом к дальнейшему рассказу о применении Unsupervised Learning будет знаменитая выдержка из Инструкции клингонского почетного караула «Если не можешь контролировать себя, тебе не дано командовать другими».


      bISeH'eghlaH'be'chugh latlh Dara'laH'be'
    • Собеседования в разработку: друзей выбирают


        Первую сотню собеседований к себе в команду (а потом и в отдел разработки) я провёл лет семь назад. Поначалу этого процесса сам боялся, готовился. Затем всё превратилось не то чтобы в рутину (чего никогда не будет), но общая канва сложилась. Во многом она пересекается с тем, что описывалось в аналогичных статьях (см. 1, 2, 3… и особенно эту с комментами). Но я решил написать ещё одну. Надеюсь, она также будет вам полезна. Уж точно будет полезна тем, кто пойдёт к нам.


        И да, это персональная статья. Моё мнение может не совпадать с политикой компании Антиплагиат.

        Читать дальше →
      • Мечта разработчика: производство управляет бизнесом



          15 лет мы, производство компании Антиплагиат, жили в простых и гармоничных отношениях с бизнесом и пиаром. Сначала мы выкатывали новый функционал на прод. Затем пиар начинал его пиарить: писать новости, пресс-релизы, давать интервью и т.п. Ничего, собственно, не мешало развиваться таким отношениям и дальше, пока… Хотя нет, обо всем по порядку.

          В конце 2019 года мы провели стратегическую сессию: озвучили и записали большое количество идей, которые лежали в головах разработчиков, тестировщиков, аналитиков, devops'ов, в общем, того самого производства. Посмотрев на наши идеи, руководство (а вместе с ним и пиар) решилось на отчаянный шаг – дать производству самому рассказать о наших идеях, собрать отклики, продвинуть на рынок. Эта статья – первый пробный шажок простых производственных парней по неизведанной планете под названием «рынок».

          А еще мы выиграли грант РВК на развитие искусственного интеллекта в области обработки текстов на естественном языке. Поэтому почувствовали себя обязанными обрисовать ближайшие планы.
          Узнать будущее Антиплагиата глазами производства
        • Тайные навыки у интровертов: ораторский клуб в IT-компании

            Как развивать навыки публичного выступления в IT-компании, где большую часть сотрудников составляют разработчики, тестировщики и прочие технари, а из них подавляющее большинство (по их собственному признанию) интроверты? Между тем в компании есть постоянная потребность в спикерах, которые могли бы достойно представлять продукт и компанию, выступая на конференциях, семинарах и других мероприятиях. На момент старта проекта ораторский клуб таких сотрудников было всего 2-3 человека. Как увеличить их количество? Кажется, мы нашли оригинальное решение и готовы поделиться опытом.



            Источник изображения: psy-practice.com


            Читать дальше →
          • Трансформеры и ненависть в Ванкувере: как Антиплагиат ездил на NeurIPS-2019

              В конце уже прошлого года в канадском городе Ванкувер прошла конференция NeurIPS-2019. Поиск по Хабру выдаёт семь упоминаний, среди которых нет ни одного отчёта или обзора — странный пробел, учитывая уровень и масштаб события в 2019 году. Мы в компании Антиплагиат решили заполнить этот пробел рассказом о впечатлениях двух нипсовых неофитов в мире haute couture data science.


              Добро пожаловать под кат!
            • Т — значит творчество

                Пока весь мир, вместо того, чтобы нарезать салаты готовиться к встрече Нового года, следит за развитием ситуации с nginx, мы решили не усугублять и не готовить серьезную научную статью, не шокировать технологиями наступившего будущего и не грузить очень хитрым алгоритмом. Мы тоже пользуемся nginx и надеемся, что и с его создателями и с ним все будет хорошо. И нам (да и не только нам) важно, чтобы ситуация разрешилась не как подарок Деда Мороза, а как естественный ход событий.

                А пока давайте просто подведем итоги уходящего 2019 года
              • Так Систему не обойти

                  Последний учебный год, апрель месяц. Студента все чаще и чаще начинают посещать мысли о том, что надо бы заняться дипломной работой. Заняться — в смысле придумать, как быстро состряпать нечто, что будет хотя бы созвучно той теме, которую, вроде как, утверждали с научным руководителем. А, да, надо хотя бы на 80 страниц, еще и соблюсти ГОСТы там всякие… Понятное дело, самому столько связного текста уже не успеть набрать (да еще и могут начать в суть работы вникать, ну его!). Очевидно — надо брать готовую работу, которую уже защитили, работу качественную, проверенную и одобренную. Знакомая всем нам ситуация. Открытым остается единственный вопрос — как сделать так, чтобы работа прошла проверку на заимствования… Поиск в интернете и общение с коллегами по несчастью приводят студента к следующим вариантам решения проблемы:

                  • Написать работу самому;
                  • Перефразировать текст (дорого и сложно);
                  • Обхитрить систему с помощью «технических обходов».



                  Давайте посмотрим, какими бывают технические обходы, как мы их отлавливаем и почему их применение — не самая хорошая идея…

                  Читать полностью
                • Такая боль, такая боль, касса как сервис 2:0

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

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

                    Скрудж МакДак купается в золоте
                    Жили у бабуси две веселых кассы...
                    • +14
                    • 2,4k
                    • 2
                  • Теория и практика стандартизации Docker-сервисов

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



                      Источник изображения:


                      Как можно догадаться, Антиплагиат – как раз такая компания, где постепенно пришло понимание, что нам с микросервисами по пути. Но прежде чем начать есть кактус, мы решили его почистить и приготовить. А так как все единственно верные и правильные решения для каждого уникальны, то вместо универсальных DevOps-слайдов с красивыми стрелками мы решили просто поделиться собственным опытом и рассказать, как мы уже прошли немалую часть нашего особого пути к, я надеюсь, успеху.

                      Читать дальше →
                      • +18
                      • 5,8k
                      • 4
                    • Трип на Аляску, или KDD'19 глазами очевидца

                        Не секрет, что ученые очень любят исследовать мир. Поэтому крупные конференции всегда проходят в исторических и культурных столицах мира. Эти города удобны для посещения людям со всего мира и интересны с туристической точки зрения. Но иногда желание исследовать новое и неизведанное берет верх, и городом проведения конференции становится, например, Анкоридж на Аляске. Тоже о нем не слышали до этого? А в этом году там проходила одна из крупнейших конференций KDD'19.



                        Мы в компании Антиплагиат не могли пропустить такое событие и отправились навстречу приключениям на другой конец земного шара. Что было на KDD 2019 — читайте в нашем обзоре!

                        Читать обзор!
                      • Таинственный противник: нечеткие заимствования

                          Неправомерное Заимствование — это многоголовая гидра, враг, постоянно меняющий свое лицо. Наши лучшие частные сыщики готовы зацепиться за любое злодеяние, совершенное этим врагом. Однако противник не дремлет, он хитер и коварен: явно подставляясь в одном деле, он невероятно умело заметает следы в других. Иногда его удается поймать с поличным с помощью нашего самого шустрого сотрудника — Суффиксного Массива. Иногда противник мешкает, и скрупулезный, но неторопливый Поиск Парафраза успевает вычислить его местоположение. Но зло коварно, и нам постоянно нужны новые силы для борьбы с ним.


                          Сегодня мы расскажем о нашем новом детективе специального назначения по имени Нечеткий Поиск, а также о его первом столкновении с нечеткими заимствованиями.


                          С вами детективное агентство Антиплагиат, приготовьтесь к Делу о Таинственном Противнике



                          Начать расследование
                        • Терпение и труд весь текст извлекут

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


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



                            Источник изображения: Википедия

                            Читать полностью
                            • +19
                            • 5,5k
                            • 9
                          • Так сложно найти, легко пропустить и невозможно оформить

                              Наши правила жизни: начинать название статей с буквы «Т» и искать текстовые заимствования быстро, точно и, самое главное, красиво. Уже больше года мы успешно находим переводные заимствования и рерайт с помощью нейросетей. Но иногда нужно намеренно «стрелять себе в ногу» и, прихрамывая, идти другой дорожкой, т.е. не проверять ни на парафраз, ни на плагиат, а просто оставить кусочек текста в покое. Парадоксально, больно, но надо. Скажем сразу: трогать не будем библиографию. Как отыскать её в тексте? Почему это легко сказать, но сделать гораздо сложнее, чем кажется? Всё это в продолжении корпоративного блога компании Антиплагиат, единственного блога, где не любят зачёркнутый текст.



                              Источник изображения:Fandom.com

                              Читать полностью
                            • Триллион маленьких шинглов


                                Источник изображения:www.nikonsmallworld.com


                                Антиплагиат – это специализированный поисковик, о чем уже писали ранее. А любому поисковику, как ни крути, чтобы работать быстро, нужен свой индекс, который учитывает все особенности области поиска. В своей первой статье на Хабре я расскажу о текущей реализации нашего поискового индекса, истории его развития и причинах выбора того или иного решения. Эффективные алгоритмы на .NET — это не миф, а жесткая и продуктивная реальность. Мы погрузимся в мир хеширования, побитового сжатия и многоуровневых кешей с приоритетами. Что делать, если нужен поиск быстрее, чем за O(1)?


                                Если кто-то еще не знает, где на этой картинке шинглы, добро пожаловать…


                                Читать полностью
                              • Такая боль, такая боль, инфраструктура как сервис 1:0

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


                                  Эта статья – первая из серии производственных драм историй о том, как мы делали наш сервис лучше при помощи аутсорса. Делимся реальными проблемами и выводами.


                                  Облака, белогривые лошадки...



                                  (откуда-то из интернета, впервые увидел тут.)

                                  Нагрузка на нашу систему сильно неравномерна: во-первых, в течение суток нагрузка меняется в 5 раз. Во-вторых, есть и ярко выраженная сезонность. Суточный максимум проверок после окончания летней сессии уменьшается в 10 раз! Зимняя сессия не столь яркая, но тоже не подарок. Плюс каждая последующая летняя сессия тяжелее (по числу проверок) и сложнее (новые технологии поиска и функциональность) предыдущей. Поэтому, с одной стороны, хочется иметь хороший запас по ресурсам, с другой – не платить лишнего во время спада активности. В сессию можно развернуть побольше серверов, а летом сократить объем потребляемых ресурсов. Очевидно, что это как раз случай облачных провайдеров. В этой статье я расскажу о различных аспектах взаимодействия с несколькими облачными провайдерами (AWS, ИТ-Град, MCS, YC). Если кому-то покажется, что это крик души, он не сильно ошибется. Итак, поехали!

                                  Антиплагиат об облаках
                                  • +32
                                  • 10,2k
                                  • 6
                                • Так устроен поиск заимствований в Антиплагиате

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

                                    • как быстро найти абзац текста среди сотен миллионов статей;
                                    • во что превращается документ после загрузки в систему Антиплагиат, и что с этим делать дальше;
                                    • как формируется отчет, который почти никто не смотрит, а стоило бы;
                                    • как проиндексировать не все, но достаточно.


                                    Антиплагиат в естественной среде, полетели
                                  • «Трое в лодке, нищета и собаки», или как Антиплагиат ищет парафраз

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



                                      Читать дальше →
                                    • «Туда и обратно» для нейронных сетей, или обзор применений автокодировщиков в анализе текстов

                                        Мы уже писали в самой первой статье нашего корпоративного блога о том, как работает алгоритм обнаружения переводных заимствований. Лишь пара абзацев в той статье посвящена теме сравнения текстов, хотя идея достойна гораздо более развернутого описания. Однако, как известно, обо всем сразу рассказать нельзя, хоть и очень хочется. В попытках воздать должное этой теме и архитектуре сети под названием «автокодировщик», к которой мы питаем очень теплые чувства, мы с Oleg_Bakhteev и написали этот обзор.


                                        Источник: Deep Learning for NLP (without Magic)

                                        Как мы упоминали в той статье, сравнение текстов у нас было “смысловое” – мы сопоставляли не сами текстовые фрагменты, а векторы, им соответствующие. Такие векторы получались в результате обучения нейронной сети, которая отображала текстовый фрагмент произвольной длины в вектор большой, но фиксированной размерности. Как получить такое отображение и как научить сеть выдавать нужные результаты – отдельный вопрос, о которой и пойдет речь ниже.
                                        Читать дальше →
                                        • +19
                                        • 8,4k
                                        • 4
                                      • Теория большой свалки: ищем научные документы на просторах интернета

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

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

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

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



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

                                          • Tutorial
                                          В нашей первой статье в корпоративном блоге компании Антиплагиат на Хабре я решил рассказать о том, как работает алгоритм поиска переводных заимствований. Несколько лет назад возникла идея сделать инструмент для обнаружения в русскоязычных текстах переведенного и заимствованного текста из оригинала на английском языке. При этом важно, чтобы этот инструмент мог работать с базой источников в миллиарды текстов и выдерживать обычную пиковую нагрузку Антиплагиата (200-300 текстов в минуту).

                                          "

                                          В течение 12 лет своей работы сервис Антиплагиат обнаруживал заимствования в рамках одного языка. То есть, если пользователь загружал на проверку текст на русском, то мы искали в русскоязычных источниках, если на английском, то в англоязычных и т. д. В этой статье я расскажу об алгоритме, разработанном нами для обнаружения переводного плагиата, и о том, какие случаи переводного плагиата удалось найти, опробовав это решение на базе русскоязычных научных статей.
                                          Читать дальше →

                                        Самое читаемое