Pāriet uz saturu

Rakstzīmju Biežuma Analīzes un Vizualizācijas Rīks

Bezmaksas rakstzīmju biežuma analīzes rīks. Momentāli vizualizē burtu sadalījuma modeļus. Ideāls kriptogrāfijai, datu kompresēšanai, teksta kodēšanas noteikšanai un lingvistiskai analīzei.

Rakstzīmju biežuma analīze

Ielādes kalkulators...
📚

Dokumentācija

Kas ir rakstzīmju biežuma analīze?

Rakstzīmju biežuma analīze ir process, kurā saskaita, cik reižu teksta fragmentā parādās katra rakstzīme. Tā ietver burtus, ciparus, atstarpes, pieturzīmes un jebkuru citu tekstā esošu simbolu. Rezultāts ir vienkārša tabula vai diagramma: viena rakstzīme, viens skaits.

Šis rīks pieņem jebkādu tajā ielīmētu vai ievadītu tekstu un automātiski saskaita katru rakstzīmi. Tas izveido stabiņu diagrammu ar skaitīšanas rezultātiem, tāpēc biežāk sastopamās rakstzīmes ir uzreiz pamanāmas. Norādot uz stabiņu vai pieskaroties tam, tiek parādīts precīzs attiecīgās rakstzīmes skaits.

Šī metode ir sena. Arābu zinātnieks Al Kindī to 9. gadsimtā aprakstīja kā veidu, kā atšifrēt vienkāršus šifrus. Mūsdienās to izmanto arī datu saspiešanā, pareizrakstības un kodējuma pārbaudēs, kā arī valodas pamatidentificēšanā.

Kā aprēķināt rakstzīmju biežumu

Rakstzīmju biežuma manuāla aprēķināšana ietver trīs darbības:

  1. Izskatiet tekstu pa vienai rakstzīmei, ieskaitot atstarpes un pieturzīmes.
  2. Veidojiet katras atšķirīgās rakstzīmes tekošo uzskaiti. Jauna rakstzīme sākas ar 1; atkārtota rakstzīme esošajam skaitam pievieno 1.
  3. Uzskaitiet katru rakstzīmi ar tās galīgo skaitu.

Šis rīks dara to pašu automātiski, izmantojot datu struktūru, ko sauc par jaucējtabulu (meklējamu tabulu, kurā vērtība tiek glabāta zem atslēgas). Katrai teksta rakstzīmei tas pārbauda, vai šai rakstzīmei tabulā jau ir ieraksts. Ja ir, rīks glabātajam skaitam pievieno 1. Ja nav, tas izveido jaunu ierakstu ar skaitu 1. Šī metode apstrādā katru rakstzīmi tieši vienu reizi, tāpēc tās izpildes laiks pieaug tieši proporcionāli teksta garumam, nevis straujāk.

Pēc saskaitīšanas rīks rezultātus sakārto alfabētiski pēc rakstzīmes. Pašlaik tas nepiedāvā iespēju tos kārtot pēc skaita.

Rakstzīmju biežums procentos

Skaitļus vienus pašus var būt grūti salīdzināt tekstiem ar atšķirīgu garumu. Tāpēc biežumu bieži izsaka procentos no kopējā rakstzīmju skaita:

f(c)=ncN×100%f(c) = \frac{n_c}{N} \times 100\%

Šeit ncn_c ir tas, cik reižu parādās rakstzīme cc, bet NN ir kopējais rakstzīmju skaits tekstā. Šis rīks parāda neapstrādātos skaitus un kopējo rakstzīmju skaitu, nevis procentu sleju, taču jebkuras rakstzīmes procentuālo daļu var aprēķināt, tās skaitu dalot ar kopējo skaitu un reizinot ar 100.

Aprēķina piemērs

Aplūkosim vārdu "mississippi", kurā ir 11 rakstzīmes un nav atstarpju vai pieturzīmju.

Saskaitot katru burtu, iegūst:

RakstzīmeSkaitsProcentuālā daļa
i436,4%
m19,1%
p218,2%
s436,4%

Tabula ir sakārtota alfabētiski (i, m, p, s), atbilstoši tam, kā šis rīks kārto rezultātus. Skaitļu summa ir 11, kas ir vārda kopējais garums. Lai iegūtu procentuālo daļu sleju, katrs skaits tika dalīts ar 11 un reizināts ar 100, piemēram, 4 ÷ 11 × 100 ≈ 36,4%.

Kā izmantot šo rīku

Ierakstiet vai ielīmējiet tekstu ievades laukā. Rīks to analizē uzreiz, un nav jānospiež neviena poga. Tekstam mainoties, rakstzīmju saraksts un stabiņu diagramma tiek atjaunināti.

Rezultātu sadaļā tiek parādīts:

  • Stabiņu diagramma ar vienu stabiņu katrai rakstzīmei. Augstāki stabiņi nozīmē, ka rakstzīme parādās biežāk.
  • Kopējais rakstzīmju skaits tekstā, ieskaitot atstarpes un pieturzīmes.
  • Precīzs katras rakstzīmes skaits, kas tiek parādīts, norādot uz tās stabiņu vai pieskaroties tam.

Poga "Kopēt" noformē rezultātus kā vienkāršu tekstu — viena rakstzīme un skaits katrā rindā —, kas ir gatavs ielīmēšanai izklājlapā vai dokumentā. Šajā izvadē atstarpes tiek apzīmētas ar "space", lai tās netiktu sajauktas ar tukšām rindām.

Parastā angļu valodas tekstā tādi burti kā E, T, A, O un I parasti ir starp biežāk sastopamajiem. Teksts, kurā reti burti, piemēram, Q vai Z, parādās neparasti bieži, var būt kodēts, šifrēts vai rakstīts citā valodā.

Rakstzīmju biežuma analīzes izmantojums

Aizstāšanas šifru uzlaušana

Aizstāšanas šifrs aizstāj katru ziņojuma burtu ar citu burtu vai simbolu, visā tekstā izmantojot vienu un to pašu aizstāšanu. Tā kā aizstāšana ir konsekventa, sākotnējās valodas biežuma raksts saglabājas šifrētajā tekstā. Angļu valodā burts E parādās aptuveni 12–13% gadījumu. Ja kāds šifrteksta simbols parādās aptuveni tikpat bieži, tas ir ticams kandidāts E aizstājējam. Gadsimtiem ilgi tā bija galvenā metode aizstāšanas šifru uzlaušanai, līdz mūsdienu šifrēšana padarīja to nederīgu visam, izņemot mīklas un vēsturiskus dokumentus.

Datu saspiešana

Saspiešanas formāti, piemēram, ZIP un GZIP, izmanto rakstzīmju biežumu, izmantojot pieeju, ko sauc par Hafmana kodēšanu. Bieži sastopamās rakstzīmes saņem īsus bināros kodus, bet retās rakstzīmes — garākus. Tā kā biežās rakstzīmes katrā parādīšanās reizē aizņem mazāk vietas, viss fails kļūst mazāks, nezaudējot nekādu informāciju.

Kodējuma problēmu pamanīšana

Teksts, kurā tiek parādītas dīvainas, neparedzētas rakstzīmes (piemēram, "é", kur vajadzētu būt "é"), bieži norāda uz neatbilstību starp rakstzīmju kodējumu, kurā fails tika saglabāts, un kodējumu, kas izmantots tā nolasīšanai. Biežuma diagramma, kurā parasto burtu vietā redzams neparasts dīvainu simbolu pieaugums, var palīdzēt apstiprināt kodējuma problēmu.

Valodas identificēšana

Dažādām valodām ir atšķirīgi tipiskie rakstzīmju sadalījumi. Angļu valodā bieži sastopami E, T un A. Vācu valodā E un N parādās daudz biežāk, turklāt tajā ir tādi burti kā ä, ö un ü, kas angļu valodā vispār nav sastopami. Salīdzinot teksta rakstzīmju biežumu ar zināmiem valodu profiliem, var ātri un aptuveni noteikt tā valodu.

Rakstības stils un autorība

Tā kā rakstniekiem parasti ir pastāvīgi paradumi pieturzīmju un burtu lietošanā, rakstzīmju līmeņa raksti var kalpot kā neliels pierādījums autorības noteikšanā. Rakstzīmju biežums pats par sevi reti pierāda, kas kaut ko ir uzrakstījis; tas vislabāk darbojas kopā ar vārdu izvēli, teikumu garumu un citām stilistiskām pazīmēm.

Citas teksta analīzes metodes

Rakstzīmju biežums nav vienīgais teksta analīzes veids.

  • Vārdu biežums saskaita veselus vārdus, nevis rakstzīmes. Tas ir tuvāks teksta nozīmei un ir izplatīts atslēgvārdu izpētē un tematu analīzē.
  • N-grammu analīze aplūko īsas rakstzīmju vai vārdu virknes, piemēram, pārus vai trijniekus. Tā tiek izmantota prognozējošajās tastatūrās un automātiskajā pabeigšanā, lai uzminētu nākamo burtu vai vārdu.
  • Noskaņojuma analīze nosaka, vai teksts izklausās pozitīvs, negatīvs vai neitrāls, izmantojot metodes, kas sniedzas daudz tālāk par vienkāršu skaitīšanu.
  • Lasāmības analīze, piemēram, Flesch–Kincaid rādītājs, novērtē, cik grūti ir lasīt tekstu, pamatojoties uz teikumu un vārdu garumu.

Biežāk uzdotie jautājumi

Ko rakstzīmju biežuma analīze parāda?

Tā parāda, cik bieži katra rakstzīme parādās tekstā. Rezultātu izpēte var atklāt rakstus, kas noder kriptogrāfijā, saspiešanā, kodējuma kļūdu pamanīšanā vai teksta valodas noteikšanā.

Kā šis rīks kārto rezultātus?

Tas kārto rakstzīmes alfabētiski. Nav iespējas kārtot pēc skaita. Biežāk un retāk sastopamās rakstzīmes jāatrod, aplūkojot stabiņu diagrammu vai pārskatot skaitļus nokopētajā tekstā.

Vai rīks parāda procentuālās daļas?

Nē. Tas parāda katras rakstzīmes neapstrādāto skaitu un kopējo rakstzīmju skaitu. Procentuālo daļu var aprēķināt, rakstzīmes skaitu dalot ar kopējo skaitu un reizinot ar 100.

Vai rakstzīmju biežuma analīze var uzlauzt mūsdienu šifrēšanu?

Nē. Tā darbojas tikai pret vienkāršiem aizstāšanas šifriem, kuros viena rakstzīme vienmēr apzīmē vienu un to pašu aizstājējrakstzīmi. Mūsdienu šifrēšana, piemēram, AES, rada izvadi bez šāda konsekventa raksta, tāpēc biežuma skaitīšana neko neatklāj par sākotnējo ziņojumu.

Vai rīks skaita atstarpes un pieturzīmes?

Jā. Tiek skaitīta katra ievades rakstzīme, tostarp atstarpes, tabulatori, rindu pārtraukumi un pieturzīmes. Parastā tekstā atstarpes bieži ir viena visbiežāk sastopamā rakstzīme.

Cik daudz teksta vajadzīgs uzticamiem rakstiem?

Daži simti rakstzīmju ir saprātīgs minimums. Ļoti īsā tekstā biežums nejaušības dēļ var ievērojami atšķirties no sagaidāmā raksta. Garāki paraugi, kuros ir tūkstotis rakstzīmju vai vairāk, parasti precīzāk atbilst zināmiem valodu rakstiem.

Atsauces

  1. MDN Web Docs: Map — dokumentācija par jaucējtabulas datu struktūru, ko izmanto efektīvai rakstzīmju skaitīšanai.
  2. Shannon, C. E. (1951). "Drukātās angļu valodas prognozēšana un entropija." The Bell System Technical Journal, 30(1), 50-64.
  3. Huffman, D. A. (1952). "Minimālas redundances kodu konstruēšanas metode." Proceedings of the IRE, 40(9), 1098-1101.
  4. Hafmana kodēšana — Wikipedia