BLEU_ROUGE / src /web /views.py
eliseobao's picture
Improvements
483096c
from django.http import JsonResponse
from django.shortcuts import render
from django.views.decorators.cache import cache_control
from django.views.decorators.csrf import csrf_exempt
from . import tasks
@cache_control(no_cache=True, must_revalidate=True, no_store=True, max_age=0)
def index(request):
return render(request, "index.html", {})
@csrf_exempt
def compute(request):
def _format_rouge_result(rouge):
return "P: {:.1f} | R: {:.1f} | F1: {:.1f}".format(
rouge["precision"], rouge["recall"], rouge["f1"]
)
if request.method == "POST":
references = tasks.parse_string(request.POST.get("references", ""))
predictions = tasks.parse_string(request.POST.get("predictions", ""))
result = {}
if request.POST.get("checkbox_sentence_bleu", False) == "true":
result["sentence_bleu"] = "{:.1f}".format(
tasks.sentence_bleu(references, predictions)
)
if request.POST.get("checkbox_corpus_bleu", False) == "true":
result["corpus_bleu"] = "{:.1f}".format(
tasks.corpus_bleu(references, predictions)
)
if request.POST.get("checkbox_rouge1", False) == "true":
result["rouge1"] = _format_rouge_result(
tasks.rouge("1", references, predictions)
)
if request.POST.get("checkbox_rouge2", False) == "true":
result["rouge2"] = _format_rouge_result(
tasks.rouge("2", references, predictions)
)
if request.POST.get("checkbox_rougeL", False) == "true":
result["rougeL"] = _format_rouge_result(
tasks.rouge("L", references, predictions)
)
if request.POST.get("checkbox_tf1", False) == "true":
result["tf1"] = "{:.1f}".format(tasks.tf1(references, predictions))
return JsonResponse(result)
return JsonResponse({"error": "Invalid request method"})