logo
04.07.2020 16:51
1
Ahoj,

Nevíte někdo o knihovně v libovolným jazyce (PHP, Nodejs, Python, Golang, Perl, ..) která umí převést skloňované slovo do základu?

Zkouším Hunspell, kde knihovny mají funkci Stem(slovo), který funguje perfektně na přídavný jména, ale nemůžu zněj dostat například výsledek pro:

(v)politice

Kde bych očekával “politika”.

WP

Co se právě děje na Webtrhu?

04.07.2020 18:23
2
K čemu to potřebuješ? To pak ovlivňuje potřebnou přesnost.

Stemnizace je převod na kmen slova, často se řeší algoritmicky pomocí odstranění předpon a připon/koncovek, to dělá i ten hunspell, je to nepřesné, ale pro řadu úkonů dostatečné, například pro tokenizaci pro fulltext.

Stemnizace ti nepřevede slovo “politice” na “politika”, na to je lemnizace, ta převádí na základní tvar, k ní je ale potřeba slovník a znalost jazyka.

Strojový stemmer je poměrně schopný i v Lucene (java), používáme často, zkus místo hunspellu. V jednom projektu jsme zkoušeli i doplněním o https://www.fit.vut.cz/research/product/133/.cs

Na přesnou lemnizaci pro generování textů a NLP používáme placené slovníky z https://prirucka.ujc.cas.cz a pak nějaké interní.
04.07.2020 18:34
3
Pro statistiky potřebuji mít tématicky slova, tj slova v základním stavu.
04.07.2020 19:19
4
tak si tyhle tvary si oprav ručně nebo neřeš, asi bych pro statistiku s tím víc času netrávil, na tom se dá zabít spousta energie.
05.07.2020 09:48
5
Protože ty Hunspell .aff soubory obsahují perfektně veškeré platné modifikátory, napsali jsme si nakonec vlastní řešení v PHP :)
05.07.2020 09:58
6
jj, stejně tak to je v lucene :). Ano, takhle nějak se to dá také používat a otestovat si to na svém vzorku a vyladit podle něho. Zatím pro češtinu jsem v open source nic dospělého nenašel.

Nechceš zveřejnit to vaše php řešení? Začal jsi s tím, že sháníš open source a pak skončíš u vlastního closed source, které zůstane zase uzavřené, pak nikdy nic nebude. Já bohužel dělám pro společnosti, které zatím odmítají cokoliv zveřejňovat asi z náboženských důvodů, snažím se to nabourat, ale je to těžké.
05.07.2020 10:08
7
Já hledal knihovnu k řešení problému - o open source nebyla zmínka :)

Nicméně v plánu to mám, ale až poté co vydám to, kvůli čemu to potřebuji.
05.07.2020 10:21
8
no sháněl jsi to v jazycích, kde se closed source dělá špatně, protože nemají svoji kompilovanou verzi a SW v nich se distribuje jako zdrojový kód, proto mi to evokuje “open source”, licence může být různá.

Také mě zajímá jak jsi to vyřešil, poptávka je po tom vysoká a řeší to kdekdo na malé weby a tam neumím nabídnout nic dostupného.”, viz i tohle vlákno. Třeba u tvého příkladu politice >> politika je těžké stemnizací rozlišit něco jako kytice >> kytice
05.07.2020 11:14
9
Není to nejdokonalejší, ale základ k doladění dobrý:

php stem_new.php ženy
ženy: žena
php stem_new.php politice
politice: politika
php stem_new.php kytice
kytice: kytice
php stem_new.php politička
politička: politička
php stem_new.php političkou
političkou: politička
php stem_new.php politický
politický: politický
php stem_new.php kytička
kytička: kytička
php stem_new.php kytka
kytka: kytka
php stem_new.php kyticí
kyticí: kytice
php stem_new.php dveře
dveře: dveře
php stem_new.php dveřma
dveřma:
php stem_new.php barvou
barvou: barva
php stem_new.php barvami
barvami: barva
php stem_new.php barevný
barevný: barevný
php stem_new.php nabarvený
nabarvený: nabarvený
php stem_new.php nabarvenou
nabarvenou: nabarvený
05.07.2020 11:20
10
pěkný, to vypadá dobře
05.07.2020 20:08
11
Čo sa týka softvéru chceš toto: https://nlp.fi.muni.cz/czech-morphology-analyser/

Je to morfologický analyzátor, prekladá to do FSA, nič rozumne rýchlejšie neexistuje :) Dáta si tam dokážeš kľudne nasypať z hunspellu, alebo čohokoľvek lepšieho. Nejaké "osekané" dáta sú tam k dispozícii tiež.

---------- Příspěvek doplněn 05.07.2020 v 20:09 ----------

Čo sa týka softvéru chceš toto: https://nlp.fi.muni.cz/czech-morphology-analyser/

Je to morfologický analyzátor, prekladá to do FSA, nič rozumne rýchlejšie neexistuje :) Dáta si tam dokážeš kľudne nasypať z hunspellu, alebo čohokoľvek lepšieho. Nejaké "osekané" dáta sú tam k dispozícii tiež.