Применение нейронных сетей в прикладных решениях на платформе 1С

1. Сергей (ildarovich) 5986 18.07.17 11:20 Сейчас в теме
Прочитал две статьи:
Нейросеть для прогнозирования: универсальная обработка и методика для любой конфигурации. Примеры прогнозирования бизнес процессов http://infostart.ru/public/649065/
Применение нейронных сетей и генетических алгоритмов в прикладных решениях на платформе 1С http://infostart.ru/public/640325/
Статьи интересные и познавательные, но, честно говоря, приведенные в статьях примеры практического применения нейросетей не убедили, мне они показались надуманными.
Поэтому возник вопрос:
знает ли кто про настоящие не выдуманные примеры использования нейросетей в 1С.
Ну или просто поделитесь своими соображениями в каких реальных задачах их еще можно применить.
Вознаграждение за ответ
Показать полностью
Ответы
51. Алексей Кабанов (btr) 22.03.18 16:12 Сейчас в теме
(1) В рамках bigdata таких задач довольно много. Анализ нештатных данных в системе (выявление мошенничество клиентов и сотрудников). Выявление базовых аналитик для разнообразного скоринга (оценка рисков и качества покупателей, сотрудников, кандидатов, партнеров). Выявление наиболее выигрышных комбинаций товаров и услуг (механизм рекомендаций). Обработка результатов маркетинговых мероприятий и прогнозирование будущих результатов. В целом (в умный диджитал маркетинг и его отдельные составляющие - сбор данных их анализ, выявление успешных параметров моделей, автоматическое управление. То же в применении к логистике, то же в применении к управлению процессами, их анализ, оптимизация. То же в управлениями рисками и возможностями.
2. Алексей Соловьев (Silenser) 473 18.07.17 14:29 Сейчас в теме
Можно попробовать контролировать корректность ведения учета в базе, например. Будет себе в фоне выполняться и размышлять на тему подозрительных операций с ее точки зрения.
ildarovich; +1 Ответить
3. Сергей (ildarovich) 5986 18.07.17 14:44 Сейчас в теме
(2) Хорошая идея, занесу в список
4. Сергей Долинин (ImHunter) 20 18.07.17 15:04 Сейчас в теме
Распознавание строкового адреса
5. Сергей (ildarovich) 5986 18.07.17 15:29 Сейчас в теме
(4) Тут непонятно, что будет выходом нейросети. Если у нее будет столько же выходов, сколько адресов в КЛАДР, то такую сеть вряд ли можно построить. Даже улиц слишком много. Разве что решить задачу парсинга: пусть нейросеть решает, какой элемент строки адреса соответствует какому элементу адреса по классификатору.
В общем, еще нужно думать.
6. Сергей Долинин (ImHunter) 20 19.07.17 06:45 Сейчас в теме
(5) Конечно все зависит от постановки задачи.
А насчет выходов - код КЛАДР в отличие от идентификаторов ФИАС имеет вполне прогнозируемую структуру. И КЛАДР есть уже, как справочник. Т.е., обучающий набор можно вполне себе сгенерить. Только надо еще одну НС написать:)) Чтобы она создала такой набор с ошибочками.
7. user user (inf012) 19.07.17 07:12 Сейчас в теме
(6) КЛАДР уже отменяют. Все.
8. Сергей Долинин (ImHunter) 20 19.07.17 07:17 Сейчас в теме
9. Вадим Мориков (vadim1011985) 44 19.07.17 10:36 Сейчас в теме
как варианты
1) Кластеризация данных ( например для учебных заведений - определение успеваемости учеников по их оценкам ) или тот же АВС -анализ.
2) распознованием образов . Уже давно видел одбаботку под 1с по распознаванию текста посредством web-камеры я думаю можно применить для распознавания штрих-кодов без сканера штрих -кода
3) Прогнозирование продаж товаров
10. Сергей Смирнов (protexprotex) 166 21.09.17 12:41 Сейчас в теме
Для 1С - если использовать рекурентные сети типа LSTM, или более простого вида RNN, то при достаточной статистике можно было бы использовать в системе help-помощи для user-ов. 80 % вопросом обычно типа "У меня не проводится документ реализация, пишет - не хватает на остатке, а я смотрю он есть" - обычно выдают список ответов типа - может поступление позже чем реализация (ну, естественно зависит от механизма учета), разные серии в приходе и в реализациии т.д. (а если пользователь будет указывать версию программы, то можно сеть учить применительно к разным платформам) Т.е. при поступлении запроса сеть выдает список наводящих вопросов, и, если user не удовлетворен, то включается уже оператор. Я бы написал такой механизм. Интересно было бы его реализовать - типа бота такого внутри, может, даже и самой 1С .
11. Роман Романов (drogs) 03.12.17 10:14 Сейчас в теме
А нейронная сеть сможет продолжить цепочку простых чисел? И какова минимальная длина цепочки должна быть чтобы она продолжила без ошибок без применения алгоритма про вычислению простого числа?
12. Сергей (ildarovich) 5986 03.12.17 14:30 Сейчас в теме
(11) Думаю, тут очень простой ответ - такой минимальной длины определить нельзя. То есть, чтобы продолжить ряд простых чисел далее числа Х, нужно иметь ряд из простых чисел длины Ф(Х), где Ф - всегда возрастающая функция. Думаю, это довольно просто доказать формально, исходя, например, из доказанной полиноминальной вычислительной сложности проверки числа Х на простоту. Чтобы существовала такая минимальная длина, эта сложность должна быть О(1), что не верно.
Ну а вообще рассуждения на тему границ применимости нейронных сетей интересны и поучительны.
49. Алексей Кабанов (btr) 22.03.18 15:49 Сейчас в теме
50. Алексей Кабанов (btr) 22.03.18 16:01 Сейчас в теме
(11) Занимался пару лет назад этой задачей. Пытался предсказывать паттерны расстояний между простыми числами. Результат отрицательный, простые числа действительно расположены трансцендентно. Знание паттернов в начале числовой оси очень быстро перестает отвечать на вопросы.

Я начал с того, что есть некоторая структура простых чисел https://habrahabr.ru/post/255527/

Условно говоря, мы постепенно уменьшаем количество простых чисел определенной формулой для кандидатов: 2n+1, 6n+-1, 30n+-{1,7,11,13}, 210n+-{1,11,13,17,19,23,29,31,37,41,43,47}, 2310n+-{1,13,17,19,...,1117,1123,1129,1151,1153}

То есть обнаруживается некая регулярность и области симметрии.
Но размер групп растет крайне быстро, и хотя каждая следующая группа содержит повторяющиеся строки предыдущей группы, порядок выбивания из строк чисел, которые являются произведениями p1^n1*p2^n2*p3^n3*... геометрическими паттернами не выявляется. Дискретные логарифмы решают эту проблему, но их вычисление ничуть не проще перебора по эллиптическим кривым.
13. Максим Б (Xershi) 345 03.12.17 14:44 Сейчас в теме +4.82 $m
У меня сейчас стоит задача:
Есть база вопросов с ответами.
Но какой правильный изначально не известно.
Зато есть условие. При генерации 14 вопросов можно получить процент правильных ответов.
Нужно написать алгоритм который вычислит правильные ответы.

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

Как задачка?
16. Дмитрий Воронцов (informa1555) 589 03.12.17 17:05 Сейчас в теме
(13) тут задача просто в нахождении максимума. Тупо перебором можно сделать. Счас компы такие что можно не париться. Как пример: делал одномерный раскрой в 1С, прочитал умных книжек, муравьиные алгоритмы и все такое. В итоге сделал тупо перебором и всё работает так же как на генетическом
CyberCerber; +1 Ответить
22. Сергей Смирнов (protexprotex) 166 03.12.17 19:11 Сейчас в теме
(16) Ну, по моему, тупо перебором не получится. Т.к. нам не известна функция которая делит правильный ответ или не правильный. Автор пишет (поправьте меня если я не прав):
ДанаВыборка из N вопросов и N ответов (типа ключ-значение, где ключ - вопрос, значение - ответ)
Пока (КолПравильныйОтветов <> 100%) Цикл
Берем из массива N : m данных (m < N) типа вопрос - ответ
Для каждого m некая функция (нам не известная (черный ящик)) выдает ответ (типа да/нет - прав. или неправ. сопоставлен ответ)
Далее КолПравильныйОтветов = 100 * (x0*y0 + x1*y1 + ... + xm*ym)/m
где xi - это ответ на i-й вопрос из выборки, а yi - это ответ неизвестной нам функции
x0*y0 = 1 - когда x0 и y0 - да, иначе 0
КонецЦикла;

т.к. нам неизвестен алгоритм отнесения ответа к правильному / не правильному, то мы не можем прогнозировать КолПравильныйОтветов .
Тут как раз и нужно обучение. Например, построить регрессию. AdaBoosting, нейросети, нечеткая логика и т.д.
30. Максим Б (Xershi) 345 03.12.17 19:47 Сейчас в теме
(22) пример.

Допустим есть 50 вопросов.
В выборку попало 14 вопросов в случайном из 50 вопросов порядке.
Далее у нас есть заранее известные ответы.
Допустим в каждом вопросе количество ответов равно 5.
Количество правильных ответов не гарантированно, что в одном экземпляре, но можно для начала ограничиться что только один ответ верный.
После того как мы для каждого вопроса выберем правильный ответ мы можем получить процент правильно отвеченных вопросов. Если из 14 вопросов ответим правильно на 14 будет 100%. Но если допустим только на 7 правильно, то покажет 50%, но не покажет какие вопросы правильно отвечены, а какие нет.
Повторно получить точно такую же выборку сразу же нельзя.
Т.е. алгоритм сгенерирует новые 14 вопросов из 50.

В конечном итоге нужно получить 100% при любой генерации выборки.

Если тупо перебором идти, то как хранить варианты предполагаемых ответов и далее их анализировать?
32. Сергей Смирнов (protexprotex) 166 03.12.17 23:04 Сейчас в теме
(30) Ну что ж, тогда алгоритм такой -

1) каждому вопросу ставим в соответствие коэффициент уверенности.
2) устанавливаем всем коэффициентам 1-ку
3) Далее - пока все коэффициенты меньше 1-цы И это НЕ ПЕРВЫЙ цикл - выполняем пункты с 4:
4) отбираем случайно 14-ть вопросов.
5) получаем процент из них с правильными ответами. Допустим, это будет 30.
6) случайным образом из этих 14 отбираем 7 вопросов.
7) получим процент из них с правильными ответами.
8) далее - два варианта - (если равенство, то заново переформируем выборку из 7-ми элементов)
8.1) процент < 30
8.2) процент > 30
если < 30, то всем этим семи вопросам коэффициент уменьшаем по некой функции потерь. В самом простом случае - на 0.01 или еще как (главное, чтобы было << 1).
если > 30, то всем этим семи вопросам коэффициент увеличиваем по некой функции потерь. В самом простом случае - на 0.01 или еще как (главное, чтобы было << 1).
Перенормируем все коэффициенты - т.е. НовыйКоэфф i-го вопроса = СтарыйКоэфф i-го вопроса/Summa(Все коэфф.);
Переход = на пункт 4.
35. Максим Б (Xershi) 345 03.12.17 23:32 Сейчас в теме
(32) ну примерно так и думал про коэффициенты.
А по поводу выборки, она всегда равна 14 вопросам не больше не меньше.

Но это чисто перебор как и говорили.

Это не нейросеть и не ГА.
37. Сергей Смирнов (protexprotex) 166 03.12.17 23:47 Сейчас в теме
(35) Ну тут тогда даже и не знаю. Проблема в том, что тут становятся все вопросы/ответы равновероятны. Стат. математику Вы тут не примените (гаусово распределение тут и не пахнет). По поводу ГА и нейросеть - это будет работать, только если использовать смысловую нагрузку в вопросах/ответах - и отсюда уже попробовать корреляцию вытянуть для ГА/нейросеть. А если и этого нет, то даже зацепиться не за что. Представьте что у Вас просто 100 кубиков, на каждом кубике 6 граней, пронумерованы от 1 до 6. Кто - то себе где - то в тетради записал для каждого кубика нужный ему номер грани и никому не сказал. Далее он Вас просит - выбирайте случайно 14 кубиков, и я Вам скажу, что из 14 кубиков для 10% выпал правильный ответ при кидании кубика. И потом он Вас просит много раз это сделать и в конце концов научиться точно говорить какой ответ точно сходится с его тетрадью. Сможете?
Вот если можно было менять выборку (как я писал выше), то тут можно получить информацию - типа этакая нормировка.
33. Сергей Смирнов (protexprotex) 166 03.12.17 23:09 Сейчас в теме
(30) Ну, и конечно, надо запоминать вариант правильного ответа для i-го вопроса в неком кеше + макс. процент уверенности для какой - то выборки и обновлять этот вариант при увеличении процента для этого вопроса.
Т.е. если на 3 - ем шаге 7-ой вопрос попал в выборку, и процент по группе 30, то пишем для вопроса вариант ответа.
Если на 9 - ом шаге 7-ой вопроса опять попал в выборку и процент по группе стал 35, то для вопроса меняем процент на 35 и фиксируем новый вариант ответа.
36. Сергей (ildarovich) 5986 03.12.17 23:36 Сейчас в теме
(33) Посмотрел по диагонали ваши предложения. Может, для какой-то другой задачи они и подойдут, но не для этой. Здесь (как я понял) речь об экзамене 1С:Профессионал. Случайным образом задаются 14 вопросов, принимаются ответы и сообщается только процент правильных. Сами себе вопросы выбирать мы не можем. Максим хочет автоматизировать определение правильных ответов, написав бота.
Можно изобретать и изобретать всякие "проценты уверенности", бустинги, функции потерь, но самый быстрый и естественный способ здесь - формула условной вероятности Байеса.
38. Максим Б (Xershi) 345 03.12.17 23:52 Сейчас в теме
43. Сергей Смирнов (protexprotex) 166 04.12.17 00:32 Сейчас в теме
44. Сергей (ildarovich) 5986 04.12.17 01:22 Сейчас в теме
(38) Можно примерно так:
Для каждого вопроса заводится массив вероятностей ответов.
Изначально ответы равновероятны.
Получили тест, решили, узнали процент, определили количество правильных ответов.
Теперь переберем все комбинации на какие вопросы могли быть даны правильные ответы.
Например: 0 - правильных ответов - 1 комбинация; 1 - правильный ответ - 14 комбинаций; 2 - правильных ответа - 91 комбинация; .... 14 правильных ответов - снова одна комбинация.
Считаем вероятность каждой комбинации исходя из заданных вероятностей правильности ВЫБРАННЫХ ответов.
Складываем вероятности всех комбинаций в СУММУ.
Рассчитываем условную вероятность правильности ответа каждого вопроса в тесте как сумму вероятностей комбинаций где этот ответ правильный деленную на СУММУ.
Теперь вероятность ответов на каждый вопрос теста пересчитываем: на выбранный вопрос вероятность принимаем равной условной, остальные вероятности делим на их сумму и умножаем на (1 - условная) ,то есть нормализуем.
И так далее. Пока на все вопросы вероятности ответов не станут иметь единственную единицу, соответствующую правильному ответу.

Сходимость прогнозировать трудно.
Но она максимальна, поскольку из имеющейся информации извлекается все, что можно.

Например, процент 0%. Сразу вычеркиваются все ВЫБРАННЫЕ ответы. Их вероятности этим алгоритмом обнуляются.
Или, процент 100%. Все выбранные ответы получат вероятность, равную единице.

Кстати, перебор комбинаций ответов на тест реализован в виде запроса в статье https://infostart.ru/public/295343/.
45. Сергей (ildarovich) 5986 04.12.17 19:26 Сейчас в теме
+(44) Промоделировал. Работает достаточно хорошо. Если 14 вопросов, у каждого 50 вариантов, у каждого вопроса теста - выбор из 5-ти вариантов ответа, то обучение требует прохождения порядка 2000 тестов. Главное, что энтропия (неопределенность выбора ответов) постоянно практически равномерно снижается.
Прикрепленные файлы:
Xershi; Silenser; +2 Ответить
46. Алексей Соловьев (Silenser) 473 05.12.17 09:32 Сейчас в теме
(45) Если опыт такой системы можно хранить, то его можно и передавать в виде файлов. Иными словами, опыт нейронной сети вполне допустимо применять на сходных конфигурациях, главное правильно обучить НС.
48. Сергей (ildarovich) 5986 22.03.18 15:46 Сейчас в теме
(38)(41)(45) На всякий случай (если еще не обратили внимание) вставлю сюда ссылку на статью "Взлом" теста "1С:Профессионал" методом машинного обучения, где решение описано более подробно и приведена обработка для проверки.
Silenser; Xershi; +2 Ответить
53. Сергей Смирнов (protexprotex) 166 23.03.18 08:59 Сейчас в теме
39. Сергей Смирнов (protexprotex) 166 03.12.17 23:55 Сейчас в теме
(36)
условной вероятности Байеса

Ну так а я о чем? - в 32 посте я писал о том - же:
(только Максим пишет, что размер выборки нельзя менять, а формула условной вер. Байеса позволяет определить вероятность какого-либо события при условии, что произошло другое статистически взаимозависимое с ним событие) - а ему нужно не вычислять вероятность правильного ответа, а чтобы 100% все ответы стали верны (вот что он пишет: Когда процент станет равен 100%, то это будет говорить что на все 14 вопросов в выборке даны правильные ответы. ).
если можно было бы, то вот что я ему предложил:
"
1) каждому вопросу ставим в соответствие коэффициент уверенности.
2) устанавливаем всем коэффициентам 1-ку
3) Далее - пока все коэффициенты меньше 1-цы И это НЕ ПЕРВЫЙ цикл - выполняем пункты с 4:
4) отбираем случайно 14-ть вопросов.
5) получаем процент из них с правильными ответами. Допустим, это будет 30.
6) случайным образом из этих 14 отбираем 7 вопросов.
7) получим процент из них с правильными ответами.
8) далее - два варианта - (если равенство, то заново переформируем выборку из 7-ми элементов)
8.1) процент < 30
8.2) процент > 30
если < 30, то всем этим семи вопросам коэффициент уменьшаем по некой функции потерь. В самом простом случае - на 0.01 или еще как (главное, чтобы было << 1).
если > 30, то всем этим семи вопросам коэффициент увеличиваем по некой функции потерь. В самом простом случае - на 0.01 или еще как (главное, чтобы было << 1).
Перенормируем все коэффициенты - т.е. НовыйКоэфф i-го вопроса = СтарыйКоэфф i-го вопроса/Summa(Все коэфф.);
Переход = на пункт 4.
"
28. Сергей Смирнов (protexprotex) 166 03.12.17 19:30 Сейчас в теме
18. Сергей Смирнов (protexprotex) 166 03.12.17 18:00 Сейчас в теме
(13) Это задача решается методом бустинг. Точнее, Ada-бустинга. Решающее правило можно выбрать обычный "пень". Это решающее правило должно выдавать на каждый вопрос ответ с вероятностью чуть более, чем простое угадывание. Т.е. 0.51 - например. Т.е. на 100 вопросах 51 это правило должно дать правильный ответ, а 49 - пусть ошибается. Таких правил (пней) должно быть много. Ну и далее алгоритмом ada-boost формируется функция ответа F= а0*y + а1*y + а2*y + ... аn*y. Где a - это весовые коэффициенты. Учиться долго, то после обучения получается вероятность ошибки где - то на уровне 10 в минус 6.
19. Максим Б (Xershi) 345 03.12.17 18:39 Сейчас в теме
(18)
Учиться долго
время не важно, главное чтобы результат был гарантированный.

Хотел новые технологии применить.

А нет обычный алгоритм писать?)
24. Сергей Смирнов (protexprotex) 166 03.12.17 19:13 Сейчас в теме
(19) Я правильно понял задачу как в 22 посте?
25. Максим Б (Xershi) 345 03.12.17 19:15 Сейчас в теме
(24) поскольку я не начал еще решать, то сказать не могу на 100%, т.к. предложенный вариант я не реализовал тоже.
26. Сергей Смирнов (protexprotex) 166 03.12.17 19:18 Сейчас в теме
(25) Нет, я в смысле в постановке самой задачи - т.е. дан список вопрос - ответ. И есть некий внешний решатель который резюмирует что ответ на вопрос дан верно или не верно. И нам не известен алгоритм по которому этот решатель выносит свой вердикт. А нам доступно только результат работы этого решателя.
27. Максим Б (Xershi) 345 03.12.17 19:28 Сейчас в теме
(26) нет, дан список вопросов и вариантов ответов. После сдачи ответов получаем процент насколько выборка верна.
29. Сергей Смирнов (protexprotex) 166 03.12.17 19:38 Сейчас в теме
(27) А какая - нибудь корреляция есть между вопросами? Например -
вопрос -
1) какой счет для рублевой кассы? - ответ - 50.01
2) какой счет для кассы рублевой ? - ответ - 50.02
3) какой счет используется для рублевой кассы? - ответ - 50.01

здесь 1 и 3 - будет выдан в процент правильных ответов, а 2 - в процент неправильных ответов

Или вопросы по смыслу никак нельзя сгруппировать?
31. Максим Б (Xershi) 345 03.12.17 19:49 Сейчас в теме
(29) вопросы все разные. На выходе только есть процент правильных ответов. Соответственно, я думал как раз таки нейросеть вбивая неправильные ответы в конце концов добьется 100%.
40. Сергей Смирнов (protexprotex) 166 04.12.17 00:01 Сейчас в теме
(31) Для этого нужно знать на какой вопрос дан неправильный ответ, а на какой вопрос правильный. Если такая информация априори есть, то задача уже решена.
34. Сергей (ildarovich) 5986 03.12.17 23:16 Сейчас в теме
(13) Это не такая уж сложная задача. Решается на основе формулы условной вероятности, то есть байесовским алгоритмом.
Сначала все ответы считаются равновероятными, затем, после каждого теста, вероятности пересчитываются. По формуле условной вероятности.
41. Сергей Смирнов (protexprotex) 166 04.12.17 00:30 Сейчас в теме
(34) Никак понять не могу как тут Байеса прикрутить. Вот смотрите - допустим, 10 -й вопрос попал в выборку, кол-во правильных ответов - 30, потом 10-й вопрос попал опять в выборку. Кол-во правильных ответов - 25. Вопрос - насколько включение/исключение 10-го вопроса из 2-ой выборки увеличит/уменьшит процент правильных ответов для второй выборки? Как посчитать? - мне кажется (т.к. здесь получение процента 25 не следует из того, что раньше был получен процент 35 - т.к. при добавлении во вторую выборку, например не 13, а 18 вопроса процент будет уже не 25, а, возможно, другой), что два эти события можно считать независимыми, а следовательно, теорема Байеса не применима здесь.
42. Сергей Смирнов (protexprotex) 166 04.12.17 00:31 Сейчас в теме
(41) Точнее, не события, а процент правильных ответов
14. Максим Б (Xershi) 345 03.12.17 15:29 Сейчас в теме
Почитал https://infostart.ru/public/640325/. И уже в сомнениях что мне нужно ГА или нейросеть.
23. Сергей Смирнов (protexprotex) 166 03.12.17 19:12 Сейчас в теме
(14) Как говорил один из великих :-) -
Нейросеть - это второй способ решения задачи, а ГА - третий.
15. Дмитрий Воронцов (informa1555) 589 03.12.17 16:52 Сейчас в теме
Если не привязаная к предметной области то например для классификации: набиваешь название нового товара, 1с заполняет группу (вид номенклатуры) и т.д. Т.е .для упрощения ввода Каким образом? Обучается по имеющемуся справочнику по словарям
17. Михаил Калимулин (mkalimulin) 172 03.12.17 17:28 Сейчас в теме
Нейронные сети нужны для решения задач "распознавания". Или, другими словами, для создания моста между "аналогом" и "цифрой". Если же у вас на входе уже "цифра", а экономическая информация именно такова, то какой может быть смысл?
20. Максим Сухов (MaxS) 1075 03.12.17 18:39 Сейчас в теме
Вот бы для инфостарта сделать бот техподдержки, который обучается на ответах техподдержки и разработчика продукта.
А по теме топика интересует помощь программисту 1С. Масса рутины - подготовить тестовую базу, обновить до последнего релиза, протестировать последнее решение, подготовить дистрибутив продукта, отправить на сайт.
21. Сергей Смирнов (protexprotex) 166 03.12.17 18:57 Сейчас в теме
(20) На рекуррентной сети - можно
47. Ростислав Юрьевич (Rico17) 29 12.03.18 20:24 Сейчас в теме
Пример проекта для реализациина платформе 1С:
https://infostart.ru/project/795704/
54. Сергей Долинин (ImHunter) 20 28.03.18 16:59 Сейчас в теме
А еще вот задачка. Нужно распарсить разные Excel-файлы (таблицы). Наборы полей - различны, но содержат несколько обязательных полей. Форматы заголовков - различны (даже у обязательных полей).
Соответственно, нужно выделить данные из обязательных полей. То бишь, на выходе должна быть какая-то единая структура данных, содержащая данные обязательных полей.
Вопрос знатокам.
Как примерно такое можно сделать?
Оставьте свое сообщение