Wyszukiwanie w repozytoriach tekstowych w języku polskim

17
Wyszukiwanie w repozytoriach tekstowych w języku polskim inż. Maciej Klubiński Opiekun pracy: prof. dr hab. Henryk Rybiński

description

Wyszukiwanie w repozytoriach tekstowych w języku polskim. inż. Maciej Klubiński Opiekun pracy: prof. dr hab. Henryk Rybiński. Plan prezentacji. Sens tworzenia wyszukiwarek Budowa wyszukiwarki Zasada działania wyszukiwarki Miary jakości wyszukiwania Problemy natury językowej. - PowerPoint PPT Presentation

Transcript of Wyszukiwanie w repozytoriach tekstowych w języku polskim

Page 1: Wyszukiwanie w repozytoriach tekstowych w języku polskim

Wyszukiwanie w repozytoriach

tekstowych w języku polskim

inż. Maciej Klubiński

Opiekun pracy: prof. dr hab. Henryk Rybiński

Page 2: Wyszukiwanie w repozytoriach tekstowych w języku polskim

2

Plan prezentacji Sens tworzenia wyszukiwarek Budowa wyszukiwarki Zasada działania wyszukiwarki Miary jakości wyszukiwania Problemy natury językowej

Page 3: Wyszukiwanie w repozytoriach tekstowych w języku polskim

3

Po co nam wyszukiwarki? Eksplozja informacyjna Internet jako najpopularniejszy kanał

dystrybucji informacji Większość ludzkiej wiedzy zapisana jest w

postaci dokumentów w języku naturalnym „Potrafimy liczyć znacznie szybciej niż na

początku XX wieku, ale czy potrafimy szybciej czytać?”1970 1980 1990 2000

1

10

100

1000

10000

100000

Number of bookspublished weekly

Number of articlespublished monthly

Page 4: Wyszukiwanie w repozytoriach tekstowych w języku polskim

4

Budowa wyszukiwarki tułów -> repozytorium dokumentów,

korpusy, zbiory danych, sieć WWW serce -> indekser głowa -> moduł budowy zapytań mózg -> moduł wyszukujący

Page 5: Wyszukiwanie w repozytoriach tekstowych w języku polskim

5

Jak zbudować indeks? (1/7)Rozpoznanie językaNa podstawie: unikalnych dla danego języka ciągów znaków (np. eux -

Francuski, cchi - Włoski, der - Niemiecki) występowanie określonych znaków np. ü - Niemiecki, ć - Polski wykorzystując cechy składniowe sylab danego języka wykorzystanie rozkładu prawdopodobieństwa

występowania liter oraz dłuższych ciągów znaków (n-gramów)

porównywanie dokumentów ze słowami ze stop-listy

Page 6: Wyszukiwanie w repozytoriach tekstowych w języku polskim

6

Jak zbudować indeks? (2/7)TokenizacjaPodział tekstu na: akapity zdania -> język chiński, znaki interpunkcyjne wyrażenia (związki frazeologiczne) słowa –> skróty, apostrof, myślnik wybór termów – Prawo Zipfa

Jeżeli weźmiemy wystarczający zbiór dokumentów z typowymi angielskimi słowami i posortujemy te słowa według częstości występowania, to iloczyn częstości występowania słowa i numeru w tym uporządkowaniu będzie stały.

Page 7: Wyszukiwanie w repozytoriach tekstowych w języku polskim

7

Jak zbudować indeks? (3/7)Usunięcie STOP WORDS – 30% wszystkich słów a, an, and, are, as, at, be, but, by, for, if, in, into, is, it, no, not, of, on, or, such,

that, the, their, then, there, these, they, this, to, was, will, with

a, aby, ale, bardziej, bardzo, bez, bo, bowiem, był, była, było, były, będzie, co, czy, czyli, dla, dlatego, do, gdy, gdzie, go, i, ich, im, innych, iż, jak, jako, jednak, jego, jej, jest, jeszcze, jeśli, już, kiedy, kilka, która, które, którego, której, który, których, którym, którzy, lub, ma, mi, między, mnie, mogą, może, można, na, nad, nam, nas, naszego, naszych, nawet, nich, nie, nim, niż, o, od, oraz, po, pod, poza, przed, przede, przez, przy, również, się, sobie, swoje, są, ta, tak, takie, także, tam, te, tego, tej, ten, też, to, tu, tych, tylko, tym, u, w, we, wiele, wielu, więc, wszystkich, wszystkim, wszystko, właśnie, z, za, zawsze, ze, że

Page 8: Wyszukiwanie w repozytoriach tekstowych w języku polskim

8

Jak zbudować indeks? (4/7)StemmingTrzy podejścia: stemmer algorytmiczny

Pierwszy skuteczny algorytm dla angielskiego - Lovin’s stemmer (1968) – stemmer jednoprzebiegowy, wykorzystujący tablicę 250 możliwych podstawień końcówek oraz dodatkowy etap postprocessingu – był projektowany jako uniwersalny

Obecnie najpopularniejszy stemmer – Porter’s stemmer, specjalizowany dla IR, wieloprzebiegowy, nie generuje poprawnych językowo rdzeni

Inne – Krovets (1993) – trójprzebiegowy stemmer wyłącznie fleksyjny, Dawson (1974) – poprawiona wersja stemmera Lovins, zawiera tablicę 1200 podstawień, Paice/Husk (1990) – stemmer oparty na dopasowywaniu reguł, nie ma ograniczenia na liczbę kroków podstawień

Page 9: Wyszukiwanie w repozytoriach tekstowych w języku polskim

9

Jak zbudować indeks? (5/7)Stemming stemmer słownikowy

wykorzystuje słownik zawierający znaczną liczbę różnych form gramatycznych poszczególnych słów oraz odpowiadającej każdej z nich formę podstawową (lemat lub rdzeń)

bezbłędne znajdywanie rdzeni słów zawartych w słowniku brak wyników w przypadku, gdy słowa w słowniku brakuje konieczność przechowywania i przeszukiwania słownika o

dużych rozmiarach stemmer mieszany (hybrydowy)

dla słów występujących w słowniku – stemmer słownikowy dla słów spoza słownika – stemmer algorytmiczny i próba

dopasowania rdzenia do rdzeni zesłownikowanych w przypadku poprawnej klasyfikacji – uzupełnienie słownika

Page 10: Wyszukiwanie w repozytoriach tekstowych w języku polskim

10

Jak zbudować indeks? (6/7)Usuwanie synonimów - użycie tezaurusa

Zastąpienie terminów bardziej ogólnymi - np. pies -> ssak (użycie ontologii)

Rozbijanie zlepków wyrazowych - np. nazw chemicznych, związków frazeologicznych

Obliczanie wag dla słów kluczowych - np. miejsce wystąpienia słowa w tytule, streszczeniu, bibliografii

Page 11: Wyszukiwanie w repozytoriach tekstowych w języku polskim

11

Jak zbudować indeks? (7/7)Tworzenie indeksu o czym trzeba pamiętać? – częste przeszukiwanie, rozmiar

fizyczny, szybki i bezpośredni dostęp co zapamiętać? – id dokumentu, klucz (słowo, leksem,

rdzeń), położenie w tekście, położenie fizyczne (adres URL), częstość występowania słowa, słowo po inwersji, …

jak zorganizować? – budowa logiczna (podział na rekordy, segmentacja itp.), sortowanie alfabetyczne (statystyczne, częstotliwościowe), optymalizacja, kompresja

jak przeszukiwać? – zależnie od organizacji danych w indeksie, byle szybko i wydajnie

Page 12: Wyszukiwanie w repozytoriach tekstowych w języku polskim

12

Jak szukać? po słowach kluczowych Boolowskie (zbiory odwrócone) koncepcyjne (tezaurus) szukanie frazy szukanie z określeniem odległości pomiędzy słowami szukanie z zastosowaniem masek szukanie dokumentów podobnych do już znalezionych szukanie dokumentów po statystykach odwiedzin inne

Page 13: Wyszukiwanie w repozytoriach tekstowych w języku polskim

13

Miary jakości wyszukiwania Legenda

ds - znalezione dokumenty przez system

dr - dokumenty w bazie uznane za relewantne (arbitralnie) DB - liczebność bazy danych

precyzja – wyszukane relewantne do znalezionych

(|ds dr|) / |ds| odzysk – wyszukane relewantne do relewantnych

(|ds dr|) / |dr| dokładność – uznane za nierelewantne do wszystkich

(|ds dr| + |DB – (ds dr )|) / |DB| szum – wyszukane nierelewantne do wszystkich nierelewantnych

|ds - dr| / |DB –dr|

Page 14: Wyszukiwanie w repozytoriach tekstowych w języku polskim

14

Problemy Fleksja – np. umią zamiast umieją

Pojęcia wielowyrazowe – np. kwas dezoksyrybonukleinowy

Homonimia – np. ranny (zraniony, o poranku), zamek (budowla, mechanizm w drzwiach, suwak)

Synonimia – np. problem, zagadnienie, zadanie

Niezgodność semantyki słów z semantyką tekstu (brak analizy składniowej i semantycznej) – np. potoczne określenie policjanta i radiowozu, „zakręcony jak słoik na zimę”

Błędy ortograficzne Swobodna składnia – np. Wczoraj kupiłem auto, Kupiłem wczoraj

auto, Kupiłem auto wczoraj

Page 15: Wyszukiwanie w repozytoriach tekstowych w języku polskim

15

Pytania?

Dziękuję za uwagę.

Page 16: Wyszukiwanie w repozytoriach tekstowych w języku polskim

16

Co robię w ramach pracy mgr?

używam Apache Lucene buduję polski stemmer hybrydowy implementuję moduł do analizy tekstów w

języku polskim przeprowadzam testy dla różnych

rozwiązań postać i zawartość indeksu modyfikacja zapytań wykorzystanie słownika w stemmingu

Page 17: Wyszukiwanie w repozytoriach tekstowych w języku polskim

17

Pytania?

Dziękuję za uwagę.