Porównywanie szkół z dwóch źródeł - czy to zadanie dla Pythona?

0

Cześć, jestem na samym początku przygody z Pythonem i ciekaw jestem, czy za pomocą tego narzędzia można wykonać poniższe zadanie:

  • mam bazę polskich szkół z ministerstwa edukacji z takimi danymi: nazwa szkoły, ulica, miasto, kod pocztowy oraz ID

  • mam drugą bazę 5000 rekordów od nauczycieli, gdzie ręcznie wpisują nazwę i adres szkoły, jednakże nazwy i adresy często są wpisywane skrótowo.

Muszę przyporządkować ID szkoły z bazy ministerialnej do szkół od nauczycieli. Część szkół wyszukuję po adresie w excelu, ale w większości mam samą, skróconą nazwę od nauczyciela i muszę ręcznie szukać. Czy istnieje jakiś sposób aby zautomatyzować dopasowywanie ID z bazy ministerialnej do bazy, którą uzupełniają nauczyciele?

Przykład:

od nauczyciela:
SP2 w Jarocinie, Jarocin

z bazy ministerialnej:
SZKOŁA PODSTAWOWA NR 2 IM. KRÓLOWEJ JADWIGI W JAROCINIE Jarocin ALEJA NIEPODLEGŁOŚCI 8

Przykład 2:

od nauczyciela:
NSP Bachorzew

z bazy ministerialnej:
NIEPUBLICZNA SZKOŁA PODSTAWOWA W BACHORZEWIE Bachorzew SZKOLNA 8

W załączniku wycinek z dwóch baz. Zaznaczę, że raz w miesiącu dostaję nową bazę po 5-10 tyś rekordów i jest to czasochłonne...baza_szkol.xlsx
Będę wdzięczny za podpowiedzi.

5

Takie rzeczy to tylko sztuczna inteligencja :) A tak na poważnie to problem nie jest trywialny, ponieważ komputer nie potrafi kojarzyć tak jak człowiek. Na pewno można spróbować pociąć na poszczególne ciągi to, co masz z tej bazy od nauczycieli i wyszukiwać do tego szkoły w bazie ministerialnej. Ale potem będzie trzeba oprogramować jakieś przypadki szczególne jak np w jednej miejscowości będzie więcej niż jedna szkoła a system nie będzie w stanie przypasować jednego do drugiego. Można też nauczyć system przyporządkowywać na przyszłość, czyli np w jakiejś bazie zapisać że NSP Bachorzew to NIEPUBLICZNA SZKOŁA PODSTAWOWA W BACHORZEWIE Bachorzew SZKOLNA 8 i jak będzie przyporządkowywał w następnym miesięcy to użyje tego powiązania. Warunkiem jest to, że za każdym razem ktoś to w pisze w ten sam sposób. jest trochę sposobów, żeby ugryźć ten temat i Python wydaje się dobrym wyborem.
Proponowałbym próbować rozwiązać problem u źródła, czyli dać nauczycielom jakiś system/formularza, żeby wybierali szkołę z listy, a nie pisali co im tam do głowy przyjdzie.

3

Ja bym to zrobił tak:

  • jeśli się da to poparować adresami
  • zamienić "SP" na "szkoła podstawowa" itp.
  • miasto jako podstawa do parowania. W sensie - najpierw szukasz miast z Jarocina, potem system stara się coś z nich poskładać.

Ale tak czy siak, raczej samodzielnie to działać nie będzie:

  • nawet jak system coś spasuje, to i tak będzie to wymagać ręcznego potwierdzenia
  • pewnie dużej części nie rozgryzie - więc dostaniesz pogrupowane miastami szkoły, które sobie ręcznie zepniesz. Dobre jest to, że jak dostaniesz 3-10 szkół z jednego miasta (wyciągnięte z całości) to ich spięcie zajmie Ci dosłownie chwilę.
1

IMHO najważniejsze jest ostatnie zdanie @UglyMan. Kto wymyślił ten pieprzony system? :D Jakaś emerytowana nauczycielka zawsze może wpisać pełno literówek i wtedy człowiek ledwo jest w stanie to rozszyfrować. :D Jeśli jednak nie masz na to żadnego wpływu to trudno. Byle by system pamiętał dopasowania z wcześniejszych miesięcy.

0

Dziękuję Wam za podpowiedzi. Planujemy w firmie wprowadzenie wyboru szkoły z listy, ale i tak sporo nauczycieli uczy też w szkołach językowych lub prywatnych firmach, a tu nie mamy bazy. Zajmuję się tym od długiego czasu i mam wiele wcześniejszych baz z przypisanym już iD, więc zbiorę to do kupy i pewnie sporo stąd się uda przypisać id.

Liczyłem, że uda się coś wykombinować na wzrór wyszukiwarki google:) Wklejasz SP 145 Łódź i masz : )

Dzięki!

0

Liczyłem, że uda się coś wykombinować na wzrór wyszukiwarki google:) Wklejasz SP 145 Łódź i masz : )

W sumie to dałoby się odpytać Googla o każdy z adresów i uznać że ten z Googla wie lepiej, ale to i tak loteria :D

0

Też o tym pomyślałem, ale Google błędnie już wyszukał przy pierwszym przykładzie "SP 2 w Jarocinie". Znalazł "Zespół Szkól Ponadgimnazjalnych w Jarocinie". Adresy tych szkół nie zgadzają się.

W tym "zadaniu" nie ma dobrej rady,
Najlepiej poprosić/wymóc poprawne tworzenie raportów od nauczycieli. Może jakaś prosta aplikacja webowa ?.
Jak się nie da to zawsze można zbudować swój słownik konwersji. Wydaje mi się, że jak już ktoś "źle" wpisuje to już tak będzie wpisywał.
Można wykorzystać miarę podobieństwa przy porównywaniu miejsc, można się posiłkować i tym Google ( jednak coś tam trafi ) , może ML itd..
Widać, że jedna metoda to za mało.

Ja sam wielokrotnie miałem za zadanie łączenie dwóch baz adresowych w jedną bazę. Czego bym nie zrobił/wymyślił to i tak skuteczność była na poziomie ok 70%.
Ludzie wpisywali sobie adresy jak tam "wiatr zawiał" :)
Oczywiście były i przypadki gdzie było powyżej 95%, ale w tym systemach dbali o porządek

1 użytkowników online, w tym zalogowanych: 0, gości: 1