Četnost znaků v českém textu
Četnost znaků v českém textu, využitelné zejména pro frekvenční analýzu textu.
| Znak | Četnost (%) |
|---|---|
| E | 11% |
| A | 9% |
| O, I | 8% |
| N | 7% |
| S, T | 5% |
| L, R, U, V | 4% |
| D, K, M, P, Y | 3% |
| C, B, J, Z | 2% |
| Č, H, Ř, Š, Ž | 1% |
| Ď, Ť, Ň | 0.5% |
| F, G, Q, W, X | < 0.5% |
Bigramy
ST, PR, SK, CH, DN, TR
Trigramy
PRO, UNI, OST, STA, ANI, OVA, YCH, STI, PRI, PRE, OJE, REN, IST, STR, EHO, TER, RED, ICH
Kód
/**
* Vypise na vystup cetnost jednotlivych znaku souboru (v procentech),
* ignoruje znak noveho radku
* @param source zdrojovy soubor
* @param encoding kodovani souboru
*/
public static void count(File source, String encoding) throws UnsupportedEncodingException, IOException{
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(source), encoding));
TreeMap<Character, Integer> occurences = new TreeMap<Character, Integer>();
String s = null;
int counter = 0;
while((s = reader.readLine())!= null){
for(int i = 0; i < s.length(); i++){
counter++;
Character curr = (Character) s.charAt(i);
if(occurences.get(curr) == null){
occurences.put(curr, new Integer(0));
} else {
occurences.put(curr, occurences.get(curr).intValue() + 1);
}
}
}
for(Character ch : occurences.keySet()){
System.out.println(ch.toString() + ": " + (occurences.get(ch).intValue()/(double)counter * 100));
}
}


