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/

Podobne dokumenty