1 / 17

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. Plan prezentacji. Sens tworzenia wyszukiwarek Budowa wyszukiwarki Zasada działania wyszukiwarki Miary jakości wyszukiwania Problemy natury językowej.

akio
Download Presentation

Wyszukiwanie w repozytoriach tekstowych w języku polskim

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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ć?”

  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ęzyka Na 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) Tokenizacja Podział 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) Stemming Trzy 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 nierelewantnedo 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ę.

More Related