O wszystkim, co wiąże się z technologią wyszukiwania.
Blog > Komentarze do wpisu

Uzdatnianie danych do spożycia

Każdy wie, że podstawą smacznego napoju jest jakość wody. Jeżeli jest ona brudna i zanieczyszczona, to nikt nie weźmie czegoś takiego do ust. Tak samo jest z danymi. Jeżeli są one niespójne i zawierają mnóstwo błędów, to nic z nich nie wynika. Śmietnika nie da się analizować, ani przeszukiwać. Natomiast jest na to sposób. Technologia wyszukiwania może sprawnie dane oczyścić i uzdatnić do wykorzystania!

Ktoś kiedyś wpuścił Wikipedię w wersji anglojęzycznej do silnika wyszukiwania. Kto zgadnie, na ile różnych sposobów można napisać imię i nazwisko znanej gwiazdy pop?

Britney Spears

Jest tu około 400 różnych wariantów. Wniosek? Ludzie robią błędy przy wprowadzaniu danych. Pomyłki bardzo często dotyczą pisowni imion i nazwisk, adresów, nazw instytucji itd. Często przekręcane są pojedyncze litery, lub zamieniane cyfry kodu pocztowego. I jak tu analizować dane, sprawnie wyszukiwać i przeprowadzać obliczenia statystyczne?

Ale to jeszcze nie wszystko, jeżeli chodzi o jakość danych. Bardzo często zmorą administratorów są rożnego rodzaju zmiany jak np. zmiana nazwy ulicy, nazwy własne zawierające jakieś dziwne znaki obcego pochodzenia, różne formaty dat i innych miar, rożne formaty adresów itd.

Na szczęście można wykorzystać technologię wyszukiwania, aby jakoś sobie z tym poradzić. Do dyspozycji mamy całkiem niezły arsenał środków:

  • Kontekstowość (ang. contextual awareness) - Język zapytań pełnotekstowych daje szansę na formułowanie zapytania biorąc pod uwagę otoczenie np. zdanie, paragraf, rekord. W ten sposób możemy sprawdzić na podstawie szerszego kontekstu interpretację danych. Np. jeżeli w jednym paragrafie występują słowa "Paweł Wróblewski" oraz "enterprise search", to zapewne chodzi o mnie; natomiast jeżeli występują słowa "województwo dolnośląskie", to pewnie chodzi o marszałka tego województwa w latach 2004-2006 (sprawdziłem w wikipedii).
  • Dystans (ang. proximity) - Możemy także formułować zapytania w oparciu o odległość danego słowa od innego. Np. jeżeli występuje ciąg znaków ##-### (# - oznacza cyfrę 0-9) w odległości max. dwóch słów od zidentyfikowanej nazwy miejscowości, to z całą pewnością jest to kod pocztowy.
  • Ekstrakcja obiektów (ang. entity extraction) - Wyodrębnianie z tekstu informacji o określonym znaczeniu: imiona i nazwiska osób, nazwy geograficznej, daty, nazwy instytucji, skróty, cytaty itp. Jest to bardzo zaawansowana technika, którą posiadają jedynie najlepsze technologie wyszukiwania zawierające wbudowane algorytmy wykrywania znaczenia w tekście na bazie analizy z wykorzystaniem słowników, rozpoznawanie wzorców i częstotliwości wystąpień.
  • Normalizacja znaków (ang. character normalization) - Wiele języków używa dziwnych znaczków i akcentów. Niektórzy, szczególnie na komputerze je piszą, inni ignorują. Dlatego istnieje potrzeba normalizacji. Np. z francuskiego Molière, Moliere.
  • Synonimy - Ponieważ ludzie używają różnych słów, żeby opisać to samo pojęcie, to warto czasem dysponować słownikiem synonimów, aby można było znormalizować dane. W ten sposób można także znormalizować skróty i inne nazwy własne. Np. USA, U.S.A., United States of America, Unites States - to jedno pojęcie.
  • Dopasowanie rozmyte (ang. fuzzy matching) - To bardzo ważna cecha umożliwiające korektę prostych błędów wynikających z pracy na klawiaturze. Często błędy te polegają na zamianie kolejności liter w tekście. Na moim blogu sporo pewnie tego jest, bo zwykle notki piszę szybko i rzadko je sprawdzam. Natomiast dopasowanie rozmyte bazując na algorytmach odległości edytorskiej (patrz Levenstein), potrafi zwrócić dane z określoną tolerancją na błąd tak, że będziemy w stanie je poprawić. W ten sposób zapewne odkryto mutacje niejakiej panny B.S. w wikiepedii ...
  • Poprawianie pisowni (and. spell checking) - Też bazując na dopasowaniu rozmytym, możemy automatycznie poprawiać błędne dane w oparciu o słownik. System sam próbuje odgadnąć najbardziej podobny wyraz i od razu go poprawić. Jest to popularna funkcjonalność w wyszukiwarkach typu: Czy chodziło Ci o: ...?
  • Maski (ang. wildcard) - To prosta i popularna metoda odkrywania wzorców w tekście. Np. ##?### określa ciąg znaków, gdzie # - oznacza cyfrę 0-9, a ? - dowolny inny znak. W ten sposób jesteśmy w stanie znaleźć wystąpienia w tekście ciągów podejrzanych o to, że są kodem pocztowym.
  • Metadane - Jeżeli mamy do dyspozycji dodatkowe metadane, to można je wykorzystać do poprawy jakości danych. Np. jeżeli w bazie danych są dwa rekordy "Jan Kowalski" oraz "Jan Maria Kowalski", to po sprawdzeniu ich adresu możemy rozstrzygnąć, czy jest to ta sama osoba, czy nie.
  • Analiza strukturalna - Jeżeli dane pochodzą np. z Internetu, to na podstawie ich rozłożenia na stronie możemy określić, czy jest to reklama, czy ciekawy artykuł. W ten sposób możemy uwolnić od śmieci i wciągać, jedynie istotne dane.
  • Wyszukiwanie fonetyczne - Zaawansowana technika, pozwalająca na wyszukiwanie wszystkich wystąpień wyrazów, które brzmią podobnie. Np. Szwarceneger, Schwarzenegger.
  • Lematyzacja - Sprawa podstawowa, czyli wrażliwość na formy gramatyczne, przypadki, liczby, rodzaje itp. 

Zatem posiadamy całkiem niezły zestaw narzędzi, z których można zrobić całkiem zaawansowane rozwiązanie oczyszczania danych w oparciu o analizę lingwistyczną. Co więcej, technologia wyszukiwania już jest przygotowana, także dla języka polskiego i są dostawcy, które oferują podobne rozwiązania. Myślę, że jest to bardzo ciekawe i nowatorskie podejście do zagadnienia MDM, czyli Master Data Management, tak bardzo poszukiwane przez wiele firm i instytucji, którzy chcą mieć BI na wysokim poziomie.

Mówi się, że niewiele jest, a może wcale nie ma dobry rozwiązań MDM. Może trzeba spróbować właśnie w ten sposób?

wtorek, 02 lutego 2010, zenonik90

Polecane wpisy

TrackBack
TrackBack w tym blogu jest moderowany. TrackBack URL do wpisu:
    Paweł Wróblewski

    Jeśli podoba Ci się publikowana treść, rozważ proszę dofinansowanie rozwoju tego bloga.

    Follow zenonik90 on Twitter
góra | "Proście, a będzie wam dane; szukajcie, a znajdziecie; kołaczcie, a otworzą wam." Mt 7,7