Slovníkové skloňování pro ElasticSearch/Lucene nebo Sphinx? rubrika: Programování: PHP
10
Michal Illich
položil/-a 23.4.2012
upravil/-a 23.4.2012
Teď tu máme nasazený SphinxSearch. Víceméně funguje, pokouší se i skloňovat, ale hodně špatně.
Koukáme teď i na ElasticSearch, ten taky česky skloňuje, ale obdobně špatně.
Špatně proto, že mají jen algoritmický (rule based) přístup. Tedy:
- neumí jakékoliv nepravidelnosti (nepřiřadí si jsem=budu=byl, já=mně, kůň=koně, atd.)
- slovesa víceméně neumí (vyvíjím->vyvíj, vyvinu->vyvin, vyvineme->vyvinm, vyvinul->vyvinul)
- zaměňují podobná slova (elasticsearch: práce=prak, sphinx: ruby=ruku, java=jako=já)
- pletou navzájem různé druhy (testovat=test); to je občas i dobré, ale chtělo by to mít tuhle vlastnost volitelnou
- ani ten algoritmický přístup nemají implementovaný dobře - např. aplikují koncovky ze všech možných vzorů na všechna slova (správně mají slovu přiřadit jeden vzor a aplikovat jen koncovky k němu náležící)
Nevíte o tom, zda jde ElasticSearch nebo Sphinx doplnit i o slovníkový přístup? Tedy kde sehnat slovník (seznam známých slov se všemi jejich tvary), který by to používalo přednostně? (a pouze pro slova mimo tenhle slovník by to použilo algoritmický přístup)
odkaz
6
Jirka Kosek
odpověděl/-a 23.4.2012
A tohle by ti nepomohlo http://ufal.mff.cuni.cz/morfo/ ?
Nevím ovšem, jaké jsou přesně licenční podmínky.
Komentáře
- Michal Illich : Na první pětiminutové podívání do zdrojáků to vypadá taky jako algoritmický stemovač, ale zato o několik řádů komplexnější než to co je v Lucene. Kouknu na to následující dny víc. Díky za tip. — 23.4.2012
- Jirka Kosek : Na zdrojáky jsem nekoukal, ale na UFAL dali dohromady asi největší korpus CS textů, takže i kdyby to byl algoritmus, může být dobře natrénovaný včetně výjimek. — 23.4.2012
- Michal Illich : Shodou okolností jdu za dvě hodiny za Janem Hajičem na MFF, tak se optám :) — 24.4.2012
Pro zobrazení všech 4 odpovědí se prosím přihlaste:
Nebo se přihlaste jménem a heslem:
Komentáře