Prezentacja
Transkrypt
Prezentacja
a sprawa polska Patryk Makuch 1.Czym jest Apache Lucene? 2.O czym będzie, a o czym nie będzie ta prezentacja? 3.Zaindeksujmy trzy pliki tekstowe ● Problem z kodowaniem 4.Polskie znaki diakrytyczne niepolska klawiatura ● Fuzzy – obejście czy rozwiązanie? ● Odogonkowanie – w obie strony? 5.Polski analizator Czym jest Apache Lucene? lucene-stempel-3.5.0.jar lucene-memory-3.5.0.jar lucene-analyzers-3.5.0.jar lucene-core-3.5.0.jar lucene-3.5.0.tgz (42MB) http://lucene.apache.org Lucene Core, our flagship sub-project, provides Javabased indexing and search technology, as well as spellchecking, hit highlighting and advanced analysis/tokenization capabilities. lucene-java/PoweredBy Czym jest Apache Lucene? O czym będzie, a o czym nie będzie ta prezentacja? Podstawy wyszukiwania: indeks odwrócony indeksowanie wyszukiwanie Analiza tekstu przy indeksowaniu i wyszukiwaniu Nauka o języku Przepis na poprawne wyszukiwanie po polsku Większość możliwości Lucene Indeksujemy! …tylko po co? Cel: wykonanie wyszukiwania szybciej niż w czasie liniowym perkusja Miasto: Gdańsk Miasto: Grudziądz Treść: Sprzedam. Prawie nowa perkusja elektroniczna Roland. Treść: Kupię. Kanapa rogówka. ppppppppp Sprzedam. ppppppppppppperkusja Prawie nowa perkusja pppppppppppppppppppp elektroniczna Roland. pppppp Kupię. pppppppppppppp Kanapa rogówka Indeksujemy! …tylko po co? Rozwiązanie: skorowidz Indeks odwrócony Indeksujemy! Indeks składa się z dokumentów Dokument składa się z pól Tytuł: 12 Groszy Tytuł: 12 Groszy Autor: Kazik Autor: Kazik Czas: 06m04s Czas: 06m04s Pole składa się z nazwy i wartości Indeksujemy! Indeks Dokument Pole Nazwa i wartość Tytuł: 12 Groszy Autor: Kazik Czas: 06m04s Tytuł: 12 Groszy Autor: Kazik Czas: 06m04s Autor: Kazik Autor Kazik Indeksujemy! …tylko po co? Rozwiązanie: Indeks odwrócony Miasto: Gdańsk perkusja Miasto:Gdańsk 1 Miasto:Grudziądz 2 Treść:elektroniczna 1 Treść:kanapa 2 Treść:nowa 1 Treść:perkusja 1 Treść:prawie 1 Treść:rogówka 2 Treść:roland 1 Treść:sprzedam 1 2 2 I N D E K S O W A N I E Treść: Sprzedam. Prawie nowa perkusja elektroniczna Roland. 1 Miasto: Grudziądz Treść: Sprzedam. Nowa kanapa rogówka. 2 Indeksujemy! Luke Polak potrafi, czyli najlepszy „czytnik” indeksów lucene napisany przez Andrzeja Bialeckiego Szukamy Kodowanie Problem bardziej javowy niż Lucynowy Gda�sk w iso GdaĹsk w utf Gdańsk i już! Wyszukiwanie Przejdźmy do wyszukiwania Rozmywamy problem Lucene udostępnia wiele typów zapytań. Jedno z nich bywa wykorzystywane do rozwiązywania problemu znaków diakrytycznych. Jest to zapytanie typu FUZZY Gdańsk 1 zamiana Gdansk Rozmywamy problem Gdańsk 1 zamiana ~0.84 Gdansk Łódź 3 zamiany ~0.24 Lodz Kanada 1 zamiana ~0.84 Kanapa Analizujemy problem Analizujemy problem odogonkowanie Gdansk Lodz Potrzebny nam filtr, który potrafi odogonkować. org.apache.lucene.analysis.ASCIIFoldingFilter Analizujemy problem odogonkowanie Zażółć gęślą jaźń S.A. OdogonkoAnalyzer StandardTokenizer [Zażółć] [gęślą] [jaźń] [S.A.] StandardFilter [Zażółć] [gęślą] [jaźń] [SA] LowerCaseFilter [zażółć] [gęślą] [jaźń] [sa] ASCIIFoldingFilter [zazolc] [gesla] [jazn] [sa] Analizujemy problem odogonkowanie Lekarstwo na Łaskę – dwa pola z tym samym Inny problem z j. polskim to odmiana … Poprawnie po polsku PolishAnalyzer Andrzej Bialecki - Stempel org.apache.lucene.analysis.pl.PolishAnalyzer Prawa autorskie oraz linki Obrazki na slajdzie 4 i 18 są zaczerpnięte z książki Lucene in Action, Second Edition http://lucene.apache.org/ http://code.google.com/p/luke/