import matplotlib matplotlib.use("Agg") import matplotlib.pyplot as plt import urllib.request import pandas as pd import math import nltk from nltk.tokenize import word_tokenize from nltk.tokenize import sent_tokenize aadress1 = "http://www.tlu.ee/~kais/Digihum_tehnoloogiad/Nadal9/A2_2018_I_II.txt" tekst1 = urllib.request.urlopen(aadress1).read().decode("utf8") sonad1 = nltk.word_tokenize(tekst1) pikkus_sonad1 = len(sonad1) laused1 = nltk.sent_tokenize(tekst1) pikkus_laused1 = len(laused1) taishaalikuga1 = len([sona for sona in sonad1 if sona[0] in "aeiouõäöüAEIOUÕÄÖÜ"]) sulghaalikuga1 = len([sona for sona in sonad1 if sona[0] in "kptgbdKPTGBD"]) kaashaalikuga1 = len([sona for sona in sonad1 if sona[0] in "fhjlmnrsšzžvFHJLMNRSŠZŽV"]) plt.bar([0, 1, 2], [taishaalikuga1, sulghaalikuga1, kaashaalikuga1], color = ["red", "blue", "green"]) plt.xticks([0, 1, 2], ["täishäälik", "sulghäälik", "suluta kaashäälik"]) plt.title("Sõnade jaotus algustähe järgi A2-tasemel") plt.text(0, taishaalikuga1, str(taishaalikuga1)) plt.text(1, sulghaalikuga1, str(sulghaalikuga1)) plt.text(2, kaashaalikuga1, str(kaashaalikuga1)) plt.savefig("haalikud_A2.png") plt.clf() aadress2 = "http://www.tlu.ee/~kais/Digihum_tehnoloogiad/Nadal6/B1_2018_I.txt" tekst2 = urllib.request.urlopen(aadress2).read().decode("utf8") sonad2 = nltk.word_tokenize(tekst2) pikkus_sonad2 = len(sonad2) laused2 = nltk.sent_tokenize(tekst2) pikkus_laused2 = len(laused2) taishaalikuga2 = len([sona for sona in sonad2 if sona[0] in "aeiouõäöüAEIOUÕÄÖÜ"]) sulghaalikuga2 = len([sona for sona in sonad2 if sona[0] in "kptgbdKPTGBD"]) kaashaalikuga2 = len([sona for sona in sonad2 if sona[0] in "fhjlmnrsšzžvFHJLMNRSŠZŽV"]) plt.bar([0, 1, 2], [taishaalikuga2, sulghaalikuga2, kaashaalikuga2], color = ["red", "blue", "green"]) plt.xticks([0, 1, 2], ["täishäälik", "sulghäälik", "suluta kaashäälik"]) plt.title("Sõnade jaotus algustähe järgi B1-tasemel") plt.text(0, taishaalikuga2, str(taishaalikuga2)) plt.text(1, sulghaalikuga2, str(sulghaalikuga2)) plt.text(2, kaashaalikuga2, str(kaashaalikuga2)) plt.savefig("haalikud_B1.png") plt.clf() aadress3 = "http://www.tlu.ee/~kais/Digihum_tehnoloogiad/Nadal9/B2_2018_I.txt" tekst3 = urllib.request.urlopen(aadress3).read().decode("utf8") sonad3 = nltk.word_tokenize(tekst3) pikkus_sonad3 = len(sonad3) laused3 = nltk.sent_tokenize(tekst3) pikkus_laused3 = len(laused3) taishaalikuga3 = len([sona for sona in sonad3 if sona[0] in "aeiouõäöüAEIOUÕÄÖÜ"]) sulghaalikuga3 = len([sona for sona in sonad3 if sona[0] in "kptgbdKPTGBD"]) kaashaalikuga3 = len([sona for sona in sonad3 if sona[0] in "fhjlmnrsšzžvFHJLMNRSŠZŽV"]) plt.bar([0, 1, 2], [taishaalikuga3, sulghaalikuga3, kaashaalikuga3], color = ["red", "blue", "green"]) plt.xticks([0, 1, 2], ["täishäälik", "sulghäälik", "suluta kaashäälik"]) plt.title("Sõnade jaotus algustähe järgi B2-tasemel") plt.text(0, taishaalikuga3, str(taishaalikuga3)) plt.text(1, sulghaalikuga3, str(sulghaalikuga3)) plt.text(2, kaashaalikuga3, str(kaashaalikuga3)) plt.savefig("haalikud_B2.png") plt.clf() kesklause1 = round(pikkus_sonad1 / pikkus_laused1, 2) kesklause2 = round(pikkus_sonad2 / pikkus_laused2, 2) kesklause3 = round(pikkus_sonad3 / pikkus_laused3, 2) plt.bar([0, 1, 2], [kesklause1, kesklause2, kesklause3], color = ["red", "blue", "green"]) plt.xticks([0, 1, 2], ["A2", "B1", "B2"]) plt.title("Lause keskmine pikkus tasemeti") plt.text(0, kesklause1, str(kesklause1)+" sõna") plt.text(1, kesklause2, str(kesklause2)+" sõna") plt.text(2, kesklause3, str(kesklause3)+" sõna") plt.savefig("lausepikkus.png") plt.clf() sagedused1 = pd.read_csv("http://www.tlu.ee/~kais/Digihum_tehnoloogiad/Nadal9/sonaliigid.txt") sagedused2 = pd.read_csv("http://www.tlu.ee/~kais/Digihum_tehnoloogiad/Nadal9/lauseliikmed.txt") sagedused1_1 = sagedused1.sort_values(by="A2_sagedus") plt.pie(sagedused1_1.A2_sagedus, labels=sagedused1_1.Sõnaliik, autopct="%1.1f%%") plt.axis("equal") plt.title("Sõnaliikide sagedused A2-tasemel") plt.savefig("sonaliigid_A2.png", bbox_inches="tight") plt.clf() sagedused2_1 = sagedused2.sort_values(by="A2_sagedus") plt.pie(sagedused2_1.A2_sagedus, labels=sagedused2_1.Selgitus, autopct="%1.1f%%") plt.axis("equal") plt.title("Lauseliikmete sagedused A2-tasemel") plt.savefig("lauseliikmed_A2.png", bbox_inches="tight") plt.clf() sagedused1_2 = sagedused1.sort_values(by="B1_sagedus") plt.pie(sagedused1_2.B1_sagedus, labels=sagedused1_2.Sõnaliik, autopct="%1.1f%%") plt.axis("equal") plt.title("Sõnaliikide sagedused B1-tasemel") plt.savefig("sonaliigid_B1.png", bbox_inches="tight") plt.clf() sagedused2_2 = sagedused2.sort_values(by="B1_sagedus") plt.pie(sagedused2_2.B1_sagedus, labels=sagedused2_2.Selgitus, autopct="%1.1f%%") plt.axis("equal") plt.title("Lauseliikmete sagedused B1-tasemel") plt.savefig("lauseliikmed_B1.png", bbox_inches="tight") plt.clf() sagedused1_3 = sagedused1.sort_values(by="B2_sagedus") plt.pie(sagedused1_3.B2_sagedus, labels=sagedused1_3.Sõnaliik, autopct="%1.1f%%") plt.axis("equal") plt.title("Sõnaliikide sagedused B2-tasemel") plt.savefig("sonaliigid_B2.png", bbox_inches="tight") plt.clf() sagedused2_3 = sagedused2.sort_values(by="B2_sagedus") plt.pie(sagedused2_3.B2_sagedus, labels=sagedused2_3.Selgitus, autopct="%1.1f%%") plt.axis("equal") plt.title("Lauseliikmete sagedused B2-tasemel") plt.savefig("lauseliikmed_B2.png", bbox_inches="tight") plt.clf() sagedused1.index = sagedused1.Sõnaliik sagedused1.sort_values(by="Sõnaliik")[["A2_osakaal", "B1_osakaal", "B2_osakaal"]].plot(kind="bar") plt.title("Sõnaliikide osakaalud tasemeti") plt.savefig("sonaliigivordlus.png", bbox_inches="tight") plt.clf() keskmised1 = sagedused1[["A2_osakaal", "B1_osakaal", "B2_osakaal"]].mean() standardvead1 = sagedused1.std()/math.sqrt(len(sagedused1)) keskmised1.plot(kind="bar", yerr=standardvead1, title="Sõnaliikide keskmine osakaal ja standardviga") plt.savefig("liigikeskmine.png", bbox_inches='tight') plt.clf() sagedused2.index = sagedused2.Selgitus sagedused2.assign(summa = sagedused2.A2_osakaal + sagedused2.B1_osakaal + sagedused2.B2_osakaal).\ sort_values(by="summa", ascending=False)[["A2_osakaal", "B1_osakaal", "B2_osakaal"]].plot(kind="barh", stacked=True) plt.title("Lauseliikmete osakaalud tasemeti") plt.savefig("liikmevordlus.png", bbox_inches="tight") plt.clf() sagedused2[["A2_osakaal", "B1_osakaal", "B2_osakaal"]].plot(kind="box") plt.title("Lauseliikmete osakaalude hajuvus") plt.savefig("liikmehajuvus.png", bbox_inches="tight") plt.clf() f=open("kolmtaset.html", "w") f.write("\n") f.write("\n") f.write(" \n") f.write(" \n") f.write(" Keeleoskustasemete kirjeldus\n") f.write(" \n") f.write(" \n") f.write(" \n") f.write("

A2-taseme eksamikirjutised

\n") f.write(" \n") f.write(" Sõnu tekstis: "+str(pikkus_sonad1)+"\n"+"
") f.write(" Lauseid tekstis: "+str(pikkus_laused1)+"\n"+"
") f.write(" "+"\n"+"
") f.write(" "+"\n"+"
") f.write(" "+"\n"+"
") f.write("

B1-taseme eksamikirjutised

\n") f.write(" \n") f.write(" Sõnu tekstis: "+str(pikkus_sonad2)+"\n"+"
") f.write(" Lauseid tekstis: "+str(pikkus_laused2)+"\n"+"
") f.write(" "+"\n"+"
") f.write(" "+"\n"+"
") f.write(" "+"\n"+"
") f.write("

B2-taseme eksamikirjutised

\n") f.write(" \n") f.write(" Sõnu tekstis: "+str(pikkus_sonad3)+"\n"+"
") f.write(" Lauseid tekstis: "+str(pikkus_laused3)+"\n"+"
") f.write(" "+"\n"+"
") f.write(" "+"\n"+"
") f.write(" "+"\n"+"
") f.write("

Tasemete võrdlus

\n") f.write(" "+"\n"+"
") f.write(" "+"\n"+"
") f.write(" "+"\n"+"
") f.write(" "+"\n"+"
") f.write(" "+"\n"+"
") f.write(" \n") f.write("\n") f.close()