from bs4 import BeautifulSoup
from collections import Counter
import re
def clean_html(html_text):
# Gebruik BeautifulSoup om HTML-tags te verwijderen en alleen de tekst te behouden
soup = BeautifulSoup(html_text, "html.parser")
return soup.get_text()
def count_words(text):
# Filter woorden met alleen letters en maak ze allemaal klein om consistentie te behouden
words = re.findall(r'\b\w+\b', text.lower())
# Gebruik Counter om de frequentie van elk woord te tellen
word_counts = Counter(words)
return word_counts
def main():
# Lees de inhoud van het HTML-bestand
with open('voorbeeld.html', 'r', encoding='utf-8') as file:
html_content = file.read()
# Reinig de HTML en haal alleen de tekst op
cleaned_text = clean_html(html_content)
# Tel de frequentie van de woorden
word_frequencies = count_words(cleaned_text)
# Toon de frequentie van de woorden
for word, count in word_frequencies.most_common():
print(f"{word}: {count}")
if __name__ == "__main__":
main()