Deduplikacja: Różnice pomiędzy wersjami
(Weryfikacja konfliktów) Znacznik: visualeditor |
Znacznik: visualeditor |
||
| Linia 1: | Linia 1: | ||
Jest to mechanizm wyszukiwania w bazie konfliktów między [[Wydarzenia|wydarzeniami]]. W szczególności dotyczy to imprez wstawianych przez automaty oraz konfliktów między różnymi feed-ami. Deduplikacja jest uruchamiana dwa razy dziennie o | Jest to mechanizm wyszukiwania w bazie konfliktów między [[Wydarzenia|wydarzeniami]]. W szczególności dotyczy to imprez wstawianych przez automaty oraz konfliktów między różnymi feed-ami. Deduplikacja jest uruchamiana dwa razy dziennie o o 2:15 oraz 18:15. | ||
== Klasy == | == Klasy == | ||
| Linia 27: | Linia 27: | ||
Aby konflikt nadawał się do automatycznego rozwiązania wydarzenia powiązane z uczestnikami konfliktu muszą spełniać następujące warunki: | Aby konflikt nadawał się do automatycznego rozwiązania wydarzenia powiązane z uczestnikami konfliktu muszą spełniać następujące warunki: | ||
* muszą odbywać się w tej samej lokalizacji | * muszą odbywać się w tej samej lokalizacji | ||
* muszą zaczynać się | * muszą zaczynać się w tym samym momencie | ||
* muszą być wstawione przez różnych użytkowników | * muszą być wstawione przez różnych użytkowników | ||
* muszą być usunięte | * muszą być usunięte | ||
Wersja z 11:44, 21 lip 2017
Jest to mechanizm wyszukiwania w bazie konfliktów między wydarzeniami. W szczególności dotyczy to imprez wstawianych przez automaty oraz konfliktów między różnymi feed-ami. Deduplikacja jest uruchamiana dwa razy dziennie o o 2:15 oraz 18:15.
Klasy
Wydarzenia które zostaną uznane za duplikaty są grupowane za pomocą obiektu "konflikt" (ConflictData). Konflikt posiada licznik uczestników konfliktu, datę startu wydarzenia (jest to data startu najwcześniejszego wydarzenia będącego uczestnikiem konfliktu), informację czy konflikt jest zweryfikowany oraz miejscowość w której odbywają się wydarzenia. Na uczestnika konfliktu (ConflictParticipantData) składa się konflikt, napis zawierający przyczyny zaliczenia wydarzenia do konfliktu, opis typu wydarzenia oraz samo wydarzenie.
Przebieg
Na początku procesu deduplikacji wyciągamy z bazy listę miejscowości w których odbywa się więcej niż jedna przyszła impreza. W kolejnym korku pobierani są wszyscy uczestnicy konfliktów dla których data startu jest w przyszłości.
Następnie iterując się po miejscowościach wyciągamy wydarzenia z danej miejscowości, które były wstawione albo zmodyfikowane nie później niż trzy dni temu (Parametr liczby dni jest zapisany w ustawieniach pod kluczem DEDUPLICATION_DAY_DIFFERENCE) oraz listę uczestników konfliktów z danej miejscowości.
W kolejnym kroku porównujemy ze sobą wydarzenia z obu list, aby wydarzenia mogło uczestniczyć w deduplikacji musi być nie usunięte albo już należeć do jakiegoś konfliktu. W procesie porównujemy:
- nachodzenie na siebie dat trwania
- różnice w długości wydarzenia
- czy odbywają się w jednej lokalizacji
- różnica w czasie startu w minutach
- użytkowników wstawiających
- odległość geometryczną lokalizacji
- odległość nazw liczoną metodą LCS oraz Olivier
- podobieństwo kategorii
Następnie na podstawie porównań obliczamy punkty i jeśli para otrzyma więcej niż 3200 pt to tworzymy konflikt. Parametry do obliczania punktów z poszczególne cechy oraz wartość progowa są kontrolowane przez ustawienia.
Wydarzenie dodawane do konfliktu, wstawione do bazy później niż data poprzedniej deduplikacji zostanie usunięte wcześniej wstawionych wydarzeń nie usuwamy ze względu na fakt że mogły już zostać wyeksportowane.
Automatyczna weryfikacja
Na zakończenie deduplikacji próbujemy automatycznie rozwiązać część konfliktów. W tym celu wyciągamy z bazy listę niezweryfikowanych konfliktów i sprawdzamy czy nadają się to automatycznego rozwiązania.
Aby konflikt nadawał się do automatycznego rozwiązania wydarzenia powiązane z uczestnikami konfliktu muszą spełniać następujące warunki:
- muszą odbywać się w tej samej lokalizacji
- muszą zaczynać się w tym samym momencie
- muszą być wstawione przez różnych użytkowników
- muszą być usunięte
Jeśli te warunki są spełnione to konflikt jest weryfikowany a wydarzenie o najwyższej jakości jest przywracane. Jakość wydarzenia zależy od:
- czy jest uzupełniony organizator
- czy wydarzenie jest polecane
- czy posiada opis oraz obrazek
- czy wydarzenie nie jest Imprezą
Weryfikacja konfliktów
Ogólna zasada: zostawiamy rekordy, które do bazy zostały dodane wcześniej.
1. Jeśli obydwa rekordy w konflikcie są usunięte, to dla par:
- impreza-impreza przywracamy rekord dodany przez EH lub lepszej jakości;
- impreza-koncert przywracamy koncert;
- impreza-pokaz teatralny przywracamy pokaz teatralny.
2. W pozostałych przypadkach:
- Koncerty powinny być w koncertach. Usuwamy więc imprezę i przywracamy koncert, nawet jeśli impreza była dodana wcześniej.
- Festiwale muzyczne wstawiamy tylko w koncertach po jednym rekordzie na dzień. Jeśli zdublowały się koncerty z imprezami, to przywracamy koncerty, imprezy usuwamy. Na koniec trzeba odnaleźć i usunąć imprezę grupującą.
- Pokazy teatralne powinny być w repertuarze teatrów. Usuwamy więc imprezę i przywracamy repertoire'a, nawet jeśli impreza była dodana wcześniej.
- Festiwale teatralne mamy w dwóch feedach - w imprezach po jednym rekordzie na dzień, w repertuarze teatrów po jednym rekordzie na pokaz. Oznacza to, że jeśli zdublował się pokaz teatralny z imprezą będącą dniem festiwalowym, to przywracamy obydwa rekordy.