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

Daj się złapać w sieć słów - WordNet

A gdyby tak możliwe było wyszukiwanie informacji w oparciu o pojęcia, a nie słowa kluczowe i gdyby tak można było nawigować po morzu informacji łącząc jedne pojęcia z innymi, kojarząc je, zawężać i poszerzać znaczenia, aby dotrzeć do naprawdę istotnej informacji. Okazuje się, że nie jest to aż tak niemożliwe, wystarczy zastosowanie sieci słów, czyli WordNeta w wyszukiwarce.

Na początku lat osiemdziesiątych na Uniwersytecie Princeton w USA rozpoczęto projekt WordNet, który w tamtych czasach był bardzo ambitnym przedsięwzięciem elektronicznego opisu języka angielskiego w określonej formie, o której zaraz napiszę. Dziś liczy ponad 200 tys. pojęć i powstała niezliczona ilość klonów tego projektu dedykowanych dla kolejnych języków narodowych, w tym także dla polskiego, z którego zaczerpnąłem poniższe przykłady.

No dobrze, to teraz trochę o strukturze WordNeta. Całość składa się  z tak zwanych synsetów. Jest to termin w zasadzie nie przetłumaczalny na polski i pochodzi od angielskiego wyrażenia: zbiór synonimów (synonim set, w skrócie synset). Całość opiera się na uniwersalnym założeniu, że język można zamodelować jako zbiór pojęć powiązanych ze sobą relacjami lingwistycznymi. I tak zbiór synonimów określa dane pojęcie. Kolejność tych synonimów świadczy o mocy związania z danym abstrakcyjnym pojęciem, natomiast wartości numeryczne odróżniają sens danego wyrazu o wielu znaczeniach.

Kilka przykładów:

  • Butelka ma dwa znaczenia opisywane prze dwa synsety:
    • butelka 1, butla 1
    • butelka 2, flaszka 3, szkło 2
  • Bal ma trzy synsety:
    • bal 1(zapewne w sensie zabawa, potańcówki)
    • belka 1, bal 2
    • balot 1, bal 3, bela 3

Każdy synset poza zbiorem synonimów może posiadać także inne elementy (np. definicję słownikową pojęcia), a przede wszystkim relacje lingwistyczne. Relacji tych jest bez liku. Do podstawowych należą:

  • synonim, antonim – podobne i przeciwstawne
  • hiperonim, hiponim – pojęcia poszerzające i zawężające (np. sosna jest hiperonimem drzewa, a drzewo jest hiponimem sosny)
  • holonim, meronim – relacja całość – część (np. budynek jest holnimem okna, a okno jest meronimem budynku)

Są jeszcze i inne  relacje oraz można powiedzieć podgatunki tych relacji, ale nie będę się wikłał w wykład lingwistyki. Dość powiedzieć, że WordNet obejmuje rzeczowniki, czasowniki oraz przymiotniki.

Jak widać z powyższego taki formalny opis języka jest uniwersalny i pozwala na zastosowanie dla wielu języków. Istnieją także bardzo przydatne sieci opisujące sysntety wielojęzykowo, bo dane pojęcie jako takie występuje w każdym języku, różni się  tylko jego zapis poprzez inne wyrazy - synonimy.  No i chwała za to, że powstał WordNet dla języka polskiego. Akurat byłem świadkiem jego narodzin i oto można z niego korzystać, dzięki ciężkiej pracy zespołu kierowanego przez  dr Macieja Piaseckiego z Politechniki Wrocławskiej. Poniżej zrzut ekranu z rozwinięcia przykładowego pojęcia „butelka”. Całość dostępna jest pod adresem http://plwordnet.pwr.wroc.pl/wordnet

plWordNet

No to teraz trzeba sobie powiedzieć, jak tego używać w wyszukiwaniu. Całość nie jest aż tak skomplikowana. Widziałem jeden system do wyszukiwania informacji o nazwie Convera RetrievalWare, który wprost korzystał w WordNet w następujący sposób. Otóż, zadając zapytania system sprawdzał, czy człony tego zapytania należą do jakiegoś synsetu. Jeżeli tak, to system podpowiadał jak można dane zapytanie rozwinąć: poszerzyć czy zawęzić, według informacji dostępnej w WordNet. System sam dodawał kolejne człony do zapytania modyfikując je odpowiednio, aby zwrócić wyniki oparte na słowach kluczowych wziętych wprost z relacji WordNetowych. W ten sposób łatwo uzyskać efekt np. zapytania o różne gatunki drzew na raz bez konieczności wymieniania explicite tych wszystkich możliwych gatunków. Fajną rzeczą jest także możliwość wyszukiwania na raz w wielu jękach korzystając z automatycznego tłumaczenia poszczególnych członów zapytania za pomocą skorelowanej wielojęzykowej sieci słów.

Struktura WordNetu jest na tyle uniwersalna, że można sobie wyobrazić sieć słów opartą na synsetach i relacjach nie koniecznie lingwistycznych, tylko dziedzinowych. Na przykład dla chemii, biologii, medycyny, prawa, wojskowości itp. Dzięki temu będzie można nawigować nie tyle po pojęciach języka pospolitego, ile specjalistycznego z danej branży. I tak na przykład będzie możliwe dotarcie do dokumentów opisujących grypę, nawet jeżeli są tam opisane tylko jej objawy jak: katar, gorączka, ból gardła itp.

W implementacji takiej wizji trzeba zatroszczyć się jednak o dwa składniki:

  • normalizacja formy gramatycznej
  • rozstrzyganie znaczenia

Pierwsza rzecz jest z pozoru prosta, wystarczy bowiem sprowadzić wyrazy do gramatycznej formy podstawowej, bo w takiej formie opisane są pojęcia w WordNet. Natomiast mocno wiąże się to ze znacznie trudniejszym drugim punktem. Weźmy na przykład luźno rzucony w tekście wyraz „krach”. Ma on następujące podstawowe formy gramatyczne:

  • krach – np. krach na giełdzie
  • kra – kawałek lodu na rzece
  • kier – kolor w kartach
  • ker – polska nazwa handlowa pewnych kauczuków, lateksów oraz żywic

No i co, jak tu rozwijać pojęcia według różnych relacji? Problematyka rozstrzygania znaczenia jest zagadnieniem samym w sobie i wiele placówek naukowych pracuje nad tym. Wydaje się, że istnieją już jakieś rozwiązania, ale o tym przy innej okazji…

poniedziałek, 11 października 2010, zenonik90

Polecane wpisy

TrackBack
TrackBack w tym blogu jest moderowany. TrackBack URL do wpisu:
Komentarze
Gość: nelis, *.rosehosting.com
2010/10/11 16:45:38
czy projekt google labs o nazwie SETS nie jest wlasnie wynikiem dzialania takiego wordnetu?
labs.google.com/sets

(zdarzylo mi sie go uzyc kilka razy, gdy zapomnialem jakiegos nazwiska, albo tytulu, ale znalem kilka podobnych - i zawsze dzialal bezblednie...)
-
2010/10/12 09:54:16
Nie znałem Google SETS, ale zapoznałem się z nim pobieżnie. Widzę kilka różnic.
a) Google SETS bazuje, jak się zdaje na analizie statystycznej kolokacji, czyli słów będących w jakimś związku ze sobą na podstawie analizy pewnego korpusu tesktu. Jak wiadomo Google posiada ogromny korpus tekstów, więc rezultaty mogą być niezłe. W klasycznym WorNecie natomiast wszysktie relacje weryfikowane są przez ludzi - zawodowych lingwistów. Owszem są narzędzia do budowania takich skojarzeń statystycznie z tekstów (dla j. polskiego wykorzystano korpus IPI PAN), ale koniec końców to lingwiści decydują o relacjach.
b) W Google SETS występuje jeden rodzaj relacji między słowami - takie można powiedzieć skojarzenia. Natomiast w WordNecie relacje są ściśle określone i nazwane dając znacznie większe pole do manewru i zastosowań.
To tak na gorąco.
-
Gość: Ania, *.adsl.inetia.pl
2010/10/12 11:19:59
Mam pytania dotyczące kwestii algorytmicznej realizacji wyszukiwania przy użyciu WordNet'u:

1) Czy do normalizacji formy gramatycznej dobry jest system Morfeusz
Marcina Wolińskiego?
nlp.ipipan.waw.pl/~wolinski/morfeusz/

2) Jak rozstrzygnąć znaczenie danego zapytania? Może przykład jakichś zaawansowane algorytmów?
Moje własne przemyślenia:
a) Rozstrzyganie znaczenia w najbardziej prymitywnej formie może być po
prostu: pokazanie użytkownikowi róznych znaczeń i synsetów, do których
należy słowo z zapytania. A użytkownik sam określi, o co mu chodzi.
Jednak to niezbyt wygodny interfejs.
b) Dodatkowo może być jeszcze jakieś statystyczne przypisywanie danym znaczeniom większego prawdopodobieństwa. Czy są jakieś algorytmy?

3) Najgorszy problem dotyczy tagowanie (znakowanie) tekstu do indeksowania.
Generalnie to sprowadzanie słów do podstawowej formy gramatycznej, ale
wtedy trzeba decydować o ich znaczeniu. Z punktu widzenia lingwisty napisał o tym Marcin Woliński: nlp.ipipan.waw.pl/~wolinski/morfeusz/znakowanie.pdf

I tutaj mam pytanie o algorytmy roztrzygania znaczenia, może jakieś z kontekstem?
-
2010/10/12 11:56:45
ad1) Tak to bardzo dobre źródło. Sprawdziełem je w praniu. Niestety ma tą wadę, że jest zamknięte - to znaczy dodanie haseł do słownika odmian wymaga przekompilowania bilbiolteki, a kod posiada jedynie pan Woliński. Alternatywą jest zastosowanie otwartych słowników odmian. Dostpne są w sieci, tylko trzeba trochę poszukać.

ad2), ad3)
Problem rozstrzygania znaczeń jest skomplikowany. Wiele publikacji naukowych pisano na ten temat. Dla j. poskiego sprawa jest bardziej w tyle. Niesety nie znam, ani nie wudziałem naprawdę dobrze działajacego modułu rozstrzygania znaczeń dla j. polskiego. Jest kilka ośrodków naukowych w Polsce, które zajmują się tą tematyką: Isntytut Informatyki na PW, IPI PAN, Uniwersytet Wrocławski, Katedra Lingwistyki Komputerowej na AGH.
Obiecuję, że kiedyś przyłożę się do tego ważkiego tematu.
    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