Changed word grading mechanism
authorGabriel Pérez-Cerezo <gabriel@gpcf.eu>
Thu, 17 Dec 2015 16:56:23 +0000 (17:56 +0100)
committerGabriel Pérez-Cerezo <gabriel@gpcf.eu>
Thu, 17 Dec 2015 16:56:23 +0000 (17:56 +0100)
voctrainer.py

index cc9ddea..765d1c2 100755 (executable)
@@ -7,6 +7,7 @@ import cgitb
 from difflib import SequenceMatcher as match
 cgitb.enable()
 from glob import glob
+WORDPOINTS=2
 #print "200 Ok"
 def footer ():
     print """<footer>Vokabeltrainer Copyright &copy; 2015 Gabriel
@@ -56,15 +57,17 @@ def check (sol, user) :
             print "<td>-<td>-"
         print "<td>", user[i][1] #Eingabe
         print "<td>", sol[i][1], "<td>" # Lösung
-        reachable +=1
-        if match(None, sol[i][1].lower(), user[i][1]).ratio() > 0.9 :
-            print "1"
-            reached +=1
-        else:
-            print "0"
+        reachable +=WORDPOINTS
+        sim = match(None, sol[i][1], user[i][1]).ratio() * (WORDPOINTS -0.5)
+        if  sim > 0.9*(WORDPOINTS-0.5):
+            sim = 2
+        elif sim < 0.5 * (WORDPOINTS-0.5) :
+            sim = 0
+        reached += sim
+        print "%.1f" % sim
         print "</tr>"
     print "</tbody></table>"
-    print "Du hast %d von %d Punkten erreicht. Das Enstpricht %d%%" %(reached, reachable, reached*100/reachable)
+    print "Du hast %.1f von %d Punkten erreicht. Das Enstpricht %d%%" %(reached, reachable, reached*100/reachable)
 
 print ("Content-Type: text/html; charset=UTF-8\n")
 try:
@@ -120,7 +123,7 @@ if url[1:].startswith("send") :
                 else :
                     ut[j][0] = form.getfirst(i,"0")
         elif i in dt.keys() :
-            ans = form.getfirst(i, "0").strip().lower()
+            ans = form.getfirst(i, "0").strip()
             if not i in ut :
                 ut[i] = [None, ans]
             else :