In deze oefening werken we met een databestand LLM.csv waarin 1104 zinnen opgenomen zijn, voor de helft door studenten geschreven, voor de helft gegenereerd door AI.
Het csv-bestand heeft 2 kolommen: in de eerste kolom een zin, in de tweede kolom het label: "student" of "ai" (of leeg).
Schermafdruk
Databestand
Het bestand is beschikbaar in het working directory van Dodona. Om te debuggen in PyCharm of in een Jupyter Notebook) zal je het bestand moeten downloaden en bewaren in dezelfde map als je .py of .ipynb bestand.
Je kan het bestand hier downloaden:
Opgave
student_of_ai
Schrijf een functie student_of_ai met één argument: een woord (string)
De de functie leest het bestand in en gaat na of dit een woord is dat eerder door studenten gebruikt werd dan wel door AI.
Ga als volgt te werk:
- Lees het csv-bestand in in een geneste lijst.
- Tel hoe vaak het woord gebruikt werd in teksten van studenten en van AI (zie kolom twee). Let op, de tweede kolom is niet ingevuld in enkele gevallen.
Om te tellen hoe vaak een woord voorkomt, maakt het niet uit of het een losstaand woord is of dat het woord deel uitmaakt van een ander woord.
Voorbeeld: In de zin "i prefer working alone, teamwork is too complicated" komt het woord "work" twee keer voor.
- Er wordt geen rekening gehouden met hoofdletters of kleine letters.
Voorbeeld: In de zin "The project team adhered to the project timeline." komt het woord "The" twee keer voor.
- De functie berekenent welk percentage van de voorkomens van dit woord toegewezen kan worden aan studenten en aan AI.
Voorbeeld: het woord "results" werd 12 keer gebruikt door AI en 39 keer door een student: dit woord werd dus voor 76.5% door studenten gebruikt.
- De functie retourneert een evaluatie onder de vorm van een string: "aantal student: X, aantal ai: Y, evaluatie: Z"
Hierin worden X en Y vervangen door het aantal keer dat dit woord voorkwam in teksten van respectievelijk studenten en AI. Z wordt vervangen zoals hieronder gedefinieerd:
- student: als het percentage van de voorkomens van het woord voor minstens 90% voorkwam in zinnen van studenten.
- eerder student: als het percentage van de voorkomens van het woord voor minstens 75% voorkwam in zinnen van studenten.
- ai: als het percentage van de voorkomens van het woord voor minstens 90% voorkwam in zinnen van ai.
- eerder ai: als het percentage van de voorkomens van het woord voor minstens 75% voorkwam in zinnen van ai.
- ambigu: als dit percentage tussen de 25% en 75% ligt
Voorbeelden
>>> student_of_ai('team')
'aantal student: 11, aantal ai: 197, evaluatie: ai'
>>> student_of_ai('time')
'aantal student: 57, aantal ai: 7, evaluatie: eerder student'
>>> student_of_ai('just')
'aantal student: 214, aantal ai: 0, evaluatie: student'
>>> student_of_ai('feedback')
'aantal student: 11, aantal ai: 15, evaluatie: ambigu'