BG Development


Страници: (2) [1] 2   ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> Може ли акъл за record matching?
CPPlus
Публикувано на: 07-01-2017, 22:16
Quote Post



Име: Людмил Григоров
Група: Потребител
Ранг: Почетен член

Мнения: 1080
Регистриран на: 22.06.11



Здравейте!

Имам да правя match на records от два източника (реда на записите не е гарантирано да е един и същ), които в идеалния случай трябва да са еднакви.

Идеята ми е:
1) На всеки запис от двата източника му слепвам полетата и генерирам един hash с md5.
2) Разкарвам от картинката записите, които имат един и същи hash в двете таблици.

На този етап имам два набора от записи, които не се съдържат един в друг. Трудното е да разбера кой запис кой е (и частта, за която ще се радвам на най-много критика).

Мисля си да ползвам алгоритъм, който ми пресмята колко символа трябва да се променят в един string, за да стане равен на втори string. На всеки запис от първия източник ще му слепя текстовите полета и ще ги сравня чрез алгоритъма с всеки запис от втория източник. Този, който изисква най-малко промени, е нашия човек. Сега сигурно ще има няколко съвпадения - тогава ще гледам тази двойка записи, чиято сума от числовите полета е най-близка.

Как бихте подходили вие?

Това мнение е било редактирано от CPPlus на 07-01-2017, 22:19


--------------------
Нищо не е свършило, докато не е свършило! Не се предавай и ще постигнеш целта си!
PMEmail Poster
Top
Bender
Публикувано на: 07-01-2017, 22:36
Quote Post



Име:
Група: Форумен член
Ранг: Почетен член

Мнения: 4993
Регистриран на: 19.06.14



1. Павел устреми поглед към синедриона и каза: мъже братя! Живял съм с най-добра съвест пред Бога до тоя ден.
2. А първосвещеник Анания заповяда на стоещите пред него да го ударят по устата.
3. Тогава Павел му рече: Бог ще тебе да удари, стено варосана; ти седиш, за да ме съдиш по Закона, а против Закона заповядваш да ме бият.
4. А предстоещите рекоха: Божия първосвещеник ли хулиш?
5. Павел отговори: не знаех, братя, че той е първосвещеник; защото писано е: "началника на твоя народ да не злословиш".
6. А когато узна Павел, че една част от тях са садукеи, а другата - фарисеи, извика в синедриона: мъже братя! Аз съм фарисеин, син на фарисеин; за надежда и за възкресение на мъртви ме съдят!
7. Като каза той това, настана разпра между фарисеи и садукеи, и множеството се раздвои.
8. Защото садукеите казват, че няма възкресение, ни Ангел, ни дух; а фарисеите признават и едното и другото.
9. Настана голяма врява; и станаха книжниците от фарисейската страна и се запрепираха, думайки: нищо лошо не намираме у тоя човек; ако пък е говорил нему дух или Ангел, да се не противим Богу.
10. И понеже стана голяма смутня, хилядникът, уплашен, да не би да разкъсат Павла, заповяда на войниците да слязат и да го грабнат измежду тях и отведат в стана.
11. През нощта яви му се Господ и рече: дерзай, Павле! И както свидетелствува за Мене и Иерусалим, тъй трябва да свидетелствуваш и в Рим.
12. А когато се съмна, някои от иудеите направиха заговор, заклеха се и си рекоха да не ядат, ни да пият, докле не убият Павла.
13. Тия, които сториха това съзаклятие, бяха повече от четирийсет души.
14. Те дойдоха при първосвещениците и старейшините и рекоха: с клетва се заклехме нищо да не хапнем, докато не убием Павла.
15. Затова вие със синедриона явете сега на хилядника утре да го доведе долу пред вас, уж че искате да разгледате по-точно делото му; а ние, преди да наближи той, сме готови да го убием.
16. Като чу за тая засада, Павловият сестриник отиде, влезе в стана и обади на Павла.
17. А Павел повика един стотник и му рече: заведи тоя момък при хилядника, защото има да му обади нещо.
18. И той го взе, заведе го при хилядника и каза: затворникът Павел ме повика и помоли да доведа тоя момък при тебе, защото имал да ти каже нещо.
19. Хилядникът го хвана за ръка, оттегли се с него настрана и питаше: какво има да ми обадиш?
20. А той каза: иудеите се сговорили да те молят утре да отведеш долу Павла пред синедриона, уж че искат по-точно да разпитат нещо по делото му.
21. Ала ти не им вярвай; защото го причакват четирийсет и повече души от тях, които са се заклели да не ядат и да не пият, докле го не убият; и сега са готови, чакат само да им обещаеш.
22. Тогава хилядникът отпрати момъка, като му поръча: никому не казвай, че ми си обадил това.
23. След това повика двама стотника и рече: пригответе ми двеста пеши войници, седемдесет конници и двеста стрелци, които да тръгнат за Кесария от третия час нощес;
24. пригответе и добичета, за да качат на тях Павла и да го отведат безопасно до управителя Феликса.
25. Написа и писмо с това съдържание:
26. Клавдий Лисий достопочтеному управителю Феликсу праща поздрав.
27. Тогова човека бяха хванали иудеите и щяха да го убият; аз се явих с войска и го отнех, понеже се научих, че е римски гражданин.
28. И като исках да узная причината, поради която го обвиняваха, изведох го пред синедриона им
29. и намерих, че го обвиняват по въпроси от техния закон, но че няма никаква вина, за която той би заслужил смърт или окови.
30. И понеже ми бе обадено, че иудеите замислят лошо против тоя човек, аз го пратих веднага при тебе, като заръчах и на обвинителите да кажат пред тебе, каквото имат против него. Здравей!
31. И тъй, войниците, според както им бе заповядано, взеха Павла и го отведоха нощя в Антипатрида.
32. А на другия ден се върнаха в стана, като оставиха конниците да идат с него.
33. Тия, като влязоха в Кесария и предадоха на управителя писмото, представиха му и Павла.
34. Управителят прочете писмото и попита, от коя област е той и, като узна, че е от Киликия, рече:
35. ще те изслушам, кога дойдат и твоите обвинители. И заповяда да го държат под стража в преторията Иродова.



Това мнение е било редактирано от Bender на 07-01-2018, 19:36
PM
Top
CPPlus
Публикувано на: 07-01-2017, 22:59
Quote Post



Име: Людмил Григоров
Група: Потребител
Ранг: Почетен член

Мнения: 1080
Регистриран на: 22.06.11



Имам две таблици, които трябва да са едни и същи, но не са (някои записи са изпочупени). Записите са И разбъркани. Тая комбинация е много кофти, защото не знаеш кой запис кой е, че да кажеш какво му не е наред. Търся критерий, по който да познавам кой запис кой е. За сега първо гледам колко близки са string полетата им, а след това гледам колко са близки и числовите им полета. Можеш ли да ми изкритикуваш логиката, която съм измайсторил до сега?


--------------------
Нищо не е свършило, докато не е свършило! Не се предавай и ще постигнеш целта си!
PMEmail Poster
Top
ivan84
Публикувано на: 07-01-2017, 23:07
Quote Post



Име:
Група: Форумен член
Ранг: Почетен член

Мнения: 8170
Регистриран на: 01.04.11



Ако е толкова важно да се знаят съвпадащите записи, то би следвало да има уникални идентификатори. В потивен случай е по-удачно да търсиш логика с която да обработваш само пълните съвпадения тъй като всичко останало си е чиста проба налучкване.
PMEmail Poster
Top
CPPlus
Публикувано на: 07-01-2017, 23:12
Quote Post



Име: Людмил Григоров
Група: Потребител
Ранг: Почетен член

Мнения: 1080
Регистриран на: 22.06.11



Де да имаше идентификатори... icon_lol.gif . Знам, че е налучкване, но такова нещо се иска. Въпроса е това ли е най-ефикасният начин, независимо от естеството на проблема?

Edit: има somewhat подреденост на записите, но не е 100%това гаранцията. Това ми звучи като нещо, което може да се използва?

Това мнение е било редактирано от CPPlus на 07-01-2017, 23:14


--------------------
Нищо не е свършило, докато не е свършило! Не се предавай и ще постигнеш целта си!
PMEmail Poster
Top
ivan84
Публикувано на: 07-01-2017, 23:16
Quote Post



Име:
Група: Форумен член
Ранг: Почетен член

Мнения: 8170
Регистриран на: 01.04.11



Ми зависи какво представляват данните. Ако те са контролни стойности измервани от независими източници е логично да търсиш най-близките. Но остава въпросът, няма ли поле по което да може да се подредят хронологично тия данни.
PMEmail Poster
Top
CPPlus
Публикувано на: 07-01-2017, 23:21
Quote Post



Име: Людмил Григоров
Група: Потребител
Ранг: Почетен член

Мнения: 1080
Регистриран на: 22.06.11



Eдни и същи entity-та описват - да. До сега подреждах по всички полета и това работи в някаква степен. Ако всичко е ОК ще се види (тогава ще се подредят по еднакъв начин). Сега ако има разлики, то колкото по надясно са в колоните, толкова по-малко се чупи сравнението, но ако има разлика в първата колона... заминава icon_lol.gif. Иначе няма такава колона, по която като подредиш и да стане работата. Пък и става въпрос за автоматизация на около 50 такива таблици, които се поправят непрекъснато, и не е много сигурно това с конкретната колона, дори и да го имаше, тъй като тя може да бъде променена на следващото сравнение.

Това мнение е било редактирано от CPPlus на 07-01-2017, 23:22


--------------------
Нищо не е свършило, докато не е свършило! Не се предавай и ще постигнеш целта си!
PMEmail Poster
Top
ivan84
Публикувано на: 07-01-2017, 23:23
Quote Post



Име:
Група: Форумен член
Ранг: Почетен член

Мнения: 8170
Регистриран на: 01.04.11



Е добре де - тия данни нали описват някакво моментно състояние на нещо. Състоянието го имаш, а моментът към който се отнася?
PMEmail Poster
Top
Stilgar
Публикувано на: 07-01-2017, 23:30
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 11656
Регистриран на: 13.05.08



Колко горе-долу са записите дето не се напасват идеално?


--------------------
Опитахме се да го направим както трябва, но стана както винаги.
PMEmail PosterUsers Website
Top
CPPlus
Публикувано на: 07-01-2017, 23:33
Quote Post



Име: Людмил Григоров
Група: Потребител
Ранг: Почетен член

Мнения: 1080
Регистриран на: 22.06.11



@ivan
user posted image
Eто един такъв chunk. Всички дати са еднакви..

@Stilgar
Варират от 0 до хиляди в зависимост от файловете. Най-често са в най-долната част на стотиците.

Това мнение е било редактирано от CPPlus на 07-01-2017, 23:36


--------------------
Нищо не е свършило, докато не е свършило! Не се предавай и ще постигнеш целта си!
PMEmail Poster
Top
0 потребители преглеждат тази тема в момента (0 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (2) [1] 2  Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2015 | BG Development | All Rights Reserved
RSS 2.0