0

我的系統從一組句子中生成問題。根據句子的質量,可以爲單個句子生成多個問題。人類也被賦予相同的句子來產生問題。如何計算產生問題的系統的精度和召回率?

例如:

句子:俄羅斯的首都是莫斯科。

============#系統生成的問題#=============

問題1:俄羅斯的首都是什麼?

問題2:什麼是莫斯科?

============#人類產生的問題#=============

問題1:什麼是俄羅斯的首都?

問題2:什麼是莫斯科?

問題3:俄羅斯首都莫斯科?

我想評估我的系統的精度,召回率和準確性。但我不知道如何計算問題生成系統案例中的這些措施。

數據

  1. 註釋一套系統生成的問題(接受,不接受)
  2. 人類產生的問題(同組的句子)

鑑於這一數據,怎麼辦我計算這些措施?

+0

註釋過的系統生成的問題集是否包含_all_可能的問題? – gudok

+0

系統爲特定的WH-詞生成問題。它遵循以下策略:在句子中查找_answers_,然後爲每個_answer_生成_question_。 – dryleaf

+0

你能假設人爲問題包含該句子的所有可能問題嗎? – NBartley

回答

1

我想明白你的情況,但請糾正我,如果我錯了。

如果您試圖計算精度,召回率和準確性(我想知道是否有更合適的性能指標,但除此之外),我們需要定義什麼是真正的積極的,假的積極的,真正的消極,而且是負面的。我們知道你的系統產生的任何問題都是一個問題,如果你的系統正在產生問題,並且你有一組由人類產生的基本真實問題(我們假設人類已經爲每個句子產生了每個可接受的問題)正面(T/F):

真正的正面:系統產生的問題匹配該句子的人爲問題。

錯誤正面:系統生成的問題不符合該句子的人爲問題。

真的負面:我不認爲這很容易計算,因爲你的系統只會產生它認爲是問題的東西。我認爲這將是你的系統沒有產生的每一個不可接受的問題,這在人爲問題中也沒有。

False Negative:一個人爲生成的問題,它不是由您的系統生成的。

它然後直接地插入到這些方程用於計算精確度和召回:

精密= TP/TP + FP

召回= TP/TP + FN

因爲它不容易想想TN,我認爲計算精確度不合理。您可以改爲計算錯誤發現率(1 - 精度)。

+0

如果一個問題被註釋爲** Unacceptable **,這是因爲在註釋_system-generated_問題時,註釋者發現問題中存在不足(如_ungrammatical_,_vagueness_,_does_ _not_ _make_ _sense_,_etc _...)。否則,如果沒有缺陷(表示由系統生成的問題是正確的),則註釋器標記爲**可接受**。 – dryleaf

+0

我對** Unacceptable **方案有點懷疑。 – dryleaf

+0

好吧,我誤解了一些東西。我會更新我的答案。 – NBartley

相關問題