Wstępne przetwarzanie tekstów jest silnie uzależnione od języka tekstu (jednak można wyróżnić standardowe etapy)
document accents, spacing, etc. stopwords noun groups stemming automatic or manual indexing structure recognition structure full text index terms
wyodrębnienie jednostek leksykalnych stanowiących potencjalnie słowa w języku naturalnym lub inne hasła, które mogą być przydatne z punktu widzenia wyszukiwania
wyodrębnienie jednostek leksykalnych stanowiących potencjalnie słowa w języku naturalnym lub inne hasła, które mogą być przydatne z punktu widzenia wyszukiwania
When Google encounters a hyphen ( ) in a query term, e.g., [ e-mail ], it searches for: the term with the hyphen, e.g., e-mail the term without the hyphen, e.g., email the term with the hyphen replaced by a space, e.g., e mail [ e-mail ] matches e-mail, e mail, and email [ e mail ] matches e-mail and e mail http://www.googleguide.com/favorite_results.html
http://www.webpageanalyse.com/dev/stopwords/pl https://pl.wikipedia.org/wiki/wikipedia:stopwords
http://www.webpageanalyse.com/dev/stopwords/pl https://pl.wikipedia.org/wiki/wikipedia:stopwords
Ściśle mówiąc: Lematyzacja odkrywa formy podstawowe (słownikowe) wyrazów Stemming (hasłowanie) wyodrębnia rdzenie wyrazów
Ściśle mówiąc: Lematyzacja odkrywa formy podstawowe (słownikowe) wyrazów Stemming (hasłowanie) wyodrębnia rdzenie wyrazów Wiele stemmerów nie zapewnia tego, iż tworzone przez nie ciągi liter to rzeczywiste rdzenie wyrazów (lecz hasła) Algorytmy hasłowania w odróżnieniu od lematyzacji nie zwracają (zazwyczaj) informacji gramatycznej i przyjmują na wejściu tylko pojedyncze wyrazy. Mogą natomiast zwracać więcej niż jeden stem i zazwyczaj nie są oparte o słowniki
Podział: Stemmery specjalizowane do zastosowań lingwistycznych (generowane rdzenie powinny rzeczywiście odpowiadać rdzeniom w rozumieniu lingwistyki) Stemmery specjalizowane do zastosowań IR (szybkość działania jest zwykle cechą kluczową)
W zastosowaniach IR wystarczy by dla wszystkich wyrazów należących do danego leksemu otrzymać taki sam rdzeń, a jeszcze lepiej: sprowadzić formy wyrazowe pochodzące od jednego leksemu do tego samego hasła, oraz oddzielić formy wyrazowe pochodzących od różnych leksemów przez sprowadzanie do różnych haseł, przy zachowaniu wydajnego (szybkiego) przetwarzania bardzo dużych zbiorów tekstowych.
W zastosowaniach IR zamiana wszystkich wyrazów w kolekcji na rdzenie (faza wstępnego przetwarzania) zamiana wyrazów zapytania użytkownika na rdzenie (faza wyszukiwania)
W języku polskim, zależnie od części mowy, można wyróżnić odmianę przez:
W języku polskim, zależnie od części mowy, można wyróżnić odmianę przez: przypadki (tj. mianownik, dopełniacz, celownik, biernik, narzędnik, miejscownik i wołacz), rodzaje (męski, żeński, nijaki, (nie)/męskoosobowy), liczby (pojedynczą i mnogą), osoby (pierwszą: ja, my; drugą: ty, wy; trzecią: on, ona, ono, oni, one), czasy (przeszły, teraźniejszy, przyszły), tryby (oznajmujący, przypuszczający, rozkazujący), strony (czynną, bierną, zwrotną).
Homonimia występuje na różnych poziomach: morfologii (np. dam może być formą czasownika dać lub dopełniaczem liczby mnogiej rzeczownika dama ), słownictwa (np. rola, która może być aktorską lub uprawną), składni (np. zdrada przyjaciela może oznaczać zarówno fakt, że przyjaciel zdradził, jak i to, że został zdradzony).
Homonimia występuje na różnych poziomach: morfologii (np. dam może być formą czasownika dać lub dopełniaczem liczby mnogiej rzeczownika dama ), słownictwa (np. rola, która może być aktorską lub uprawną), składni (np. zdrada przyjaciela może oznaczać zarówno fakt, że przyjaciel zdradził, jak i to, że został zdradzony). Polisemia dotyczy wieloznaczności wielu znaczeń tego samego leksemu, a nie różnych leksemów ( zamek w drzwiach, a w spodniach)
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 Najpopularniejszy stemmer Porter s stemmer (1971), 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ń, Lancaster aka Paice/Husk (1990) stemmer oparty na dopasowywaniu reguł, nie ma ograniczenia na liczbę kroków podstawień
Lovin s należy do algorytmów zamiany końcówek (ang. suffix stripping algorithms) dwuetapowy Pierwszy etap to dopasowanie najdłuższych z 294 końcówek i sprawdzenie warunków przejścia (było ich 29) do drugiego etapu dla tych końcówek pojedynczo, od pierwszej (najdłuższej) dopasowanej Drugi etap polegał na zastosowaniu wszystkich transformacji (łącznie było ich 35), które dopasowały się końcówką do wyrazu zmodyfikowanego (przez usunięcie najdłuższej pasującej końcówki spełniającej warunek przejścia) na etapie pierwszym
Lovin s stemmer Przykład: wyraz nationally w etapie pierwszym dopasowuje się do końcówki [ationally]. Warunek przejścia dla tej końcówki wymaga, żeby po jej usunięciu pozostał stem o minimum trzech literach, w związku z czym ta końcówka nie może być zastosowana Kolejną dopasowaną końcówką jest [ionally], która jest związana z warunkiem mówiącym, że nie ma dodatkowych wymagań, wiec ta końcówka jest usuwana i stem [nat] przechodzi do kolejnego etapu W drugim etapie żadna transformacja nie może być zastosowana, więc zwracany jest stem [nat]
Pomysł Portera polegał na tym, żeby formom odmienionym zamieniać przyrostki (ang. suffix) Dodatkowo dokonuje się to wieloprzebiegowo możliwe było wiele następujących po sobie zamian przyrostków dla jednego słowa Te zamiany zostały szczegółowo zdefiniowane i opisane zarówno rodzaj zamiany, warunki zajścia tej zamiany, jak i kolejność możliwych zamian Są to takie operacje, jak: obcięcie końcówki [ ], [ s] np. w wyrazie students lub student s zamiana końcówki [ied] na końcówkę [ies] (jeśli przed [ied] jest więcej niż jedna litera) lub [ie] (w przeciwnym razie) np. w wyrazach cried i tied
http://nlp.stanford.edu/ir-book/html/htmledition/stemming-and-lemmatization-1.html
Za: D. Weiss, 2001
Podejścia słownikowe wystarczy utrzymywać słownik zawierający dpowiednio dużą liczbę wyrazów i sprawdzać w nim od jakiego leksemu pochodzi dana forma odmieniona (możliwe wielokrotne dopasowania)
Podejścia heurystyczne opierają się na jakiejś transformacji algorytmicznej, zwracającej mniej lub bardziej unikalny token (dla wszystkich form danego leksemu). Czasem tym tokenem może być lemat danego wyrazu, czasem rdzeń, czy stem lub tzw. hasło. Algorytmy takie nie weryfikują własnych wyników przez skonfrontowanie ich ze słownikiem poprawnych form
Podejścia heurystyczne Przykładowymi rodzajami elementarnych transformacji pozwalającymi na przetransformowanie wyrazu odmienionego w odpowiednik lematu mogą być: odcinanie końcówek (przyrostków i/lub przedrostków), zamiana(y) końcówek (przyrostków i/lub przedrostków), operacje na pojedynczych znakach (zamiana, wstawienie, usunięcie), operacje na większych jednostkach (sylaby, ciągi kilkuliterowe np. 2-gramy, 3-gramy itd.)
Podejścia mieszane (hybrydowe) Algorytmy te charakteryzuje możliwość korzystania ze słownika z jednoczesnym stosowaniem reguł transformacji, które szacują lematy dla słów spoza tego słownika Jeśli tylko algorytm stosujący podejście słownikowe dokonuje jakiegoś szacowania dla nieznanych mu form wyrazowych (spoza słownika) to można go nazwać hybrydowym
Algorytmy słownikowe mogą zapewniać poprawność wyników bazując na słowniku poprawnych form
Algorytmy słownikowe mogą zapewniać poprawność wyników bazując na słowniku poprawnych form Jednak słownik nie musi być słownikiem poprawnych form (lematów). Może zawierać informacje, które tylko te lematy opisują np. zbiór możliwych czteroliterowych ciągów, z których mogą składać się lematy
Algorytmy słownikowe mogą zapewniać poprawność wyników bazując na słowniku poprawnych form Jednak słownik nie musi być słownikiem poprawnych form (lematów). Może zawierać informacje, które tylko te lematy opisują np. zbiór możliwych czteroliterowych ciągów, z których mogą składać się lematy Algorytmy regułowe i hybrydowe dają wyniki przybliżone (pewne jedynie dla zwróconych wyrazów, których potwierdzenie znajdują w słowniku, z którego korzystają)
Lematyzatory dla języka polskiego Morfeusz (analizator morfologiczny) Marcina Wolińskiego Oferuje słownikowe metody hasłowania i oznaczania części mowy (ang. POS-Tagging) SAM-95 (analizator morfologiczny) Krzysztofa Szafrana Lametyzator Dawida Weissa oprócz lematów zwraca on równieź informację gramatyczną (dla wyrazów ze słownika Ispell, które taką informację mają) Stempel Andrzeja Białeckiego algorytm regułowy Stempelator Dawida Weissa połączenie Lametyzatora z algorytmem Stempel (algorytm hybrydowy) TaKIPI Macieja Piaseckiego, Grzegorza Godlewskiego, Adama Radziszewskiego, Bartosza Brody i Adama Wardyńskiego Przyporządkowuje opis morfo-syntaktyczny do wyrazów w zdaniu i określa znaczenia poszczególnych wyrazów LEMOT Tomasza Dragosza algorytm hybrydowy stworzony na potrzeby lematyzacji słów pozasłownikowych
Lematyzatory dla języka polskiego Morfeusz W zasadzie jest to analizator morfologiczny oznaczający też części mowy (ang. POS-Tagging).W opisie programu autor Marcin Woliński specjalnie odróżnia jego cel od hasłowania Program udostępniany bezpłatnie jedynie do zastosowań naukowo-badawczych. Działa na zasadzie algorytmów słownikowych nie znajduje form podstawowych dla nieznanych sobie wyrazów. Opiera się na pracach Zygmunta Saloniego Morfeusz ma postać biblioteki dynamicznej skompilowanej dla systemów Linux i Windows. Można z niego korzystać w programach w języku C, C++, PERL, Prolog, a przy zastosowaniu odpowiednich modułów Java, czy Python Szczegóły i dokładne zasady działania programu (w szczególności liczba lematów i form wyrazowych w słowniku i sposób przeglądania słownika) nie są znane
Lematyzatory dla języka polskiego Lametyzator Dawida Weissa jest narzędziem do lematyzacji. Posługuje się słownikiem form wyrazowych (ispell), więc jest podejściem słownikowym Program powstał w 2003 roku jako całkowicie bezpłatne narzędzie. Oprócz lematów zwraca on również informację gramatyczną (dla wyrazów z używanego słownika, które taką informację posiadają) Słownik, z jakiego korzysta, to lista par <wyraz, lemat> (z opcjonalną informacją gramatyczną) która została skompresowana do postaci automatu o skończonej liczbie stanów (ang. FSA) dzięki programom Jana Daciuka Lametyzator jest napisany w języku Java. Od 2006 roku jest dystrybuowany jako biblioteka w ramach projektu Morfologik
Automat skończony (ang. Finite State Automaton, FSA) to struktura, która składa się z węzłów i przejść między nimi. W szczególności przejścia te mogą być znakami, dzięki czemu można zarówno umieścić w FSA dowolny ciąg znaków, a przechodząc po kolejnych węzłach, dokonać sprawdzenia czy dany wyraz jest zapisany w FSA O(n) Automat skończony ma również tę zaletę, że daje dosyć dobry współczynnik kompresji przykładowo lista par zajmująca w postaci pliku tekstowego (.txt) 44 megabajty kompresuje się do około 1,5 megabajta
Lematyzatory dla języka polskiego Stempel Andrzeja Białeckiego dystrybuowany jest na licencji wolnego oprogramowania. Jest regułowym algorytmem hasłowania W odróżnieniu od Lametyzatora i Morfeusza zwraca dla jednego wyrazu zawsze pojedynczy stem Napisany w języku Java opiera się na operacjach usunięcia ciągu znaków, wstawienia znaku lub zamiany znaku. Bazuje na tabeli słów, dla których został utworzony zbiór operacji potrzebnych do przetransformowania słowa do lematu (ang. patch-commands). Do utworzenia tabeli słów posłużył słownik ispell, Wzbogacony korpus słownika frekwencyjnego, elektroniczna wersja Biblii Tysiąclecia oraz Analizator morfologiczny SAM w wersji 3.4 użyty jako lematyzator do wyznaczania lematów dla wyrazów ze zbiorów tekstów, które nie podawały takiej informacji Algorytm może korzystać z wcześniej stworzonego zbioru reguł, który autor utworzył z listy słów i ich lematów. W ten sposób algorytm nauczył się na pewnym zbiorze słów reguł, które stosował podczas hasłowania
Lematyzatory dla języka polskiego Stempelator powstały w 2005 r. oparty jest na pomyśle Dawida Weissa, żeby połączyć własny algorytm (Lametyzator) z algorytmem Stempel. Przykład prostego podejścia hybrydowego. Polega na tym, że dla danego wyrazu zwraca albo poprawny lemat (jeden lub więcej), który Lametyzator znajduje w swoim słowniku, albo jeśli nic nie znajdzie stem otrzymany przez hasłowanie algorytmem Stempel Algorytm ten podobnie jak Lametyzator jest całkowicie darmowym i ogólnodostępnym rozwiązaniem włączonym w bibliotekę projektu Morfologik
np. mamałyga : [mamałyg], [mamałyga], [mamałygi], [mamałyo], [mamałygać], [mamałye]
np. mamałyga : [mamałyg], [mamałyga]
np. mamałyga : [mamałyg], [mamałyga]
#uje 7231 28 #ować*5658:#ywać*1245:#iwać*318:#ać*10: np. głoduje :[głodować], [głodywać], [głodiwać], [głodać] ale na podstawie słowa hoduje można dodać podstawienia (reguły) [uje] - [ować], [duje] - [dować], [oduje] - [odować], [hoduje] - [hodować] dla głoduje dopasuje się wydłużona końcówka [oduje] - [odować] preferowane są najpierw reguły pełnej zamiany (np. jestem na być ), a następnie reguły zamiany jak najdłuższej końcówki
ad 4.(wybór jednostek indeksujących) automatyczna selekcja np. rzeczowników lub fraz rzeczownikowych ma na celu wyłonienie jednostek indeksujących o jak największej semantyce. W przypadku fraz jednostki indeksujące przestają być pojedynczymi słowami kluczowymi. Frazy rzeczownikowe mogą być identyfikowane automatycznie jako zbiory rzeczowników oddalonych od siebie w tekście o nie więcej niż zadaną liczbę pozycji (np. 3) lub z wykorzystaniem informacji lingwistycznej
ad 4.(wybór jednostek indeksujących) automatyczna selekcja np. rzeczowników lub fraz rzeczownikowych ma na celu wyłonienie jednostek indeksujących o jak największej semantyce. W przypadku fraz jednostki indeksujące przestają być pojedynczymi słowami kluczowymi. Frazy rzeczownikowe mogą być identyfikowane automatycznie jako zbiory rzeczowników oddalonych od siebie w tekście o nie więcej niż zadaną liczbę pozycji (np. 3) lub z wykorzystaniem informacji lingwistycznej Potencjalny problem: konieczność kosztownej analizy semantycznej POS tagging (ang. Part Of Speech tagging), np.: N - proper nouns; X - function words including articles and prepositions extended biword - any string of terms of the form NX*N renegotiation of the constitution renegotiation constitution N X X N NN
ad 5.(budowa tezaurusa) w najprostszej formie słownik taki składa się z: utworzonej jednorazowo (z góry) listy słów istotnych w danej dziedzinie, list słów związanych ze słowami listy powyżej (często są to po prostu listy synonimów) W ogólnym przypadku słownik taki może zawierać jednostki bardziej złożone niż słowa (np. frazy) i organizować je jednocześnie w hierarchiczną strukturę kategorii
Metody opracowania słownika: Słowniki ręcznie utrzymywane przez edytorów MeSH - https://www.nlm.nih.gov/pubs/factsheets/mesh.html WordNet http://wordnet.princeton.edu, itp. Słowniki tworzone automatycznie (na zasadzie obserwacji współwystępowania słów) por. modele IR: model fuzzy Analiza zapytań użytkowników wyszukiwarek (query log mining)
Możliwe zastosowania: - wyłonienie jednostek indeksujących - wspomaganie użytkownika w formułowaniu zapytań - tzw. query expansion, query narrowing
Rozszerzanie zapytań (ang. query expansion) Dodawanie do zapytania podobnych słów Cel: poprawa kompletności (recall) odpowiedzi systemu IR Często realizowane bez udziału użytkownika Adresuje problem synonimów, ale nie polisemii słów
Zawężanie zapytań (ang. query narrowing, query refinement) Sugerowanie użytkownikowi (kilku) wariantów bardziej szczegółowych zapytań (podpowiadanie dodatkowych słów) Cel: poprawa precyzji (precision) odpowiedzi systemu IR Użytkownik wybiera czy skorzystać z podpowiedzi /i której Adresuje zarówno problem synomimów jak i polisemii