Vandaag de dag zie je om de haverklap wel ergens een woordenwolk1 (tag cloud) opduiken op het Internet. Dit is een visuele weergave van de frequentie waarmee woorden voorkomen in een tekst. Woorden die vaker voorkomen worden in een groter lettertype weergegeven. Op die manier springen de belangrijkste woorden van de tekst direct in het oog. Het visuele effect kan nog versterkt worden door te werken met verschillende kleuren en plaatsing van de woorden. Meestal wordt ook nog een lijst van stopwoorden gebruikt. Dit zijn woorden die veelvuldig in de meeste teksten voorkomen. Woorden die in deze stopwoordenlijst voorkomen, worden niet weergegeven in de woordenwolk.

woordenwolk
Voorbeeld van een woordenwolk.

Opgave

Schrijf een functie woordenwolk die de frequentie van de woorden die voorkomen in een gegeven tekstbestand teruggeeft onder de vorm van een dictionary. Elk woord uit de tekst dat niet in een gegeven stopwoordenlijst voorkomt wordt als sleutel gebruikt in de dictionary, en de corresponderende waarde is het aantal voorkomens van dat woord in de tekst. De woorden uit de tekst worden gevormd door de langst mogelijke opeenvolgingen van letters en de apostrof ('). Het tekstfragment "Don't say that word!" bestaat dus uit vier woorden.

Aan de functie moeten de locaties van twee tekstbestanden doorgegeven worden. Het eerste tekstbestand bevat enkele regels tekst. Het tweede tekstbestand bevat een stopwoordenlijst, waarbij elk stopwoord op een afzonderlijke regel staat.

def woordenwolk(tekstBestand, stopwoordenBestand)

Opmerking: Als je de functie woordenwolk correct hebt geïmplementeerd, dan wordt die gebruikt om een woordenwolk te genereren op basis van het script van een bekende langspeelfilm. Kan je achterhalen over welke film het gaat?

Voorbeeld

>>> woordenwolk('woordenwolk.txt', 'stopwoorden.txt')
{'say': 1, 'word': 2, "don't": 1}