abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
dnes 11:44 | Zajímavý projekt

Na Indiegogo byla spuštěna kampaň na podporu herní mini konzole a multimediálního centra RetroEngine Sigma od Doyodo. Předobjednat ji lze již od 49 dolarů. Požadovaná částka 20 000 dolarů byla překonána již 6 krát. Majitelé mini konzole si budou moci zahrát hry pro Atari VCS 2600, Sega Genesis nebo NES. Předinstalováno bude multimediální centrum Kodi.

Ladislav Hagara | Komentářů: 0
dnes 00:10 | Nová verze

Byla vydána verze 4.7 redakčního systému WordPress. Kódové označením Vaughan bylo vybráno na počest americké jazzové zpěvačky Sarah "Sassy" Vaughan. Z novinek lze zmínit například novou výchozí šablonu Twenty Seventeen, náhledy pdf souborů nebo WordPress REST API.

Ladislav Hagara | Komentářů: 0
včera 12:00 | Zajímavý projekt

Projekt Termbox umožňuje vyzkoušet si linuxové distribuce Ubuntu, Debian, Fedora, CentOS a Arch Linux ve webovém prohlížeči. Řešení je postaveno na projektu HyperContainer. Podrobnosti v často kladených dotazech (FAQ). Zdrojové kódy jsou k dispozici na GitHubu [reddit].

Ladislav Hagara | Komentářů: 14
včera 11:00 | Bezpečnostní upozornění

Byly zveřejněny informace o bezpečnostní chybě CVE-2016-8655 v Linuxu zneužitelné k lokální eskalaci práv. Chyba se dostala do linuxového jádra v srpnu 2011. V upstreamu byla opravena minulý týden [Hacker News].

Ladislav Hagara | Komentářů: 1
5.12. 22:00 | Komunita

Přibližně před měsícem bylo oznámeno, že linuxová distribuce SUSE Linux Enterprise Server (SLES) běží nově také Raspberry Pi 3 (dokumentace). Obraz verze 12 SP2 pro Raspberry Pi 3 je ke stažení zdarma. Pro registrované jsou po dobu jednoho roku zdarma také aktualizace. Dnes bylo oznámeno, že pro Raspberry Pi 3 je k dispozici také nové openSUSE Leap 42.2 (zprávička). K dispozici je hned několik obrazů.

Ladislav Hagara | Komentářů: 6
5.12. 06:00 | Zajímavý software

OMG! Ubuntu! představuje emulátor terminálu Hyper (GitHub) postavený na webových technologiích (HTML, CSS a JavaScript). V diskusi k článku je zmíněn podobný emulátor terminálu Black Screen. Hyper i Black Screen používají framework Electron, stejně jako editor Atom nebo vývojové prostředí Visual Studio Code.

Ladislav Hagara | Komentářů: 50
5.12. 06:00 | Zajímavý článek

I letos vychází řada ajťáckých adventních kalendářů. QEMU Advent Calendar 2016 přináší každý den nový obraz disku pro QEMU. Programátoři se mohou potrápit při řešení úloh z kalendáře Advent of Code 2016. Kalendáře Perl Advent Calendar 2016 a Perl 6 Advent Calendar přinášejí každý den zajímavé informace o programovacím jazyce Perl. Stranou nezůstává ani programovací jazyk Go.

Ladislav Hagara | Komentářů: 10
3.12. 16:24 | Nová verze

Byla vydána Mageia 5.1. Jedná se o první opravné vydání verze 5, jež vyšla v červnu loňského roku (zprávička). Uživatelům verze 5 nepřináší opravné vydání nic nového, samozřejmě pokud pravidelně aktualizují. Vydání obsahuje všechny aktualizace za posledního téměř půldruhého roku. Mageia 5.1 obsahuje LibreOffice 4.4.7, Linux 4.4.32, KDE4 4.14.5 nebo GNOME 3.14.3.

Ladislav Hagara | Komentářů: 17
3.12. 13:42 | Pozvánky

V Praze probíhá konference Internet a Technologie 16.2, volné pokračování jarní konference sdružení CZ.NIC. Konferenci lze sledovat online na YouTube. K dispozici je také archiv předchozích konferencí.

Ladislav Hagara | Komentářů: 0
2.12. 22:44 | Komunita

Joinup informuje, že Mnichov používá open source groupware Kolab. V srpnu byl dokončen dvouletý přechod na toto řešení. V provozu je asi 60 000 poštovních schránek. Nejenom Kolabu se věnoval Georg Greve ve své přednášce Open Source: the future for the European institutions (SlideShare) na konferenci DIGITEC 2016, jež proběhla v úterý 29. listopadu v Bruselu. Videozáznam přednášek z hlavního sálu je ke zhlédnutí na Livestreamu.

Ladislav Hagara | Komentářů: 26
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 779 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: Hledání v databázi (slovník) nějakého výrazu či částečné podobnosti

7.3.2013 13:23 Bubla
Hledání v databázi (slovník) nějakého výrazu či částečné podobnosti
Přečteno: 237×
Dobrý den,

jakým způsobem se přistupuje ke hledání podobností v databázi? dejme tomu, že mám dotaz typu 'ahoj'

položky v databázi

- ahojblas - ahoj - blas - ldsd ahoj - bubak - kralik

jakým způsobem z tohoto seznamu poté vyfiltrovat slova, která mají největší podobnost? Celé toto hledání je spíše fulltext nebo fuzzy matching?

Předpokládám, že na tuto funkcionalitu budou potřebné regulární výrazy, že ano?

Odpovědi

7.3.2013 13:24 Bubla
Rozbalit Rozbalit vše Re: Hledání v databázi (slovník) nějakého výrazu či částečné podobnosti
vzorek databáze ještě jednou

- ahojblas

- ahoj

- blas

- ldsd ahoj

- bubak

- kralik
Tarmaq avatar 7.3.2013 13:56 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Hledání v databázi (slovník) nějakého výrazu či částečné podobnosti
pokud ti staci jen vyrazy, ktere obsahuji 'ahoj', tak staci zadat:
SELECT vyraz
FROM vyrazy
WHERE vyraz LIKE '%ahoj%'
Don't panic!
7.3.2013 14:43 potato
Rozbalit Rozbalit vše Re: Hledání v databázi (slovník) nějakého výrazu či částečné podobnosti
Fuzzy matching se dělá v nejjednodušším případě Levenstheinovou vzdáleností řetězců s vhodně definovanými meziznakovými vzdálenostmi, ve složitějším s použitím statistických modelů daného jazyka. Což ovšem nenapíšeš standardním SQL dotazem. Nestandardní existují. Postgresql má přímo funkci levenshtein, dá se vygooglit jakási T-SQL implementace, etc.

Má-li záznam ten řetězec přímo obsahovat, nanejvýš s nějakým bordelem okolo, tak můžeš použít LIKE, jak píše kolega. Nicméně vybrat pak maximálně shodný zase potřebuje metriku nad řetězci, tudíž si tímhle moc nepomůžeš.
7.3.2013 15:33 Bubla
Rozbalit Rozbalit vše Re: Hledání v databázi (slovník) nějakého výrazu či částečné podobnosti
děkuji za info

a jakým způsobem by se k tomuto přistupovalo, pokud by to bylo např. v programovacím jazyce místo SQL?
7.3.2013 16:52 DarkKnightCZ | skóre: 12
Rozbalit Rozbalit vše Re: Hledání v databázi (slovník) nějakého výrazu či částečné podobnosti
regularni vyrazy, pouzijes funkce stylu strstr/strpos, nebo si napises vlastni algoritmus stylem - "prochazej cely radek, znak po znaku, pokud se rovna aktualni znak prvnimu znaku slova a zaroven nasledujici znak se rovna druhemu znaku slova a zaroven dalsi nasledujici znak se rovna tretimu znaku slova atd. az po konec slova, slovo bylo nalezeno"
7.3.2013 17:03 potato
Rozbalit Rozbalit vše Re: Hledání v databázi (slovník) nějakého výrazu či částečné podobnosti
Jen to ne. Najdeš si knihovnu, která implementuje řetězcové metriky, a použiješ ji. Hledej fuzzy matching, Levenshtein, string distance, edit distance, ...
7.3.2013 17:14 graviton
Rozbalit Rozbalit vše Re: Hledání v databázi (slovník) nějakého výrazu či částečné podobnosti
http://norvig.com/spell-correct.html <- co třeba tohle, to je takový pěkný příklad...
7.3.2013 17:23 Bubla
Rozbalit Rozbalit vše Re: Hledání v databázi (slovník) nějakého výrazu či částečné podobnosti
Děkuji, to vypadá jako pěkná ukázka, zkusím se z toho něco přiučit. Přitom se zkusím ještě podívat pořádně na ten fuzyy matching. ještě jednou děkuji za informace.
7.3.2013 17:45 Bubla
Rozbalit Rozbalit vše Re: Hledání v databázi (slovník) nějakého výrazu či částečné podobnosti
tak tady je ještě další ukázka možností, kdyby někdo potřeboval

http://stackoverflow.com/questions/682367/good-python-modules-for-fuzzy-string-comparison
7.3.2013 17:47 Bubla
Rozbalit Rozbalit vše Re: Hledání v databázi (slovník) nějakého výrazu či částečné podobnosti
a ještě obdobné vlákno na http://stackoverflow.com/questions/451884/similar-string-algorithm/451910#451910
7.3.2013 18:42 Bubla
Rozbalit Rozbalit vše Re: Hledání v databázi (slovník) nějakého výrazu či částečné podobnosti
Tak to vypadá, že už mi něco funguje, teď jsem ale přišel na jeden zásadní problém...

jde totiž o to, že některé řetězce ze kterých bych chtěl vybírat, tak jsou různě dlouhé... např.

- 'Alfonz bulba velký'

- 'Quercus lodes malý'

- 'Sanchenzo Lopez'

- 'Lopez oglomenz'

- 'lodes'

a bohužel většina těch dostupných knihoven předpokládá celé jedno slovo, nebo sérii vůči sérii.

tedy pokud budu hledat 'lopez', tak s největší pravděpodobností vrátí 'lodes', a 'Lopez oglomenz' nebude mít dostatečně velký koeficient, napadlo mě tedy všechny rozdělit na části a hledat v nich, jenže to je pak nutné držet i původní verzi a nějak správně zacílit původní verzi. No další problém se vyskytne v případě kdy někdo zadá výraz 'lodes Sanchenzo' a já budu mít části rozdělené?

z toho mi vychází, že bude nutné provést několik testů a pak je mezi sebou porovnat? tedy rozdělit slova jak na vstupu tak v databázi a pak je opět nějak složit?
7.3.2013 19:26 potato
Rozbalit Rozbalit vše Re: Hledání v databázi (slovník) nějakého výrazu či částečné podobnosti
To je otázka metriky. Já bych taky řekl, že lodes je bližší...

První krok asi tedy musí být pořádná specifikace kritéria blízkosti. Když máš dvě slova a jedno z nich odpovídá přesně, zjevně to preferuješ před přibližnou shodou podobně dlouhých slov. Co když budeš k tomu přesně odpovídajícímu slovu mít přilepenou celou větu? Bibli? Nekonečný rozvoj pí? Pořád to má být bližší než lodes? Nejdřív je nutné vědět, co chceš udělat, potom lze řešit jak.
7.3.2013 20:10 graviton
Rozbalit Rozbalit vše Re: Hledání v databázi (slovník) nějakého výrazu či částečné podobnosti
Bez znalosti problémové domény asi těžko navrhneme přibližný trefovač, který by v ní generoval přirozeně se chovající odhady.

Jen nadhodím trik, se kterým jsme kdysi ubastlili relativně přirozeně se chovající slovníček nad daty s mixem slov a celých vět:
  1. setřídili jsme si slovník podle délky slova/fráze vzestupně
  2. hledání hledalo ve slovníku zadanou věc sekvenčně jako podřetězec (žádné překlepy)
  3. hledání se zastavilo po N nálezech
Díky bodu 1 to přesné zásahy vracelo nejdřív a případně to potom vracelo i slova s daným podřetězcem nebo fráze s tím slovem.

Je otázka, jak do toho začlenit nějaké přibližné porovnávání, asi jet na dva průchody - přesný a přibližný, na výstupu jejich výsledky nějak ováhovaně zkombinovat.

Netuším, jestli z toho něco k něčemu bude, jen tak nadhazuju...
8.3.2013 23:18 Logik
Rozbalit Rozbalit vše Re: Hledání v databázi (slovník) nějakého výrazu či částečné podobnosti
Asi to co chceš je, rozdělit si fráze ve slovníku po slovech a vrátit libovolnou, která má alespoň jedno slovo podobné. Popř. můžeš hodnotu podobnosti vydělit délkou fráze ve slovech.

Víceslovné fráze pak můžeš vyhledávat pomocí součinu podobnosti jednotlivých slov vyhledávané fráze.
9.3.2013 09:03 Bubla
Rozbalit Rozbalit vše Re: Hledání v databázi (slovník) nějakého výrazu či částečné podobnosti
o to jsem se pokoušel, ale výsledek nebyl moc dobrý, jelikož se pak celé řetězce špatně skládaly dohromady.

nakonec jsem použil match slova na řetězec a v rozdělil několik úrovní pro "match" viz 0.0-1.0 např. SequenceMatcher pokud poté dosahuje určité úrovně, tak dojde k kontrole jednotlivých slov v řetězci a původního slova, pokud je nějaká vyšší úroveň, tak jí vrátí.

A tímto způsobem následně při hledání se vrátí několik matchu s různou úrovní přesnosti.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.