zodchiy
@zodchiy
Фуллстэк с 2005

Как подступиться к такой задаче классификации и поиска?

Задача - необходимо разбить на составные части (название, вес, количество, производитель) и (ИЛИ) связать между собой два набора. Один представляет собой запись наименований принятый у поставщика (а поставщиков 2000, и у всех разные правила), а второй уже приведенный к нормализованному наименованию, с соблюдением всех правил.

Первый набор (7млн записей), пример наименований:
Банан 1000 штук ящик 1ц
Банан 1000шт 100 килограмм ФрутПрод
Банан N1000 уп. 100кг Фрут-компани
Банан 1000 ящ 1 центнер
Фига 2000 шт. ящик 0.6ц
ФрутПрод Фига 2000ш 60кг
Фига 2000 ящик 0.06 тонн
Фига N2000 0.06т

Второй набор (100к нормализованных наименований), пример:
Банан 1000 штук ящик 100кг
Фига 2000 штук ящик 60кг

Хорошее в том, что большая часть второго набора МНОГОКРАТНО была связана с большей частью первого набора.
Т.е. вариаций названия "Банан 1000 штук ящик 100кг" в первом наборе 50-100 штук, и из них 20-30 уже связано со вторым набором.
Есть уже связанная выборка для обучения на 2,7млн записей.

Старый алгоритм (если коротко - количество вхождений буквенных пар и чисел), использует очень жирный индекс (в данный момент боле 450млн записей и рост 5-7млн записей в неделю) и уже проваливается по скорости и ресурсоемкости.

Коллеги подсказали, что мне стоит смотреть на алгоритмы машинного обучения и ИНС. Что вы посоветуете?
  • Вопрос задан
  • 299 просмотров
Пригласить эксперта
Ответы на вопрос 2
dimonchik2013
@dimonchik2013
non progredi est regredi
примерно так и подступайтесь - стройте поиск названия, потом поиск упаковки, потом количества и измерений
название, скорее всего, почти всегда легко
затем в паре с ним легко классиицировать цифру (ящики это или штуки или упаковки)

некоторыми функциями можно выполнить предподготовку ("ц" не входит в ящик и упаковку и т.п.)
дальше определить какие содержат все компоненты , а какие нет

ну и посмотрите на нынешний алгоритм, может, проще его оптимизировать

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

Как все это сделать, лучше не спрашивайте.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы