32 lines
944 B
Python
32 lines
944 B
Python
|
import AlphabetUtils as au
|
||
|
|
||
|
|
||
|
def calculate_frequency(text: str, fancy_printing: bool = False):
|
||
|
"""
|
||
|
Calculates the frequency of every letter in the german alphabet for the given text
|
||
|
:param text: The text to calculate the letter frequency for
|
||
|
:return: A list of frequencies, where index 0 contains the frequency of a in percent and so on.
|
||
|
"""
|
||
|
occurrence_count = [0 for i in range(26)]
|
||
|
|
||
|
for char in text:
|
||
|
if au.is_letter_of_alphabet(char):
|
||
|
char_index = au.get_index_of_letter(char)
|
||
|
occurrence_count[char_index] += 1
|
||
|
|
||
|
occurrence_frequency = []
|
||
|
|
||
|
for count in occurrence_count:
|
||
|
occurrence_frequency.append(count / len(text))
|
||
|
|
||
|
if fancy_printing:
|
||
|
for i in range(26):
|
||
|
print(f'{au.get_letter_at_index(i, True)}: {occurrence_frequency[i] * 100}%')
|
||
|
|
||
|
return occurrence_frequency
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
print(
|
||
|
calculate_frequency('Hier den Text eingeben, für den die Wahrscheinlichkeiten berechnet werden sollen', True))
|