Noul — Jev 裡的是非題
Noul 是 TypeSafe 的 Jev 模型三種提問型別之一。它問一個是非題,並以「答案為是」的機率作答,取值 0 到 1。
Noul 問一件可能為真也可能為假的事,並以一個 0 到 1 之間的數作答:它為真的機率。接近 1 是強烈的「是」,接近 0 是強烈的「否」,接近 0.5 則代表是與否大致等可能。
最後那種情況正是 Noul 比布林值更值錢的原因。被迫回傳 true 或 false 的模型,即使文字並不支持任何一邊也必須選邊站;Noul 可以遞回 0.51,讓你的程式察覺自己其實什麼也沒拿到。
一個真實的答案
送給 jev-1.13.0。下面的數字就是回來的東西。
訂單 #88213 到貨時螢幕裂了。我已經拿到三天了。我不想換貨,只想請你們退錢。
問題
這則訊息是在要求退款嗎?
幾乎肯定是
答案為「是」的機率
否 擲硬幣 是
0.99——這則訊息用明明白白的話排除了主要的另一種可能(「我不想換貨」),所以模型幾乎沒有什麼好猶豫的。大多數真實輸入不會這麼乾淨,這也正是數字比結論更重要的原因。
請求與回應原文
請求
{
"state": "Order #88213 arrived with a cracked screen. I have had it three days. I do not want a replacement, I would just like my money back please.",
"model": "jev-latest",
"questions": {
"requests_refund": {
"type": "noul",
"instructions": "Does this message request a refund?",
"criteria": {
"true": "The customer asks for money back",
"false": "The customer wants a repair, a replacement, or something else"
}
}
}
}回應
{
"model": "jev-1.13.0",
"answers": {
"requests_refund": {
"type": "noul",
"noul": 0.99
}
}
}答案裡有什麼
- type "noul"
- 與提問型別對應。
- noul number
- 答案為「是」的機率,從 0(否)到 1(是)。
規則與限制
-
criteria是選填的。它接受一個true與一個false描述,把問題兩邊各自的含義寫清楚。 - Noul 的答案沒有
confidence欄位——這一點和 Choice、Score 不同。機率本身已經描述了不確定性:0.5 就是模型在說它不知道。
什麼時候該用 Noul
- 問題確實只有兩面——這是不是在要求退款、這是不是重複提交、這裡有沒有提到截止日期。
- 你想要一個由自己掌握的門檻。0.9 自動執行,0.6 標記待查,中間的一律轉人工。
- 你想便宜地多問一個推測性的問題,只在它觸發時才去讀。
什麼時候該換別的
- 真正的問題有三個或更多答案。把它拆成好幾個 Noul 會招來互相矛盾的「是」;該用 Choice,它會強制機率之和為一。
- 你評的是強度而不是真假。「這急嗎」丟掉了「有點」和「火燒眉毛」之間的差別,而 Score 會留住它。