0

Mein System generiert Fragen aus einer Menge von Sätzen. Kann abhängig von der Qualität des Satzes mehrere Fragen für einen einzelnen Satz erzeugen. Menschen erhalten auch die gleichen Sätze von Sätzen, um Fragen zu generieren.Wie berechnet man Präzision und Abruf für ein System, das Fragen generiert?

Zum Beispiel:

Satz: Die Hauptstadt von Russland ist Moskau.

============ # Systemgenerierte Fragen # =============

Frage 1: Was ist die Hauptstadt von Russland ist?

Frage 2: Was ist Moskau?

============ # Menschen verursachten Fragen # =============

Frage 1: Was ist die Hauptstadt von Russland?

Frage 2: Was ist Moskau?

Frage 3: Ist die Hauptstadt Russlands Moskau?

Ich möchte die Präzision, den Rückruf und die Genauigkeit meines Systems bewerten. Aber ich weiß nicht, wie man solche Maßnahmen für den Fall der Fragegenerierung berechnen soll.

Daten

  1. Kommentierte Satz von systemgenerierten Fragen (Acceptable, Inakzeptable)
  2. Menschengenerierte Fragen (für die gleiche Menge von Sätzen)

diese Daten gegeben, Wie Ich berechne diese Maßnahmen?

+0

Enthält der mit Anmerkungen versehene Satz systemgenerierter Fragen alle möglichen Fragen? – gudok

+0

Das System generiert Fragen für bestimmte WH-Wörter. Es folgt die folgende Strategie: Finden Sie _answers_ in den Sätzen und generieren Sie _question_ für jede _answer_. – dryleaf

+0

Können Sie annehmen, dass die menschlich generierten Fragen * alle * möglichen Fragen für diesen Satz enthalten? – NBartley

Antwort

1

Ich denke, verstehen Sie Ihre Situation, aber bitte korrigieren Sie mich, wenn ich falsch liege.

Wenn Sie Präzision, Abrufen und Genauigkeit berechnen wollen (ich frage mich, ob es geeignetere Leistungsmetriken geben könnte, aber das ist neben dem Punkt), müssen wir definieren, was ein echtes positives, falsch positives, echtes negatives ist und falsch negativ sind.

Wenn Ihr System Fragen generiert und Sie eine Reihe von Grundfragen haben, die von Menschen generiert werden (wir nehmen an, dass die Menschen JEDE akzeptable Frage für jeden Satz möglich generiert haben), wissen wir, dass jede Frage, die Ihr System generiert positiv (entweder T/F):

Wahr Positiv: Die vom System generierte Frage entspricht einer menschlich generierten Frage für diesen Satz.

Falsch positiv: Die vom System generierte Frage stimmt nicht mit einer menschlich generierten Frage für diesen Satz überein.

Wahr Negativ: Ich denke nicht, dass es einfach zu berechnen ist, da Ihr System nur generiert, was es denkt, sind Fragen. Ich denke, es wäre jede einzelne inakzeptable Frage, die Ihr System nicht gestellt hat, die auch nicht in den vom Menschen generierten Fragen enthalten ist.

False Negative: Eine vom Benutzer generierte Frage, die nicht von Ihrem System generiert wurde.

Es ist dann einfach, diese in den Gleichungen stopfen zur Berechnung Precision und Recall:

Precision = TP/TP + FP

Recall = TP/TP + FN

Denn es ist nicht leicht zu Denken Sie an TN, ich denke nicht, dass es sinnvoll ist, die Genauigkeit zu berechnen. Sie könnten stattdessen die falsche Erkennungsrate berechnen (1 - Genauigkeit).

+0

Wenn eine Frage mit ** Inakzeptabel ** versehen ist, liegt das daran, dass der Annotator bei der Annotation von _systemgenerierten_ Fragen Mängel in der Frage gefunden hat (wie zB _grammatische_, _vagheit_, _does_ _nicht_ _make_ _sense_, _etc _...). Andernfalls wird der Annotator als ** Akzeptabel ** gekennzeichnet, wenn kein Mangel vorliegt (dh die vom System generierte Frage ist richtig). – dryleaf

+0

Ich bin etwas skeptisch gegenüber dem Szenario ** Inacceptable **. – dryleaf

+0

Ah okay, ich habe etwas falsch interpretiert. Ich werde meine Antwort aktualisieren. – NBartley

Verwandte Themen