Top Banner
Seminarium – Instytut Podstaw Lingwistyki PAN 20 październik 2003 Dawid Weiss Instytut Informatyki Politechnika Poznańska O szukaniu sensu w stogu siana Algorytmy grupowania wyników z wyszukiwarek internetowych i propozycje ich ulepszenia przy wykorzystaniu wiedzy lingwistycznej.
46

O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Feb 28, 2019

Download

Documents

truongngoc
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Seminarium –Instytut Podstaw Lingwistyki PAN

20 październik 2003

Dawid Weiss

Instytut InformatykiPolitechnika Poznańska

O szukaniu sensuw stogu siana

Algorytmy grupowania wyników z wyszukiwarek internetowychi propozycje ich ulepszenia przy wykorzystaniu wiedzy lingwistycznej.

Page 2: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Plan prezentacji

• o istocie problemu słów kilka

• algorytmy grupowania wyników wyszukiwania• model wektorowy – Term Vector Model• model powtarzających się fraz – alg. STC• inne modele• lingo – rodzimy algorytm, „tej”

• propozycje wykorzystania wiedzy lingwistycznej

• system Carrot2

Page 3: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

W czym tkwi problem?

• WWW – krótka historia wielkiego wybuchu

Page 4: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Ilość ≠ jakość

• większa ilość informacji nie przekłada się na jej jakość

• internet kiedyś był o wiele bardziej wiarygodny

• wyszukiwarki nie ułatwiają dostępu do jakościowo lepszej wiedzy• wyszukiwarki szukają dokumentów pasujących do

pytań, a nie odpowiedzi• wyszukiwarki zazwyczaj nie tłumaczą struktury

zwracanych wyników

Page 5: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Podejścia do organizowania chaosu

Internet

query-answering systemsanaliza semantyki zapytań

przetwarzaniejęzyka naturalnego

wyszukiwarkianaliza grafowa,

probabilistyczna, inne

odkrywanie wiedzy z danych

kognitywistyka

zrozumieniepostrzegania wyników,

wizualizacja

Page 6: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Przykład – zapytanie „apache”

• systemy wyszukujące dokumenty zawierające postawione pytanie• AllTheWeb• Altavista• Google

• systemy odpowiadające na pytania• System START• System AnswerBus

• systemy organizujące wyniki • Vivisimo• Carrot2

Page 7: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

„apache” w Google

Page 8: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

„apache” w AllTheWeb

Page 9: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

„apache” w Altavista.com

Page 10: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

„apache” w systemie START

Page 11: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

„apache” w AnswerBus

Page 12: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

„apache” w Vivisimo.com

Page 13: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

„apache” w systemie Carrot2

Page 14: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Grupowanie w AllTheWeb?

Page 15: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Definicja problemu

serwer WWW helikopter indianie

Search Results Clustering polega na efektywnym utworzeniu sensownych grup tematycznie powiązanych dokumentów, oraz ich zwięzłym opisaniu w sposób zrozumiały dla człowieka.

Apache

Page 16: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Problem nie jest trywialny…

• nie jest znana liczba oczekiwanych grup

• miara podobieństwa dokumentów jest trudna do zdefiniowania

• grupy mogą się nakładać

• znalezienie opisu dla grup nie jest proste

• wymagana szybkość wykonywania (on-line)

• dokumenty mogą być wielojęzyczne

• opisy są zazwyczaj krótkie (snippets) i niepełne

Page 17: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Plan prezentacji

• o istocie problemu słów kilka

• algorytmy grupowania wyników wyszukiwania• model wektorowy – Term Vector Model• model powtarzających się fraz – alg. STC• inne modele• lingo – rodzimy algorytm, „tej”

• propozycje wykorzystania wiedzy lingwistycznej

• demonstracja systemu Carrot2

Page 18: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

All the real knowledge which we possess, depends on methods by which we distinguish the similar from the dissimilar.

- Genera plantarum, Linnaeus

Page 19: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

PDDP/ARHP

Modelowanie podobieństwa

modelowanie odległościw przestrzeniachn-wymiarowych

modelgrafowy

współwystępowaniesłów i fraz

STCLingoHSTCK-meansAHC

Page 20: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Vector Space Model

• model oparty na algebrze liniowej• zbiór unikalnych słów T=t1, t2, … tn

• dokumenty (D=d1, d2, … dm) reprezentowane jako n-wymiarowe wektory

• di=[wi1, wi2, … win], gdzie wij jest wagą j-tego słowa w dokumencie i

Page 21: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Ważenie słów

• wagi słów – jak dane słowo jest charakterystyczne dla dokumentu?• wiele różnych form:

• binarna – wij=1 lub wij=0

• częstość wystąpień - wij=tfij(tj)

• tfidf (Salton) – wij=tfij(tj)*log(N/dfij(tj))

• rola lematyzacji w procesie obliczania wag• rola stop words w procesie obliczania wag

• macierz term-document (A)• kolumny – dokumenty• wiersze – słowa

Źródło: Prezentacja Carrot2 Milestone report, Stanisław Osiński

Page 22: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Pojęcie bliskości w macierzy A

• jesteśmy zainteresowani kątem jaki tworzą między sobą wektory dokumentów• Identyczny kąt dokumenty są złożone z

identycznych słów dokumenty są podobne

Θ

dj

q

Źródło: Prezentacja Carrot2 Milestone report, Stanisław Osiński

Page 23: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Przykład – macierz A

Źródło: Prezentacja Carrot2 Milestone report, Stanisław Osiński

Page 24: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Przykład, c.d.

Źródło: Prezentacja Carrot2 Milestone report, Stanisław Osiński

Page 25: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Algorytmy grupowania a macierz A

• wykorzystanie informacji o bliskości dokumentów w A• zastosowanie mają wszelkie metody analizy

skupień w danych numerycznych

• problemy• grupy zazwyczaj sferyczne• każde słowo jest traktowane oddzielnie• problemy ze znalezieniem opisu grup• problem z naturalnym kryterium stopu dla

większości algorytmów numerycznych

Page 26: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Algorytm STC – wykorzystanie fraz

• Suffix Tree Clustering, Oren Zamir, O. Etzioni• fraza = sekwencja występujących po sobie słów• algorytm rozważa wspólne podfrazy występujące

w dokumentach

Page 27: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Przykład - STC

Wejściowe „dokumenty” :(1) “cat ate cheese”(2) “mouse ate cheese too”(3) “cat ate mouse too”

Grupy:[a] (1,3) cat ate (cat’s culinary habits)[f] (1,2) ate cheese (cheese dining preference)

Drzewosufiksów

frazyczęste

Źródło: O. Zamir – PhD thesis, Univ. of Washington

Page 28: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

STC w praktyce

• zalety• brak numerycznej miary odległości• frazy stanowią zazwyczaj dobre opisy grup• liniowa złożoność - O(N)

• wady• słabo radzi sobie z szumem (home page)• problemy z separacją małych grup• wrażliwość na progi i język dokumentów

Page 29: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Algorytm Lingo

• Label INduction Grouping Algorithm

• autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu Carrot2

• odwrócony proces grupowania – najpierw opisy, później dokumenty (jak w Vivisimo)

• opiera się na metodzie rozkładu macierzy A przy pomocy SVD• redukcja szumów• ujawnia ukryte związki między dokumentami

• wykorzystuje frazy częste aby opisać odnalezione grupy

Page 30: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Lingo - kroki algorytmu

segmentacjatekstu

Identyfikacjajęzyka

lematyzacjai stop words

identyfikacjafraz częstych

poszukiwaniegrup tematycznych

(dekompozycja SVD)

Dopasowaniefrazy opisowej

do każdej grupy

dopasowaniedokumentów do grup

sortowaniei wyświetlanie grup

Page 31: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Dekompozycja SVD

• pomijając szczegóły matematyczne…• kolumny macierzy U tworzą ortogonalną bazę w

przestrzeni kolumn macierzy A • wektory te wykazują podobieństwo do „tematów”

obecnych w A

Źródło: Prezentacja Carrot2 Milestone report, Stanisław Osiński

Page 32: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Dopasowanie fraz do tematów

• otrzymujemy poprzez wyliczenie kątów między frazami (kandydatami)a podmacierzą U

• jest to równoważne szukaniu zapytań, do których pasują pewne zbiory wyników

Page 33: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Przykład - Lingo

Zakładamy, że rA = 2 (tzn, pod uwagę brane są dwa pierwszewektory kolumnowe macierzy U).

Źródło: Prezentacja Carrot2 Milestone report, Stanisław Osiński

Page 34: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Przykład – Lingo, c.d.

Źródło: Prezentacja Carrot2 Milestone report, Stanisław Osiński

Page 35: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Dopasowanie dokumentów do grup

• Ponownie „odpytujemy” zbiór dokumentów, stosując zbiór opisów grup jako zapytania

• Używany jest ponownie Vector Space Model

• W fazie końcowej grupy są sortowane wg wzoru: score = label_score * cluster_size

Page 36: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Przykład – Lingo, c.d.

Źródło: Prezentacja Carrot2 Milestone report, Stanisław Osiński

Page 37: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

LINGO – podsumowanie

• zalety• czytelne opisy grup• zróżnicowanie tematyczne grup (dzięki użyciu

SVD)• dokument może należeć do więcej niż jednej

grupy

• niedociągnięcia• płaska struktura grup• spore wymagania zasobowe (SVD)• brak możliwości obliczeń przyrostowych

Page 38: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Plan prezentacji

• o istocie problemu słów kilka

• algorytmy grupowania wyników wyszukiwania• model wektorowy – Term Vector Model• model powtarzających się fraz – alg. STC• inne modele• lingo – rodzimy algorytm, „tej”

• propozycje wykorzystania wiedzy lingwistycznej

• demonstracja systemu Carrot2

Page 39: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Motywacja

• metody frekwencyjne zawsze będą omylne

• wydaje się, że nawet pobieżna analiza lingwistyczna może przynieść wymierną poprawę wyników

Page 40: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Możliwości

• dokładna lematyzacja• obecnie

• j. polski - „lametyzator” własnej produkcji• j. angielski – alg. Portera

• przykłady obecnie błędnie interpretowane• j. polski

• beton – betoniarka• komin – kominiarz - kominiarka

• j. angielski• ‘new’ – ‘news’

Page 41: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Możliwości

• usuwanie (ang. pruning) nieczytelnych opisów• ograniczenie się tylko do niektórych części mowy

• co z nazwami własnymi?

• dopuszczanie jedynie pewnych wzorców (pobieżna analiza składniowa)

• Przykład:• „[zawody w] programowaniu zespołowym”• „jak”

• zarówno rzeczownik, jak i zaimek

Page 42: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Możliwości

• wykrywanie nazw własnych• zazwyczaj tworzą dobre opisy grup• realne raczej jedynie proste heurystyki

• problem zmiennego szyku zdania w j. polskim• potrzeba detekcji fraz nie na podstawie ich

sekwencji

Page 43: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Plan prezentacji

• o istocie problemu słów kilka

• algorytmy grupowania wyników wyszukiwania• model wektorowy – Term Vector Model• model powtarzających się fraz – alg. STC• inne modele• lingo – rodzimy algorytm, „tej”

• propozycje wykorzystania wiedzy lingwistycznej

• system Carrot2

Page 44: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

O projekcie…

• komponentowy system przetwarzania danych

• wiele istniejących komponentów i narzędzi wspomagających

• projekt prowadzony na SourceForge• Licencja BSD-podobna• ~5 osób zaangażowanych w prace

Webcontroller

Google

AllTheWeb

Otherwrapper

STC

Lingo

AHC

stemming

pruning

DynamicTree

Webcontroller

Google

AllTheWeb

Otherwrapper

STC

Lingo

AHC

stemming

pruning

DynamicTree

Webcontroller

Google

AllTheWeb

Otherwrapper

STC

Lingo

AHC

stemming

pruning

DynamicTree

Page 45: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Adresy, adresy…

• oficjalna strona projektu:www.cs.put.poznan.pl/dweiss/carrot

• publiczna wersja demonstracyjna:http://carrot.cs.put.poznan.pl

Page 46: O szukaniu sensu w stogu siana - cs.put.poznan.pl · Algorytm Lingo • Label INduction Grouping Algorithm • autor: Stanisław Osiński, Politechnika Poznańska, uczestnik projektu

Dziękuję za uwagę

kontakt, uwagi:[email protected]

http://www.cs.put.poznan.pl/dweiss