Сортировка неструктурированного потока данных

    В прошлой статье Я писал как мы на YPAG.RU сортируем компании по разделам с помощью нейронной сети.
    Многие просили описать алгоритм. Я опишу универсальный подход для сортировки данных.

    1. Нужно проанализировать добавленный текст и определить в нем ключевые слова. Есть много алгоритмов для определения ключевых слов, Я использовал законы Зипфа, кстати по этой теме мне пришлось писать дипломный проект.

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

    3. Отбираются 20 самых релевантных документов и строится по ним рейтинг разделов. После этого отбираются самые популярные разделы из этой выборки. Этот порог настраивается сугубо индивидуально, у нас стоит порог – больше 5.

    4 У нас на YPAG.RU еще назначается позиция документа в разделе. Позиция вычисляется следующим образом: определяются позиции найденных документов раздела и вычисляется средняя позиция. Если компания интересует посетителей – позиция постепенно растет.

    Таким образом можно эффективно структурировать данные. Погрешность составляет 3-5%.
    Основные проблемы возникают, если текст ни точно сформулирован. Например: оптовые закупки. Ни понятно что, как.

    Средняя зарплата в IT

    113 000 ₽/мес.
    Средняя зарплата по всем IT-специализациям на основании 5 572 анкет, за 2-ое пол. 2020 года Узнать свою зарплату
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 9

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

      Например, так (пользуясь компаниями и разделами Вашего сайта):

      Задача:
      На сайт добавляется новая компания. Нужно автоматически определить рубрики, к которым ее отнести.

      1) Добавляем новую компанию
      Название: ООО Автодорсервис
      Описание: Спецтехника и запасные части ДЗ-98, А-120, ДЗ-180, ДЗ-143, ГС-14, ДЗ-122, К-700, К-701, К-702, Т-170, Т-130, Б-10, Урал, БелАЗ, МоАЗ, ЯМЗ, КрАЗ, ДЭК-251, РДК, Автокраны

      2) Определяем ключевые слова в данном описании при помощи закона Зипфа. Допустим, этими словами оказались слова: «Спецтехника» и «Автокраны».

      3) Проводим поиск по каждому из этих слов в базе компаний, заполненной ранее. Отбираем 20 первых по релевантности компаний и определяем рубрики, к которым они относятся.

      4) Из полученной выборки рубрик, отбираем только те, которые встречаются в этой выборке более 5 раз. Этими рубриками являются «Автомобили» и «Автозапчасти для грузовых автомобилей».

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

        –1
        Я хотел описать общий подход к данной проблеме, а не опираться на конкретную реализацию.
        У каждого свои задачи.
          0
          Ну так общий подход давно известен и ничего нового в нем нет. А Вы пишете, что «Многие просили описать алгоритм», то есть интересен был именно алгоритм, который Вы применили в Вашем проекте.

          А тут получается ни то, ни сё. Порог > 5, 4-й пункт и слова про погрешность относятся к Вашему проекту, а остальное общие слова.

          Вам же уже в комментариях к прошлому посту говорили, что без конкретики — это просто реклама.
            –2
            По моему Я и описал все опираясь на свой проект :)
            куда уж подробнее?
            может еще разжевать и в рот положить? :)
          0
          Основные проблемы возникают, если текст ни точно сформулирован. Например: оптовые закупки. Ни понятно что, как.

          Многие представители компаний, добавляя свою организацию, даже не могут точно сформулировать, чем они занимаются. Таких по нашем региону (Ярославская область) более 70%. А вы о нейронной сети говорите. Только ручная проверка сведений может дать близкий к 100% точности результат.
            0
            Ну не знаю где Вы таких находите :)
            по нашим данным не более 5%
              0
              Мы таких не находим, они сами нас находят )) У нас с вами специфика разная, вот и данные разнятся.
              Кстати, Яндекс тоже не использует полностью автоматизированный разбор добавляемых организаций. Слишком велика погрешность.
                0
                Вот несколько примеров:
                www.ypag.ru/cat/kompaniy981966/s644694454.html — почему бы его в полиграфические услуги не добавить? Там же в описании четко прописано: «Полиграфические услуги». Еще его можно добавить к «Компьютеры», т.к. в описании написано: «Продажа и обслуживание офисной техники, компьютеров». Еще его можно добавить в раздел «Ремонт бытовой и офисной техники», опять-такие, исходя из описания.

                www.ypag.ru/cat/kompaniy989348/s1002480394.html — вместо рубрики «Программное обеспечение» их надо в «Бизнес-образование» и/или в «Информационные технологии».

                И так далее.
              0
              Я ж говорю, погрешность есть, но работы на много меньше, чем если исправлять все после них :)
              К сожалению полностью автоматизировать нельзя да и выборку надо качественную и большую иметь.
              А Я беру существующую выборку, большую часть которой делалась модераторами в ручном режиме.
              От сюда и погрешность.

              Если б была 100% качественная выборка — таких бы косяков было б куда меньше.

              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

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