Wyszukiwanie w repozytoriach tekstowych w języku polskim
description
Transcript of 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
2
Plan prezentacji Sens tworzenia wyszukiwarek Budowa wyszukiwarki Zasada działania wyszukiwarki Miary jakości wyszukiwania Problemy natury językowej
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
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
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
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.
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
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ń
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
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
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
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
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|
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
15
Pytania?
Dziękuję za uwagę.
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
17
Pytania?
Dziękuję za uwagę.