NOVINKA: Staň se datovým analytikem od 0 Kč a získej jistotu práce, lepší plat a nové kariérní možnosti. Více informací:

Diskuze – Machr na Javu - Analýza textu

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
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 :)

Odpovědět
28.7.2014 16:30
Error 404 - stránka motto.php nenalezena.
Avatar
Odpovídá 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 ...

Odpovědět
28.7.2014 17:02
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
Odpovídá na PiskotPiskotovic
David Hartinger:28.7.2014 17:10

Díky, opraveno.

Odpovědět
28.7.2014 17:10
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
PiskotPiskotovic:28.7.2014 17:19

To já děkuju tobě :D

Odpovědět
28.7.2014 17:19
Error 404 - stránka motto.php nenalezena.
Avatar
Lubor Pešek
Člen
Avatar
Odpovídá na Michal Haňáček
Lubor Pešek:29. července 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;)

Odpovědět
29. července 11:11
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
Odpovídá na Lubor Pešek
DarkCoder:29. července 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. 😆

Odpovědět
29. července 13:17
"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
Odpovídá na DarkCoder
Lubor Pešek:29. července 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ářů.

Odpovědět
29. července 13:26
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
Odpovídá na Lubor Pešek
DarkCoder:29. července 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. 😆

Odpovědět
29. července 13:41
"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. července 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.

Odpovědět
29. července 13:43
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.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.