Autor Zpráva
Re4DeR
Profil
Ahoj, mám seznam slov (v databazi):

kocka
pes
kocicak
pejsek
krysa
krysarik
kocicka

A potřebuji z toho udělat něco jako:
kocka
kocicak
kocicka
------
pes
pejsek
------
krysa
krysarik

Podobnost by šla celkem udělat pomocí funkce similar_text() - přes procenta.

Ale moc nevím jak to udělat na ty skupiny. Napadá mě jen procházet to pořád dokola -
Pokud podobnost mezi prvnim a druhým slovem je větší než 50% (musí se vyzkoušet) - priřadit do skupiny s prvnim slovem. pokud menší vytvořit novou skupinu.
Vzít třetí slovo, porovnat ho se slovem z prvni skupiny, respektive druhé skupiny. atd atd

Tohle by mělo fungovat ale prijde mi to hrozně náročné a pomalé.

To už bych si asi vytvořil novou sloupec v tabulce a tam to seskupoval - při ukládání pomalost vadí míň než při zobrazování.

--
Nebo napadá někoho prosím něco jiného ? Utíká mi něco ? Není funkce similar_text() hloupý nápad ?
Str4wberry
Profil
Co si slova vybrat z databáze abecedně seřazená a v cyklu před výpisem každého slova rozhodnout, zda je ono slovo dostatečně podobné předchozímu, a dle toho případně založit novou skupinu?
Re4DeR
Profil
Re4DeR:
To jsem myslel taky. Bohužel je to lehce složitější - omlouvám se, měl jsem to rovnou napsat.

Nejsou to totiž slova, ale slovní spojení.
Toto:

Karel Čapek - Dášenka
Božena němcová - Divá Bára
Babička - Božena Němcová
Krakatit - Karel Čapek
Divá Bára - Němcová
B.N - Babička
Dášenka - K. čapek
Dásenka - Čapek karel
Krakatit - čapek Karel

--
Je mi jasný že na 100% to nepůjde, ale aspoň trochu bych chtěl.
mimochodec
Profil
Re4DeR:
A co si v tabulce vytvořit pracovní sloupec, kde budou slova těch spojení seřazena podle abecedy?
Jinak .. jestli máš v jednom sloupci to co píšeš, zavání to špatným návrhem aplikace. I když nemůžu vyloučit, že to tak není.
Re4DeR
Profil
Jojo, to je jasný, bohužel to líp nejde - jsou to data, která se stahují a ukladají z netu. Jinak by to byla hodne špatně navržená databáze, to je pravda.


Taky nad tim přemýšlím. Rozdělit na slova, ořezat hodně krátká slova (pod 3 znaky), seradit podle abecedy a sloučit. Tím by se vytvořil nějaký takový jakoby hash.
---
Ale to rozdělení do skupin je pořád lehce problematičtější.
Alphard
Profil
Co s tím? Jaký má být výstup, roztřídit podle autorů? Nevymýšlejte analogie, ale popište, o co vám jde.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: