"Expression" (比較法)
"Expression" (比較法)
2つの式が一致するかどうかをテストする.
詳細
- "Expression"比較法は,パターンマッチングを使って提出された答と解答集の値を比較する.
- Blankのようなパターンオブジェクトを含む記号構造は,解答集の有効なパターン形式である.評価中,提出された答はMatchQを使って解答集の値と比較される.
- 他の比較法が指定されていない,あるいはAssessmentFunctionから自動的には推定されない場合は,"Expression"がデフォルトの比較法である.
例題
すべて開く すべて閉じる例 (2)
任意の式を使って複数の正解を定義するAssessmentFunctionを作成する:
testexpression = AssessmentFunction[{1, "a", f[x], g[_]}, "Expression"]testexpression[g[10]]testexpression[f[10]]数値と式を比較するAssessmentFunctionを作成する:
numberexpression = AssessmentFunction[{1, 2, 3}, "Expression"]numberexpression[2]同等の数値による答でも式として一致しないものは不正解になる:
numberexpression[2.]スコープ (1)
アプリケーション (5)
多肢選択問題は,可能な答えが定義されているので,常に"Expression"比較法を使う:
factorQuestion[] := With[{n = RandomInteger[{10, 100}]}, QuestionObject[QuestionInterface["MultipleChoice", StringForm["What are the prime factors of ``", n]],
AssessmentFunction[RandomSample[{{2, 3, 5} -> 0, (First /@ FactorInteger[n]) -> 1,
Prime /@ Sort[RandomInteger[{2, 10}, 3]] -> 0}], "Expression"]]
]factorQuestion[]"Expression"比較法で多肢選択QuestionGeneratorを作成する:
gen = QuestionGenerator[{"c" :> RandomEntity["Country"]}, QuestionObject["What is the capital of " <> CommonName[#c] <> "?", AssessmentFunction[Append[RandomSample[EntityList@EntityClass["City", "Country" -> #c], 3], #c[EntityProperty["Country", "CapitalCity"]] -> 1], "Expression"]]&]生成器からQuestionObjectの例を作成する:
gen[3]
| |
"Expression"比較法で"MultipleShortAnswers"問題を作成する.インタープリタが提出された答を標準化する:
QuestionObject[QuestionInterface["MultipleShortAnswers", <|"Prompt" -> "Name planets in the solar system", "Interpreter" -> "Planet"|>],
AssessmentFunction[EntityList@EntityClass["Planet", All], <|"ComparisonMethod" -> "Expression", "ListAssessment" -> "SeparatelyScoreElements"|>]]QuestionObject[QuestionInterface["TextCompletion", <|"Prompt" -> "Complete the sentence using proper grammar", "Template" -> "I arrived `` Chicago `` Monday "|>], AssessmentFunction[{{"in", "on"}}, "Expression"]]Entityの値を式として比較する"DragCompletion"問題を作成する:
QuestionObject[QuestionInterface["DragCompletion", <|"Prompt" -> "Fill in the blanks", "Template" -> "The biggest planet in the solar system is ``, and the smallest planet is ``", "Choices" -> EntityList@EntityClass["Planet", All]|>], AssessmentFunction[{{Entity["Planet", "Jupiter"], Entity["Planet", "Mercury"]}}, "Expression"]]特性と関係 (4)
"Expression"は,解答集が特定の組込み比較法と一致しない場合のデフォルトの比較法である:
AssessmentFunction[True]解答集が特定のメソッドと一致する場合は,そのメソッドが自動的に推測される:
AssessmentFunction[{1, 2, 3}]AssessmentFunction[{1, 2, 3}, "Expression"]Informationを使ってAssessmentFunctionの比較法をチェックする:
Information[AssessmentFunction[{a, 5, RandomImage[]}], "AnswerComparisonMethod"]"Expression"比較法の解答集の複数の値と一致する答を評価する:
assessment = AssessmentFunction[{_Integer -> 4, _ ? OddQ -> 10}, "Expression"][15]assessment[All]"ListAssessment""SeparatelyScoreElements"と設定すると,繰り返される答えは解答集の各値と1回しか比較されない:
assessment = AssessmentFunction[{_Integer -> 4, _ ? OddQ -> 10}, <|"ComparisonMethod" -> "Expression", "ListAssessment" -> "SeparatelyScoreElements"|>][{15, 15}]assessment[All]テクニカルノート
-
▪
- パターン
関連するガイド
-
▪
- 質問と評価