Имя: Пароль:
1C
1С v8
Алгоритм сравнения
0 organizm
 
20.11.13
20:47
Есть внешний источник данных о спецификациях продукции. Есть уже загруженные данные. Нужно как-то выбрать действия с этим источником: либо сравнить реквизиты с существующими данными, если сильно не отличается, либо загрузить новый справочник с новой точкой актуальности. Подскажите алгоритм, что можно придумать?
1 organizm
 
20.11.13
20:48
Как оценить степень изменения?
2 Лаврентий Берия
 
20.11.13
20:49
если сильно не отличается
^^^^^^^^^^^^^^^^^^^^^^^^^ а если отличается, но несильно? Так, чуть-чуть...
3 ДенисЧ
 
20.11.13
20:49
1. получить реквизиты оттуда
2. Сравнить.
3. Если СильноОтличается() Тогда загрузить()
Иначе
Забить();
КонецЕсли;
4. Наслаждаться.
5. Не забыть переести мне плату за совет
4 Лаврентий Берия
 
20.11.13
20:50
(0) Вообще есть поиск и замена дублирующихся элементов справочников в стандартных, можно посмотреть как там устанавливается степень отличий.
5 organizm
 
20.11.13
20:50
вот именно, БИНГО!!!
, в каких критериях можно оценить?
6 organizm
 
20.11.13
20:51
там сравниваются слова в наименовании, это слишком примитивно.
а здесь надо сравнивать табличные части справочника СпецификацииНоменклатуры
7 ДенисЧ
 
20.11.13
20:51
(5) Например, Если Вопрос("Эти данные СИЛЬНО отличаются?", РежимДиалогаВопрос.ДаНет)<> КодВозвратаДиалога.Да ТОгда
Возврат
конецЕсли
8 organizm
 
20.11.13
20:52
(3) острякам-баянистам, просьба не мозолить себе пальцы....
9 zakidonoff
 
20.11.13
20:58
(6) Так в чём вопрос-то? Не можешь разобрать код типовой обработки?
Там сравниваются только строчные значения реквизитов по принципу относительности...
В принципе, ты можешь выдернуть эту процедуру сравнения, расставить веса приоритетов каждого реквизита, затем суммировать их все с умножением на эти коэффициенты, где для нестроковых будет возможны значения: совпал - не совпал, а для строковых - процент совпадения и принимать решения на основании общего суммарного процента...

Но пользы от такой штуки будет, конечно... На один элемент уйма времени.
10 organizm
 
20.11.13
21:01
я думал какой-н более изощренный научный способ есть, чтобы побыстрее работало
11 organizm
 
20.11.13
21:02
типа вычисления корреляции
12 zakidonoff
 
20.11.13
21:02
(10) Узнаешь - сообщи. А то мне тоже актуально для многих задач -)
13 zakidonoff
 
20.11.13
21:03
(11) Так я тебе принцип корреляций и написал. Только без конкретных формул.
14 organizm
 
20.11.13
21:03
запатентую и тебе продам )))
15 zakidonoff
 
20.11.13
21:05
(14) лучше 1Сникам продай -)
Им тоже должно быть интересно
16 organizm
 
20.11.13
21:06
да причем здесь 1с !?...
17 zakidonoff
 
20.11.13
21:07
(16) Их алгоритмы сопоставления справочников при обменах данными между разными БД оставляют желать лучшего.
18 Михаил Козлов
 
20.11.13
21:08
(11) Насколько сильно коррелируют "папа" и "мама"?
19 Лаврентий Берия
 
20.11.13
21:08
Какая, нахрен, корреляция по ссылкам?! Или там только числа?
20 organizm
 
20.11.13
21:09
ну у ссылок есть уникальность, например - код
21 organizm
 
20.11.13
21:09
(18) сам догадаешься, не маленький
22 zakidonoff
 
20.11.13
21:12
Для универсальности предлагаю ещё замутить анализ нейронными сетями для установки коэффициентов весов -)
23 Mikeware
 
20.11.13
21:12
(19) Звонок по телефону:
- Алло, это Иван Петрович Сидоров?
-- Hет, это Давид Абрамович Рахмансон.
- А это 232-4546?
-- Hет, это 232-4547.
- Hадо же, ошибка в седьмом знаке, а какой эффект!!!!
©
24 organizm
 
20.11.13
21:16
понять бы еще, что это такое и с чем это едят... про их "чудотворно-целебные" свойства кричат на каждом углу, а доступно объяснить никто не может, вывод, никто не знает что это такое.
25 zakidonoff
 
20.11.13
21:18
(23) А это уже семантический анализ )))
Можно отсылать запрос в гугл неделимой части реквизита текстовых полей и производить поиск по топовым ассоциациям результатов выдачи - ассоциативный поиск + пересчитывать веса на предположительно найденные объекты в отличающихся реквизитх с учётом гугл-семантического анализа по данному принципу...
26 organizm
 
20.11.13
21:19
а вот есть в 1с объект "Анализ данных" нельзя это прикрутить ?
27 zakidonoff
 
20.11.13
21:22
(26) это вообще не в ту степь. Там анализируются стат.данные.
28 organizm
 
20.11.13
21:22
там Кластерный анализ, например, берем массив существующий смотрим к чему больше подходит исследуемый элемент, если подходит - хорошо, иначе - добавляем
29 Михаил Козлов
 
20.11.13
21:22
(26) Он про другое.
Вы хотите найти готовое решение для задачи, не пытаясь ее осознать.
30 organizm
 
20.11.13
21:23
(29) может быть, вот я и пытаюсь осознать, я заодно может вы поможете чем, подскажите
31 zakidonoff
 
20.11.13
21:25
(30) Даже если собрать и реализовать всё то, что я тут насоветовал - это уже нетленка будет )))
Дорого (по ресурсам), Долго, но зато ой как Окуенно -)
32 organizm
 
20.11.13
21:26
надоело примитив стряпать, хочется шедевра )))
33 skunk
 
20.11.13
21:30
начни с реализации алгоритмов нечеткого сравнения строк и сравнения строки с шаблоном
34 zakidonoff
 
20.11.13
21:35
(24) Нейронные сети - это просто. Суть в том, что она после обработки большого количества данных запоминает их закономерность путём установки в процессе неё коэффициентов каждого собственного элемента (нейрона). И в последующем может прогнозировать результат нового значения, просто используя эти коэффициенты (веса).
Вот, например:
Есть входные параметры:
1, 2, 3, 4, 5, 6...100
1, 2, 3, 4, 5, 6...100
И есть выходные параметры:
2, 4, 6, 8, 10, 12...200
Сеть будет складывать все эти цифры друг с другом и сравнивать полученный результат с итоговым. Если совпал - истина, коэффициент растёт. Если нет - ложь, коэффициент падает. Т.О. Приоритет получат те связи, которые будут складывать смежные числа колонок друг с другом (подразумевается ведь алгоритм Х1 + Y1 = Z1), и тем самым давать правильный ответ на подачу любой пары чисел.
35 organizm
 
20.11.13
21:39
ну и зачем мне прогноз от этой сети ?
36 zakidonoff
 
20.11.13
22:18
(35) Ты суть не уловил! Там ведь не обязательно сложение может быть - любая линейная закономерность!
Вот, скажем, применительно к поиску:
Сравниваешь ты у номенклатуры реквизиты: код, наименование, валюта, артикул... Какие-то дают истина, какие-то ложь. Как определить, что важнее?
Можно, конечно, самому прикинуть, что совпадение артикула - это важнее, чем совпадение кода, так как код вроде как автоматически создаётся, а артикул общий используется. И прописать коэффициент, что ложь в совпадении по коду = 0,1 лжи в совпадении по артикулу.
Но ведь ты не знаешь, точно ли 0,1? Может, 0,098? или вообще 0,3? Да и запаришься для каждой пары реквизитов ручками их прописывать.
А нейронная сеть, чем дольше будет учиться, тем точнее проставит эти коэффициенты сама, основываясь на статистике общего значения ложь\истина при сравнении коэффициентов.
Всего-то и нужно будет обработке поотвечать на пару тысяч вопросов типа (7) =)