K naplnění podstaty jednoho mého projektu jsem potřeboval získat poněkud specifická data – česká podstatná jména v prvním pádě. Nejprve jsem předpokládal, že podobný seznam musím s pomocí webového vyhledávače nalézt. Bohužel jsem však narážel pouze na nefunkční odkazy. Postupně jsem se proto smiřoval s faktem, že kýžený soupis budu vytvářet na vlastní pěst. Mé myšlenky směřovaly k využití nejrůznějších slovníků používaných pro kontrolu pravopisu a tento nápad mi následně potvrdil i jeden tip, jenž jsem během procházení internetu objevil.
Problémy nečiní ani jiné slovní druhy
K získání seznamu nejprve zamiřte na www.openoffice.cz, kde stáhnete český slovník ve formátu oxt. U souboru následně zaměňte koncovku na zip a použijte libovolný dekomprimační nástroj. Uvnitř archívu čeká několik souborů, z nichž pro nás momentálně nejzajímavější nese označení cs_CZ.dic. Doporučuji se rovněž seznámit s přiloženou licencí. Zmíněný souhrn pochází původně ze slovníku pro ispell a přichází s formátem, jenž umožňuje identifikovat kýžené objekty zájmu. Pro tento účel jsem vytvořil jednoduchý skript v PHP, jenž celý soubor postupně projde a vybere pouze ta slova, o které má daný uživatel skutečně zájem. V mém případě šlo o řádky, jenž za symbolem lomítka (/) obsahovaly buď znak H nebo Z.
$lines = file("./cs_CZ.dic"); $fileName = "podstatna_jmena.txt"; for($i = 0 ; $i < count($lines); $i++) { $currentLine = explode("/", $lines[$i]); if( (strpbrk($currentLine[1], "HZ") != false) ) { file_put_contents($fileName, $currentLine[0]."\n", FILE_APPEND); } }
Nejprve jsem celý obsah slovníku s pomocí funkce file proměnil na pole. Následovalo jeho procházení s pomocí klasického iteračního cyklu. Na každý řádek byla aplikována snaha o jeho rozdělení na dvě poloviny díky explode. Pokud funkce strpbrk nalezla kýžený písmenný znak, dovolila provést zápis do druhého pomocného souboru. Po ukončení činnosti scriptu jeho obsah tvořily pouze slovní druhy, o něž skutečně stojíte – zde tedy konkrétně výhradně podstatná jména. Jejich předání dalšímu programu či scriptu následně již nic nezabrání.
Příchozí dotazy:
- slovník podstatných jmen
- seznam podstatných jmen
- seznam českých slov
- slovník českých slov txt
- databáze českých slov
- česká podstatná jména
- seznam českých podstatných jmen
Ahoj, jsem takový lajk že nepoberu ani toto vysvětlení za to se předem omlouvám. Mohl bych Vás poprosit o váš čas výčet podstatných jmen jednotného a množného čísla od A do Z ve formátu .TXT (poznámkový blok) řazené pod sebou? Snad tato informace lze z výše uvedenéh slovníku vytáhnout..? Předem velice děkuji
Jan Zeman
http://pastebin.com/7uPetKWh
Ahoj, no to je neuvěřitelný, já po tom pátrám už týdny děkuju moc.
Dovolim si položit ještě jednu otázku, jde do tohoto seznamu zařadit i množná čísla? př.: kolo-kola, matka-matky
díky ještě jednou moc
H
To bohužel ve slovníku není.
tohlencto vážně není slovník
Zdravím, šikovná věcička. ale hodilo by se kdybys napsat co znamenají jednotlivé znaky za lomítkem. Pro případ že někdo (npř. já) hledá jiný slovní druh. předem díky.
Ahoj,
pěkný článek, děkuji moc. Podstatná jména použiji ve svém programu(pro osobní účely).
Na tisíckrát děkuji za fantastický post. Tohle mi hodně pomůže.
Bohužel ne všechny podstatná jména mají za lomítkem H nebo Z. Ve vašem ukázkovém textovém souboru chybí i docela běžná slova jako „čaj“ nebo „pes“.
Kód v zápisku vygeneruje pouze malý zlomek podstatných jmen. H a Z nejsou zdaleka všechny suffixy. Jsou potřeba minimálně suffixy ZHSQMPUL a možná další. Tady je příkaz, který používám pro vygenerování seznamu:
aspell -l cs dump master | grep '/[ZHSQMPUL]' | sed 's_/.*$__;'
Upozorňuju ale, že ani tohle nevygeneruje kompletní seznam podstatných jmen, mj. protože některá vůbec suffix nemají. Například „hmyz“ nebo „ďábel“.