frekvencia textu

Sekcia: Programovanie 26.04 | 16:04
Avatar robo   Návštevník

Mam zlozku kde mam vela *.txt suborov. Potrebujem scitat pocet slov v kazdom subore. Myslene je to tak ze scitat z kazdeho suboru pocet slove NAPR.: 1500 a 500 ahoj 150 tak ...

Pomocou bash scriptu

    • RE: frekvencia textu 26.04 | 16:32
      Avatar bedňa antiX, Devuan, LegacyIce  Administrátor

      wc

      Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
      • RE: frekvencia textu 26.04 | 16:37
        Avatar samalama.   Návštevník

        to mu zrata len slova ako take. on chce (zeby na skusku?) zistit kvantitu jednotlivych slov v subore...

        for ... | cat ... | tr ... | sort ... | uniq ...
        • RE: frekvencia textu 26.04 | 16:43
          Avatar robo   Návštevník

          Nieje to na skusku ale robim jednu pracu a budem porovnavat dva vyskumi. A presne ako vravis musim zistit tu kvantitu slov. Ono ja by som to aj mal hotove az nato ze mi to osobitne pocita napriklad Ahoj ahoj ahoj. ahoj! A neviem to spravit aby to slo tak ze ties styri rozne ahoj budu pocitane ako 4 ahoj. A tak isto to neviem pouzit na celg priecinok ale iba na jeden subor

          • RE: frekvencia textu 26.04 | 16:50
            Avatar bedňa antiX, Devuan, LegacyIce  Administrátor

            Skús toto:

            cat súbor | tr [:space:] '\n' | grep -v "^\s*$" | sort | uniq -c | sort -bnr

            Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
          • RE: frekvencia textu 26.04 | 16:52
            Avatar samalama.   Návštevník
            for file in *.txt; do
                echo "=== $file ==="
            
                cat $file | tr -s '[:space:]' '\n' | \
                  sed 's/[^a-zA-Z0-9]//g' | tr '[:upper:]' '[:lower:]' | \
                  sort | uniq -c
            done

            pisane z hlavy...

            • RE: frekvencia textu 26.04 | 16:59
              Avatar robo   Návštevník

              toto ide najlepsie zatial zo vsetkych ktore som pisal ja abo mi dakto dal... len nieco tam spravilo nedobre to ze pri niektorych slovach vymazalo medzeri a pocitalo to ako jedno slovo napriklad akokeďsaholubvpazderízamotá

            • RE: frekvencia textu 26.04 | 17:04
              Avatar robo   Návštevník

              a este jedna vec ze ci sa to neda spravit tak aby scitalo vsetky subory dokopy. ak tam budem mat 10 txt suborov tak tu statistiku spravi dokopi zo vsetkych nie z kazdeho zvlast. Dikes

              • RE: frekvencia textu 26.04 | 17:07
                Avatar samalama.   Návštevník

                zeby

                cat *.txt | tr -s '[:space:]' '\n' | \
                  sed 's/[^a-zA-Z0-9]//g' | tr '[:upper:]' '[:lower:]' | \
                  sort | uniq -c
                • RE: frekvencia textu 26.04 | 17:15
                  Avatar robo   Návštevník

                  ano super diky pekne viac menej to ide tak ako ma az nato ze stale niektore slova da dokopi ako jedno...

                  a mam este jednu otazky pomocou tochto tu vymazavam entery a nahradzujem medzerami no neide mi to na vsetky subory. mam chybu v tomto abo v suboroch?

                  for file in *.txt; do sed -i ':a;N;$!ba;s/\n/ /g' $file; done

                • RE: frekvencia textu 26.04 | 17:33
                  Avatar robo   Návštevník

                  prisiel som nato preco niektore slova spaja dokopi a bere ako jedno velke. medzi tymi slovami je medzera no on ju asi vymaze alebo co a nechapem preco

                  • RE: frekvencia textu 26.04 | 17:36
                    Avatar samalama.   Návštevník

                    nie su tam nejake specialne znaky? subory su v dos alebo unix formate?

                  • RE: frekvencia textu 26.04 | 17:39
                    Avatar samalama.   Návštevník

                    pripadne miesto

                    tr -s '[:space:]' '\n'

                    pouzit

                    sed 's/[[:space:]]\+/\n/g'
                    • RE: frekvencia textu 26.04 | 17:42
                      Avatar robo   Návštevník

                      niesu tam specialne znaky ked som to hladal v texte tak tam je normalne medzera. skusil som to potom vymazat a dat medzeru ja a uz to naslo normalne cize nechapem a su vo formate txt vytvaral som ich v unixe skusi som aj vymenit ten sed no tak isto to ide

                    • RE: frekvencia textu 26.04 | 17:45
                      Avatar robo   Návštevník

                      prejde sa hore i dolu takto to vyzera v subore txt a nalavo mas ako to scitalo mas tam dokopi slovo prejdesahoreidolu

                      • RE: frekvencia textu 26.04 | 17:46
                        Avatar robo   Návštevník

                        fotka

                      • RE: frekvencia textu 26.04 | 17:46
                        Avatar samalama.   Návštevník

                        bez zdrojoveho suboru sa tazko radi...

                        • RE: frekvencia textu 26.04 | 17:53
                          Avatar robo   Návštevník

                          tak tu su oba subory

                          • RE: frekvencia textu 26.04 | 18:24
                            Avatar samalama.   Návštevník

                            tak jedine, co mi pomohlo, bolo v loffice nahradit tu divnu medzeru za "normalnu" medzeru.

                            btw tie subory su ulozene v mac formate...

                            • RE: frekvencia textu 26.04 | 18:45
                              Avatar robo   Návštevník

                              tak potom budem musiet zmenit tie data na ktore pouzivam ten script... a mam este jednu otazku... ako zmenit vsetky entery v tych suboroch na medzeri a to tak ze prepisu obsah suboru ak mam subor ahoj.txt a vnom 5 enterov tak pomocou toho skriptu nech sa zmeni subor ahoj.txt a nech tam tych 5 enterov nieje a miesto nich tam su medzeri

                              • RE: frekvencia textu 26.04 | 18:57
                                Avatar samalama.   Návštevník

                                1 riadok = 1 medzera

                                sed 's/^[[:space:]]*$/ /g' file.txt | tr '\n' ' ' > new_file.txt

                                X riadkov = 1 medzera

                                sed '/^[[:space:]]*$/d' file.txt | tr '\n' ' ' > new_file.txt
          • RE: frekvencia textu 26.04 | 16:52
            Avatar bedňa antiX, Devuan, LegacyIce  Administrátor

            Oprava:

            cat súbor | tr [:space:] '\n' | grep -vi "^\s*$" | sort | uniq -c | sort -bnr

            Netestované, tak vyskúšaj a daj vedieť.

            Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
            • RE: frekvencia textu 26.04 | 16:57
              Avatar bedňa antiX, Devuan, LegacyIce  Administrátor

              Tak ešte bug :)

              cat * | tr [:space:] '\n' | grep -vi "^\s*$" | sort | uniq -c | sort -bnr

              Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
              • RE: frekvencia textu 26.04 | 17:17
                Avatar bedňa antiX, Devuan, LegacyIce  Administrátor

                Toto moje riešenie nefunguje?

                Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
                • RE: frekvencia textu 26.04 | 17:20
                  Avatar robo   Návštevník

                  nie kedze pri tvojom riesenie nemyslis nato ze ak konci veta bodkou tak to slovo vezme ako dalsi druh a nie ten isty cize ahoj a ahoj. ti spocita ako dve slova a nie ako jedno... a tak isto na zaciatku vety velke pismeno naprilad Ahoj a ahoj ti vezme ako dve slova no malo by len ako jedno

                  • RE: frekvencia textu 26.04 | 18:28
                    Avatar bedňa antiX, Devuan, LegacyIce  Administrátor

                    Teraz som to upravil a odskúšal, vyzerá to na prvý pohľad OK.

                    cat * | tr '[:upper:]' '[:lower:]' | tr [:space:] '\n' | grep -i "^[a-z0-9]*$" | sort | uniq -c | sort -bnr

                    Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
                    • RE: frekvencia textu 26.04 | 19:04
                      Avatar bedňa antiX, Devuan, LegacyIce  Administrátor

                      Toto fakt nefunguje? Pretože ja mám pocit že áno.

                      Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
                      • RE: frekvencia textu 26.04 | 19:33
                        Avatar samalama.   Návštevník

                        tak janka je tam minimalne 11-krat...

                        • RE: frekvencia textu 26.04 | 21:03
                          Avatar bedňa antiX, Devuan, LegacyIce  Administrátor

                          Tak buď je to nejaká hra so špeciálnymi znakmi ... ale nechce sa mi už nad tým rozmýšľať :) Možno to troskatá na tom že je to od Macu, neviem.

                          Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
    • RE: frekvencia textu 26.04 | 16:45
      Avatar samalama.   Návštevník

      a Pomocou bash scriptu je tiez take salamunske, lebo cisto v bash-i to nejde, a v tom bashi si zase mozem "spustit" perl/php/.../C skript/program. takze tak...

    • RE: frekvencia textu 26.04 | 19:12
      Avatar WlaSaTy   Návštevník

      Jedná sa o generickú otázku, a odpoveď dodá akýkoľvek prehliadavač. Stačí ak človek zadá správne naformulovanú otázku, napríklad: count+unique+words+in+file.

      Mimochodom, načo to potrebuješ? Ja som to používal na prelome tisícročí ako spam filter. Podhodil som mu SPAM ako nevyžiadanú, HAM ako žiadanú poštu a on sa prvotne nakalibroval. Počas detekcie každého jedného emailu sa sám rekalibrovával. Princíp už pochopíš.

      • RE: frekvencia textu 26.04 | 19:32
        Avatar samalama.   Návštevník

        kolko chytrych kecov a hovno si poradil (ako vzdy)...

        • RE: frekvencia textu 26.04 | 20:31
          Avatar WlaSaTy   Návštevník

          Pokiaľ si nepochopil čo máš zadať do vyhľadávača, tak choď za pani ošetrovateľkou.

        • RE: frekvencia textu 26.04 | 20:39
          Avatar wamba   Návštevník

          V Perlu 6

          perl6 -e 'slurp().comb(/\w+/).Bag.sort(*.value).reverse».put'  *.txt 
          
          Varianta pro Perl 5

          perl -C -nE '$w{ $_ }++ for /(\w+)/g; END {say "$_\t", $w{$_} for reverse sort { $w{ $a } <=> $w{ $b } }  keys  %w}' *.txt
          
    • RE: frekvencia textu 26.04 | 22:17
      Avatar wamba   Návštevník

      Tak ještě jednou tentokrát řeším i velká písmena

      řešení problému v Perlu 6:

      perl6 -e 'slurp().fc.comb(/\w+/).Bag.sort(*.value).reverse».put' *.txt
      

      a v Perlu 5:

      perl -CSDL -nE '$w{ fc $_ }++ for /(\w+)/g; END {say "$_\t", $w{$_} for reverse sort { $w{ $a } <=> $w{ $b } }  keys  %w}' *.txt
      
    • RE: frekvencia textu 14.05 | 21:35
      Avatar robo   Návštevník

      Je nejaky sposob na to ako zistit ci je subor v mac alebo unix formate ? Vraj je to rozdiel a potreboval by som to zistit pre kazdy subor v priecinku a ak najdem take ktore su mac potrebujem ich prekonvertovat do unix-u.

      • RE: frekvencia textu 14.05 | 21:58
        Avatar bedňa antiX, Devuan, LegacyIce  Administrátor

        Príkaz file test.txt

        by mal pri OSX súboroch vypísať:

        test.txt: ASCII text, with CR line terminators

        Pri Linuxových texťákov by mal vypísať len:

        test.txt: ASCII text

        Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
        • RE: frekvencia textu 14.05 | 22:07
          Avatar robo   Návštevník

          A ked to vypisalo UTF-8 Unicode text co znamena ten "Unicode text" ?

      • RE: frekvencia textu 14.05 | 22:16
        Avatar WlaSaTy   Návštevník

        Rozdiel to bol, ale v časoch keď Apple nepoužívalo BSD Unix. Ak tie súbory nemajú viac ako 10 rokov, tak sa ťa to asi určite netýka.

    • RE: frekvencia textu 14.05 | 22:46
      Avatar robo   Návštevník

      Ano chapem. Uz som si to nasiel aj sam na nete. A mam este jednu otazku ako scitam vsetky tokeny v 1800 .txt suboroch dokopi?

      • RE: frekvencia textu 14.05 | 23:17
        Avatar samalama.   Návštevník

        co je to token?

    • RE: frekvencia textu 18.05 | 14:33
      Avatar robo   Návštevník

      ak chcem aby mi toto tu cat *.txt | tr -s '[:space:]' '\n' | \ sed 's/[^a-zA-Z0-9]//g' | tr '[:upper:]' '[:lower:]' | \ sort | uniq -c

      pocitalo aj bodky dvojbodky vykricniky uvodzovky ale osobitne ako to spravit? dakujem