Deduplikacja: Różnice pomiędzy wersjami

Z Wiki - coigdzie.pl
Przejdź do nawigacji Przejdź do wyszukiwania
Nie podano opisu zmian
Znacznik: visualeditor
(Weryfikacja konfliktów)
Znacznik: visualeditor
Linia 35: Linia 35:
* czy posiada opis oraz obrazek
* czy posiada opis oraz obrazek
* czy wydarzenie nie jest [[Imprezy|Imprezą]]
* czy wydarzenie nie jest [[Imprezy|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.

Wersja z 11:06, 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 18:45 oraz o 2:45.

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ę tego samego dnia
  • 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.