nwords -- szógyakoriság [megoldva]

Sziasztok.

 

Nos, nem tudtam, hogy annyira elcsökevényesedek, hogy az nwords programocskát is bedarálom valahova, hogy amikor kéne, ne találjam meg.

Még a keresőkben sem lelem. Vagy tényleg megbolondultam volna?

Használja esetleg valaki?

(szógyakoriság-vizsgálatra kéne, régebben használtam, de elmászott valahova...)

Hozzászólások

Szerkesztve: 2022. 03. 15., k – 20:49

Félek, hogy az n-word  BLM-es jelentése miatt szanálták a keresőrendszerekből ezt a szót: nwords.

Mi van a világgal?

10-féle lény van:
-- aki ismeri a bináris számrendszert,
-- és amelyik nem.

cat README.md | tr  -s ' ' '\n'  | sort | uniq -c | sort  -r| awk '{print $2, $1}'

Mindenkitől elnézést kérek, ez nem program volt, hanem egy általam korábban írt script.

Szógyakoriság-számlálásra. Legjobb, ha archiválom ide, hogy máskor ne a világot kergessem emiatt...

#!/bin/sh
case $@ in
-h|--help) echo "nwords - make 1 and 2-words frequency lists from input texts
Usage: cat *.txt | nwords >freq.list"; exit;;
esac
grep -o '\([-[:alpha:]]\+ \+\)*[-[:alpha:]]\+' |
awk '{print $1;for(i=2;i<=NF;i++)print $(i-1)" "$(i)"\n"$(i)}' |
awk '{a[$0]++}END{for(i in a)print i"\t"a[i]}' |
sort -t "	" -nrk 2

Használata meg:

cat FILE | nwords > szogyakorisag.txt

10-féle lény van:
-- aki ismeri a bináris számrendszert,
-- és amelyik nem.

- Az egyszavas soroknak szerintem hibás kimenete lesz

- valamint az egyik sor végén + másik sor elején levő szópárok nem lesznek összeszámolva

cat file | tr -sc '[a-z]' '\n' | ...

és máris minden szó egy önálló sorban van, lehet feldolgozni


tr -cs '[:alpha:]' '\n' | awk '{ if ( prevline != "" ) { print prevline, $0;} ; prevline = $0 }' |
awk '{a[$0]++}END{for(i in a)print i"\t"a[i]}' |
sort -t "	" -nrk 2

Mondjuk én kihagynám a dupla awk-t, és helyette egyben előállítanám a kívánt szótárat és már ki is íratnám, azaz a 2 awk helyett csak egy lenne:


awk '{ if ( prevline != "" ) a[ prevline " " $0 ]++ ; prevline = $0 ; } END { for (i in a) print i "\t" a[ i ] ; }'

Ja, most jövök rá, hogy ez az egyszavas gyakoriságokat nem számolja. Akkor az awk első parancsa legyen (az if előtt) egy:


awk 'a[ $0 ]++ ; if ...'

És akkor már jó. (Azt hiszem.)

Rengeteg dolog van, amire régebben itt kaptam segítséget. Az is egyfajta archiválás, ha a végére odaírom a teljesen kész kódot. Mást is láttam már, hogy itt így cselekszik, remélem nem bűn.

10-féle lény van:
-- aki ismeri a bináris számrendszert,
-- és amelyik nem.

Ez nagyon igaz. Sőt, nem csak a közzétételre a legjobb a git, meg verziókezelésre, hogy a régebbi állapotokat is vissza lehessen nyerni, hanem arra is, hogy a kódot javítsák mások. Nem muszáj májkrémszaftos github-nak lennie, lehet akárhol hosztolt git-tároló.

Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”