AssessmentFunction
AssessmentFunction[key]
答が正しいかどうかを key に従って評価するツールを表す.
AssessmentFunction[key,method]
指定された答の比較方法を使う.
AssessmentFunction[key,f]
関数 f を使って答と鍵を比較する.
AssessmentFunction[key,comp]
Association comp で定義されたカスタム評価を使って評価を行う.
AssessmentFunction[obj]
CloudObject obj を使って評価を行う評価関数を表す.
AssessmentFunction[{obj,id}]
CloudObject obj 内の指定の質問を評価する.
AssessmentFunction[…] [answer]
answer の正しさを表すAssessmentResultObjectを与える.
詳細とオプション
- AssessmentFunctionは,しばしばQuestionObject内で質問に対する答の評価方法を定義するために使われる.
- key には以下の形式を使うことができる.
-
ans パターン ans と一致する答 {ans1,ans2,…} 答は ansiのいずれかである {{a1,a2,…}} 答はリスト{a1,a2,…} - 次は,考えられる各答 ansiの可能な形式である.
-
patt すべての正しい応答を照合するパターン pattscore パターンと対応する得点 pattansspec 完全な答の指定を含むAssociation - pattscore を使うことは patt<"Score"score >と同じである.
- score はブール値か数値のどちらかでなければならない.Trueおよび正の数値(得点)は正解を,False,ゼロ,負の得点は不正解を表す.
- pattiは,厳密な答の値か answer の値を比較するパターンでよい.
- ソースが与えられていない場合,AssessmentFunction[{patt1,patt2,…}]の pattiはどれも正しいものとして扱われる.単一の pattiがTrueまたは正の点数に設定されている場合は,他のすべての pattiが正しくない答として扱われる.
- 完全な答の指定 ansspec には次のキーが使える.
-
"Score" (必須) 一致する答に与えられる得点 "AnswerCorrect" ans が正しいと考えるかどうか "Category" 質問のソートについての答に対応するカテゴリ "Explanation" ユーザに与えられるテキスト - AssessmentFunction[key,"method"]がサポートする答の比較法には次の"method"の値があり,対応する距離関数を使って答と解をToleranceと比較する.Noneは厳密な一致を必要とすることを表す. メソッドのリストは評価の比較法で見ることもできる.
-
"Number" Norm[#1-#2]& スカラー数値 "String" EditDistance 文字列 "Expression" None 任意の式 "HeldExpression" None 評価せずにホールドされている式 "ArithmeticResult" None 算数の練習問題の答 "PolynomialResult" None 多項式の練習問題の答 "CalculusResult" None 微積分の練習問題の答 "AlgebraicValue" None 方程式を解く練習問題の答 "CodeEquivalence" None コード "Date" DateDifference 日付 "GeoPosition" GeoDistance 地理位置 "Vector" Norm[#1-#2]& ベクトル "Color" ColorDistance 色の値 "Quantity" Norm[#1-#2]& 大きさと単位がある数量 - AssessmentFunction[key,comp]の comp はAssociationである.次は,許容されるキーである.
-
"ComparisonMethod" 名前付きの比較法 "method" "Comparator" 提出された答を key の各パターンと比較するカスタム関数 "Selector" 与えられた答と一致するパターンを選択する関数 "ListAssessment" 答のリストの評価メソッドを指定する "ScoreCombiner" 要素単位の"Score"の値を組み合せる関数 "AnswerCorrectCombiner" 要素単位の"AnswerCorrect"の値を組み合せる関数 - 関数 f についてのAssessmentFunction[key,f]はAssessmentFunction[key,<"Comparator"f >]に等しい.
- "Comparator"か"Selector"のどちらか一方を使うべきである."Comparator"compf を使うとキーに含まれる各 ans についての compf[answer, patt]が順に計算されてTrueを与える最初の ans が選ばれる.よく使われる比較器には,MatchQ,Greater,StringMatchQ,SameQがある.
- ユーザの答だけを入力として取るカスタムの比較器 f は key を指定せずに使うことができる.その場合は key としてAutomaticが使える.f[answer]がTrueを与える場合は正解と評価される.キーがAutomaticではない場合,f[answer, patti]は提出された answer と解答集の各 pattiを使って計算される.いずれかがTrueを返すと,評価はその pattiに基づいて行われる.
- "Selector"selectf を使うと selectf[{patt1,patt2,…},answer]が計算されて選択された ans に対応する patt が返される.よく使われる選択器には,SelectFirst,Composition[First,Nearest],Composition[First,TakeLargestBy]がある.
- リストされた答を評価するAssessmentFunction[key,<…,"ListAssessment"method,… >][{elem1,elem2,…}]の際,method は以下の値をサポートする.
-
"SeparatelyScoreElements" 答の各要素を key について別々に評価し,結果を組み合せる "AllElementsOrdered" answer の要素が key の要素にマッチするかどうか順にチェックする "AllElementsOrderless" answer の要素が key の要素にマッチするかどうか,任意の順序でチェックする "WholeList"(デフォルト) 完全なリスト{elem1,elem2,…}に比較を適用し,通常の式として評価する - "SeparatelyScoredElements"のとき,key 内の patt は答の個々の要素に対応していなければならない.こうすると,各要素の点数を以下に説明されているように割り当てることができる.これ以外のすべての"ListAssessment"メソッドについては,key 内の各 patt にリストが含まれていなければならない.
- "ListAssessment""SeparatelyScoreElements"を使ってリストされた答を一度に一つずつ評価する.各要素の"Score"と"AnswerCorrect"の結果は"ScoreCombiner"関数と"AnswerCorrectCombiner"関数を使ってそれぞれ組み合される."ScoreCombiner"関数と"AnswerCorrectCombiner"関数は"SeparatelyScoredElements"が使われた時しか適用されない.
- AssessmentFunctionには次のオプションを使うことができる.
-
DistanceFunction Automatic 使用する距離測度 Tolerance Automatic 答の照合に際して許容される距離 MaxItems Infinity 要素ごとの評価における要素数の制限 - AssessmentFunction[key]はAssessmentFunction[key,Automatic]に等しく,key から答の比較タイプを推測する.
- 各答の比較タイプは定義済みの比較器関数または選択器関数に対応する.たいていの場合,比較タイプに組込みの距離の概念が存在しない場合は,MatchQの"Comparator"が使われる.
- 比較タイプに距離という概念が存在するなら,AssessmentFunctionはFirst@*Nearestの"Selector"を使い,ToleranceオプションおよびDistanceFunctionオプションが使える.
- 別々に採点される要素については,"AnswerCorrectCombiner"は各要素の正解/不正解を表すブール値のリストを取って答の全体的な正解/不正解を表す単一のブール値を返さなければならない.デフォルトは比較法に依存する.最も一般的なデフォルト値はAllTrue[#,TrueQ]&である.
- 別々に採点される要素については,"ScoreCombiner"は各要素の得点を表す数値のリストを取って答の合計得点を返さなければならない.デフォルトは比較法に依存する.最も一般的なデフォルト値はTotalである.
- 個別に点数が付く要素の場合,与えられた要素数がMaxItemsの値よりも大きいときは,AssessmentFunctionはFailureを返す.
- InformationはAssessmentFunctionに作用し,次の prop の値を取る.
-
"DefaultQuestionInterface" キーから推測されるユーザインターフェース(例:"MultipleChoice","ShortAnswer") "AnswerComparisonMethod" 値の期待されるタイプ(例:"Number","GeoPosition") "Key" 答の評価に使われるキー - Information[AssessmentFunction[…],"Properties"]は,使用可能な prop 値の完全リストを与える.
- AssessmentFunction[CloudObject[…]]は指定されたCloudObject内でリーモート評価を行う.こうすることで,答を提供するユーザによる評価の変更が阻止できる.
例題
すべて開くすべて閉じる例 (4)
スコープ (28)
解答集 (8)
単一の値を解答として与えると,その値が唯一の正解として扱われる:
単一の正解と関連する評価をAssociationとして与える:
これらすべてのAssessmentFunction入力は等しい:
解答の各項目に"Category"を指定して,分類問題のAssessmentFunctionを作成する:
提出された答は itemcategory の形でなければならない:
説明はQuestionObjectでも利用できる:
名前付きの比較法 (4)
答は数として比較される:Answers will be compared as numbers:
Associationを使うこともできる:
AssessmentFunctionは,比較法が指定されていない場合は適切なものを自動的に決定しようとする:
Informationを使って選択されたメソッドを取り出す:
解答集の値は比較法と矛盾がないものでなければならない."Vector"比較法の解答集にベクトル値を使う:
カスタムの比較法 (5)
解答集をAutomaticに設定して,名前付きのメソッドの代りにカスタムの比較器を与える:
提出された答に適用した際に比較器関数がTrueを与えるなら,答は正解である:
Associationで比較器を与えることもできる:
比較器は提出された答と解答集に適用され,両者が一致するかどうかを判定する:
解答集のどの値が提出された答と一致するかを判定するカスタムの選択器付きのAssessmentFunctionを作る:
片方が比較器をもう片方が選択器を持つ,類似問題のための2つの評価関数を作成する:
選択器は解答集のすべての値を見て最も近いものを選ぶ.解答集の値3に対応する点数が10点である点’に注意のこと:
値をホールドする (3)
HoldPattern を使って解答集の値を定義する"HeldExpression"比較法を指定する:
Holdがホールドした式をチェックする.式は未評価である:
"AlgebraicValue"のような数学比較法はもホールドされた値を受容する:
基本的な算術のような適切な数学変換は,評価中でもHoldの中で行うことができる:A
"AlgebraicValue"比較法はSolveValuesのような関数の評価を許可しない:
HoldPatternを使って"CodeEquivalence"比較法を指定して解答集を定義する:
評価リスト (7)
"ListAssessment""SeparatelyScoreElements"を指定して各正解に点数を与える:
"ListAssessment""AllElementsOrdered"の設定でAssessmentFunctionを作成する:
提出された答は同じ要素を同じ順序で含んでいなければならない:
"AllElementsOrdered"評価に含まれるものと等化の比較を直接計算する:
これを,提出されたリストと解答集全体を比較するデフォルトの"WholeList"設定と比較する."Number"ではなく"Vector"比較法が選択されている点に注意のこと:
内部的な"WholeList"評価と等価の評価を直接計算する:
文字列のリストについて"AllElementsOrdered"評価関数を作成する."String"比較法が推測されている点に注意のこと:
同じ解答集に対して"WholeList"評価関数を作成する.このリストに対しては"Expression"比較法が推測されている点に注意のこと:
各要素の"String"比較ではToleranceがサポートされており,例の大文字小文字の違いが許容されている:
"Expression"比較はToleranceをサポートしていないため,この答は不正解になる:
"ListAssessment""AllElementsOrderless"の設定でAssessmentFunctionを作成する:
提出された答は要素を含むリストでなければならないが,要素順は問わない:
比較法,この場合は"CalculusResult"であるが,は各要素に適用される.算術的違いは許容される:
異なる3つの"ListAssessment"設定を同じ解答集に使用する."SeparatelyScoreElements"の場合は解答集の値がリストではない点に注意のこと:
3つの方法はどれも要素を別々に比較する."CalculusResult"法は数学的に等価である値を正解とする:
クラウド配備 (1)
フロリダの地理位置についてのAssessmentFunctionを作成する:
リソース関数QuestionDeployを使って評価関数をクラウドに配備する:
配備されたAssessmentFunctionには解答集は含まれていない:
答を評価する.評価は,配備されたCloudObjectで安全に行われる:
一般化と拡張 (2)
オプション (6)
DistanceFunction (1)
MaxItems (4)
"ListAssessment""SeparatelyScoreElements"を使って答の各要素の評価を計算する.このため,比較器によっては遅くなることがある:
MaxItemsで評価する要素数を制限する:
各要素に別々に点を付ける評価関数を作成する.解答集には要素の可能な各値の点数が含まれていることに注意のこと:
完全な結果を見る."ElementInformation"には各要素の評価が含まれており,全体的な答についての"Score"と"AnswerCorrect"の値が計算されている点に注意のこと:
答の各要素を対応する解答集の要素と比較することでリストされた答を評価する評価関数を作成する:
答を評価する.許容誤差が各要素に適用されている点に注意のこと:
アプリケーション (3)
ユーザのコードが解答集と等しいかどうかをチェックする評価関数を作成する:
多項式の練習問題のためのQuestionObjectを作成する:
特性と関係 (5)
Informationを使ってAssessmentFunctionについての情報を抽出する:
"ListAssessment""AllElementsOrdered"を使用するとき,解答集の値はリストである.解答集のリストの各要素が提出された答の対応する要素と比較される:
"ListAssessment""AllElementsOrderless"を使うときは,より多くの比較が行われる:
"ListAssessment""SeparatelyScoreElements"を使うとき,解答集は値の平坦なリストであり,提出された答と解答集の各値が比較される:
解答集の値がオーバーラップしている"AllElementsOrderless"評価関数を作成する:
テキスト
Wolfram Research (2020), AssessmentFunction, Wolfram言語関数, https://reference.wolfram.com/language/ref/AssessmentFunction.html (2024年に更新).
CMS
Wolfram Language. 2020. "AssessmentFunction." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2024. https://reference.wolfram.com/language/ref/AssessmentFunction.html.
APA
Wolfram Language. (2020). AssessmentFunction. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/AssessmentFunction.html