Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – Macher na Javu - Analýza textu

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
PiskotPiskotovic:28.7.2014 16:30

Když dám stáhnout, vybafne na mě Neplatný soubor. Rád bych si vyzkoušel funkčnost, tak to prosím oprav :)

Odpovedať
Error 404 - stránka motto.php nenalezena.
Avatar
Odpovedá na PiskotPiskotovic
Michal Haňáček:28.7.2014 17:02

Ahoj, s tím bohužel asi moc nezmůžu. Soubor se zdrojáky k článku přiložený je, tohle vypadá spíš na problém ITNetworku. David Hartinger, nebo Michal Žůrek - misaz by k tomu možná věděli víc. Každopádně stejný problém jsem měl když jsem si chtěl stáhnout zdrojáky od Ondrcy ...

Odpovedať
Každé rozhodnutí a každý krok v životě nás někam posune. Bohužel jen některé nás posouvají dopředu.
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na PiskotPiskotovic
David Hartinger:28.7.2014 17:10

Díky, opraveno.

Odpovedať
New kid back on the block with a R.I.P
Avatar
Odpovedá na David Hartinger
PiskotPiskotovic:28.7.2014 17:19

To já děkuju tobě :D

Odpovedať
Error 404 - stránka motto.php nenalezena.
Avatar
Lubor Pešek
Člen
Avatar
Odpovedá na Michal Haňáček
Lubor Pešek:29. júla 11:11

Trošku bizár reagovat po jedenácti letech na něčí zdroj (nepochybně bys to dneska napsal určitě líp). Nicméně to, co tu visí, tak už v té době nebylo v pořádku :)
Jednak špatně to počítá písmena (mezi písmena ti to počítá i čárky, středník atd.)

A hlavně nepočítals s tím, že ukončovací znaky nemusí vždy znamenat konec vět.
Popravdě jsem si to z hecu zkusil napsat sám.
Čísla, samohlásky, souhlásky (dokonce bílé znaky a speciální znaky), tak to je naprogramováno během chvilky. Regex to řeší lehce a to dokonce na souboru o 1 milionu znaků.

Ovšem počítání vět...
Když jsem to vzal důsledně, tak to není ani omylem lehký problém. Právě naopak.
V textu můžeš mít spoustu kontextových zkratek, které využívají ukončovací znaménka, takže rozhodně se nedá počítat počet vět jen díky tomu, že si spočítáš tečky vykřičníky otazníky středníky a dvojtečky.
Pár příkladů:

  • trojtečka
  • zkratky (tj. atd. např.)
  • výčet v seznamu (1. první bod, 2. druhý bod atd.)
  • smajlíci ( ;-) )
  • faktoriál
  • když někdo v textu bude mluvit o matematice a zadá souřadnice bodu stylem: A[12;33]
  • psaní datumu a času: 1.1.2000 13:00
  • zdůraznění, že se jedná o zásadní otázku: na toto bych se důrazně zeptal ?!?
  • Někdo v textu napíše více vykřičníků (takže ve tvém případě - co vykřičník, to věta :) )
  • V textu zdůrazněný "nadpis" stylem: !NA TOTO POZOR! (ty už bys v tom měl dvě věty)

No a hlavně.... Přišel jsem na takovou šílenost, kterou jde už snad jen vyřešit pomocí AIčka nebo nějakou dobře napsanou výjimkou, ale to už je fakt asi vyšší dívčí.

Když bys zaváděl pravidla třeba stylem:

  1. tečka znamená konec věty, pokud ovšem před tečkou není číslo. Pak znamená pořadové číslo
  2. Pokud je za tečkou slovo začínající velkým písmenem, tak to znamená, že tečka ukončuje větu

No a co třeba tento příklad:
Martin v závodě skončil 3. Jen těsně neskončil na 2. místě. Víme, že skončil jako 1. Adam.

A teď zaváděj pravidla, která tečka je ukončující a která ne :D (když dokonce první tečka v takové větě je nejen konec věty, ale také určuje pořadové číslo).

Tím v žádném případě neurážím ani nezesměšňuji tvůj projekt!!!!!!!!
Jen jsem tu do komentáře rozvedl, že počítání vět ani v nejmenším nemůžeme tak trivializovat, že budeme jen počítat tečky, vykřičníky, otazníky atd.

PS: díky za dobrý námět k ročníkové práci. Je to tak široká problematika, že to může stát za to;)

Odpovedať
Existují dva způsoby, jak vyřešit problém. Za prvé vyhoďte počítač z okna. Za druhé vyhoďte okna z počítače.
Avatar
DarkCoder
Člen
Avatar
Odpovedá na Lubor Pešek
DarkCoder:29. júla 13:17

Těch analytických chyb tam je mnohem víc. Analýza počtu vět vypadá na první pohled jednoduše ale je to extrémně náročný úkol. Kromě výjimek si vyžaduje hlubší analýzu. A co je důležité, pro analýzu věty je důležitá větná struktura, ne přítomnost tečky na konci.

Pro zajímavost nadpisy:

Jak jsme zvítězili Je věta, obsahuje přísudek (jsme zvítězili)
Naše vítězství Není věta, chybí přísudek – jen fráze

Pokud chceme vytvořit kvalitní analyzátor vět, budeme potřebovat pokročilejší metody.

Například:

Syntaktickou analýzu (parsing) textu, která rozpozná větné členy.
Kontextovou analýzu, kdy se berou v úvahu sousední věty, odstavce, nadpisy apod.
Pravidla pro zpracování speciálních případů jako jsou dialogy, nadpisy, zkratky, a víc.

PS: Pro ročníkovou práci bych si tedy rozhodně vybral něco jiného. 😆

Odpovedať
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Lubor Pešek
Člen
Avatar
Odpovedá na DarkCoder
Lubor Pešek:29. júla 13:26

Jo, však popisuji, že je to mnohem složitější, než se na první dobrou zdá.
Stejným způsobem by se v textu určitě (ne)hodnotily třeba nadpisy. Nadpis není věta a za nadpisem následuje nová věta.

Je toho strašně moc a když do toho ještě budu chtít zamíchat prvky hovorové češtiny, tak o to by to byl větší pain.

Nicméně si říkám, že přece musí existovat nějaký způsob, jak to rozeznat. Když to dokáže tak tupý tvor, jako je člověk, tak v tom nějaký systém musí být.
Ačkoliv o tom je celá čeština - 1.000 pravidel, 100.000 výjimek. (nechápu, jak někdo může tvrdit, že matika je složitá:D)

Ale to už odbočuji mimo téma.

PS: právě pro ROČNÍKOVOU práci je to skvělé téma. Nikdo neříká, že to musí být dokonalé, ale na první dobrou napíšeš základní pravidla a potom to přes rok postupně upravuješ.
A v rámci OOP by bylo skvělé, kdyby ve výsledku byl program tak rozdělen, aby jednak vypsal základní pravidla, potom speciální případy a potom výjimky.
Jsem pevně přesvědčen, že "pravidla" by byla nejmenším modulem :D

Navíc, když se to dobře napíše, tak to otevírá právě možnosti postupné editace, takže bys přidával výjimky v budoucnu, kód by to nedokurvilo a takto bys to vylepšoval bez zásahu do kódu. Jak říkám - když si připravíš dobrý model, tak pak už to jen řešíš s češtináři a hledáš skutečně kdejaký špek.

Hlavně je to i krásný příklad pro spoustu testovacích scénářů.

Odpovedať
Existují dva způsoby, jak vyřešit problém. Za prvé vyhoďte počítač z okna. Za druhé vyhoďte okna z počítače.
Avatar
DarkCoder
Člen
Avatar
Odpovedá na Lubor Pešek
DarkCoder:29. júla 13:41

Právě že některý nadpis je větou a některý ne, viz. ukázka v příspěvku. Vtip je v tom, že člověk neřeší zda kus textu se jedná o větu, je prostě empiricky naučen jak co psát. Neprovádí analýzu a to nám stačí. Pokud by ale chtěl analyzovat text, začíná problém a musí znát nejen pravidla, ale rozpoznat jednotlivé části textu a určovat co co znamená, aby ta pravidla mohl aplikovat. :-) Pokud už bych to měl opravdu řešit, určitě bych se zeptal, co si pod tím představují, co požadují. Nedokonalost bych neodevzdával.

Já jsem naopak přesvědčen, že pravidla by zabírala drtivou většinu celého programu. :-)
Je to určitě běh na dlouhou trať a o "zábavu" rozhodně postaráno. 😆

Odpovedať
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Lubor Pešek
Člen
Avatar
Lubor Pešek:29. júla 13:43

:) "nedokonalost bych neodevzdával" :)
To se mi líbí. Kdyby to tak mělo být, tak bys asi nikdy nic neodevzdal :D
Ale chápu, jak to myslíš. Nic, nebudeme tu spamovat. Měj se.

Odpovedať
Existují dva způsoby, jak vyřešit problém. Za prvé vyhoďte počítač z okna. Za druhé vyhoďte okna z počítače.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 9 správy z 9.