建立食品营养标签
版本 11 引入了近 40,000 种食品的详细营养数据及其他信息. 可以直接查询个别食品的 500 多种可能属性,包括以编程方式生成营养标签.
随机选择一个食品实体.
In[1]:=
food = RandomEntity["Food"]
Out[1]=
获取关于该食品的一些属性.
In[2]:=
EntityValue[food, {"Image", "Name",
EntityProperty["Food", "VitaminAContentPerServing"],
EntityProperty["Food", "VitaminB12ContentPerServing"],
EntityProperty["Food", "VitaminB6ContentPerServing"],
EntityProperty["Food",
"VitaminCContentPerServing"]}, "PropertyAssociation"]
Out[2]=
创建一杯橙汁的营养标签.
In[3]:=
EntityValue[\!\(\*
NamespaceBox["LinguisticAssistant",
DynamicModuleBox[{Typeset`query$$ = " 1 cup orange juice",
Typeset`boxes$$ = RowBox[{"EntityInstance", "[",
RowBox[{
InterpretationBox[
DynamicModuleBox[{EntityFramework`Formatting`Private`open = False},
TemplateBox[{
TemplateBox[{"\"foods\""}, "GeneralizedEntityBase"],
TagBox[
GridBox[{{
TemplateBox[{
TemplateBox[{"\"food type\"",
RowBox[{"EntityProperty", "[",
RowBox[{"\"Food\"", ",", "\"FoodType\""}], "]"}],
"\"EntityProperty[\\\"Food\\\", \\\"FoodType\\\"]\
\""}, "EntityProperty"],
StyleBox["\":\"", "GeneralizedEntityInfoItem"],
RowBox[{"ContainsExactly", "[",
RowBox[{"{",
TemplateBox[{"\"orange juice\"",
RowBox[{"Entity", "[",
RowBox[{"\"FoodType\"", ",", "\"OrangeJuice\""}], "]"}],
"\"Entity[\\\"FoodType\\\", \
\\\"OrangeJuice\\\"]\"", "\"food type\""}, "Entity"], "}"}], "]"}]},
"GeneralizedEntityInfoRow"]}, {
TemplateBox[{
TemplateBox[{"\"added food types\"",
RowBox[{"EntityProperty", "[",
RowBox[{"\"Food\"", ",", "\"AddedFoodTypes\""}], "]"}],
"\"EntityProperty[\\\"Food\\\", \
\\\"AddedFoodTypes\\\"]\""}, "EntityProperty"],
StyleBox["\":\"", "GeneralizedEntityInfoItem"],
RowBox[{"ContainsExactly", "[",
RowBox[{"{", "}"}], "]"}]}, "GeneralizedEntityInfoRow"]}},
GridBoxAlignment -> {"Columns" -> {{Left}}},
DefaultBaseStyle -> "GeneralizedEntityInfoGrid",
GridBoxItemSize -> {
"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
"Column"],
Dynamic[EntityFramework`Formatting`Private`open],
"\"Entity[\\\"Food\\\", {EntityProperty[\\\"Food\\\", \\\
\"FoodType\\\"] -> ContainsExactly[{Entity[\\\"FoodType\\\", \
\\\"OrangeJuice\\\"]}], EntityProperty[\\\"Food\\\", \
\\\"AddedFoodTypes\\\"] -> ContainsExactly[{}]}]\""},
"GeneralizedEntityToggle"]],
Entity["Food", {EntityProperty["Food", "FoodType"] -> ContainsExactly[{
Entity["FoodType", "OrangeJuice"]}],
EntityProperty[
"Food", "AddedFoodTypes"] -> ContainsExactly[{}]}],
SelectWithContents -> True], ",", " ",
TemplateBox[{"1", "\"cup\"", "cups", "\"Cups\""}, "Quantity",
SyntaxForm -> Mod]}], "]"}],
Typeset`allassumptions$$ = {{
"type" -> "Clash", "word" -> "cup",
"template" -> "Assuming \"${word}\" is ${desc1}. Use as \
${desc2} instead", "count" -> "2",
"Values" -> {{
"name" -> "Unit", "desc" -> "a unit",
"input" -> "*C.cup-_*Unit-"}, {
"name" -> "FoodPackaging",
"desc" -> " referring to food packaging",
"input" -> "*C.cup-_*FoodPackaging-"}}}, {
"type" -> "Unit", "word" -> "cup",
"template" -> "Assuming ${desc1} for \"${word}\". Use ${desc2} \
instead", "count" -> "6",
"Values" -> {{
"name" -> "Cups", "desc" -> "US customary cups",
"input" -> "UnitClash_*cup.*Cups--"}, {
"name" -> "CanadianCups", "desc" -> "Canadian cups",
"input" -> "UnitClash_*cup.*CanadianCups--"}, {
"name" -> "MetricCups", "desc" -> "metric cups",
"input" -> "UnitClash_*cup.*MetricCups--"}, {
"name" -> "CupsUK", "desc" -> "UK cups",
"input" -> "UnitClash_*cup.*CupsUK--"}, {
"name" -> "CupsUSLegal", "desc" -> "US legal cups",
"input" -> "UnitClash_*cup.*CupsUSLegal--"}, {
"name" -> "CupUnits", "desc" -> "cups",
"input" -> "UnitClash_*cup.*CupUnits--"}}}},
Typeset`assumptions$$ = {}, Typeset`open$$ = {1},
Typeset`querystate$$ = {
"Online" -> True, "Allowed" -> True,
"mparse.jsp" -> 1.910975`6.73279999900569, "Messages" -> {}}},
DynamicBox[ToBoxes[
AlphaIntegration`LinguisticAssistantBoxes["", 4, Automatic,
Dynamic[Typeset`query$$],
Dynamic[Typeset`boxes$$],
Dynamic[Typeset`allassumptions$$],
Dynamic[Typeset`assumptions$$],
Dynamic[Typeset`open$$],
Dynamic[Typeset`querystate$$]], StandardForm],
ImageSizeCache->{132., {7., 16.}},
TrackedSymbols:>{
Typeset`query$$, Typeset`boxes$$, Typeset`allassumptions$$,
Typeset`assumptions$$, Typeset`open$$, Typeset`querystate$$}],
DynamicModuleValues:>{},
UndoTrackedVariables:>{Typeset`open$$}],
BaseStyle->{"Deploy"},
DeleteWithContents->True,
Editable->False,
SelectWithContents->True]\), EntityProperty["Food", "NutritionLabel"]]
Out[3]=
手头有了这些信息,你将能够“玩转你的食物” — 通过字母所代表的食品图像工具提示条,使用内置数据创建与食物有关的离合诗.
显示完整的 Wolfram 语言输入
In[5]:=
acrostic["Food"] // TraditionalForm
Out[5]//TraditionalForm=
根据具体一组食品创建离合诗.
In[6]:=
Row[{acrostic["Vegetables", Entity[
"FoodType",
EntityProperty["FoodType", "BasicFoodGroups"] -> Entity[
"BasicFoodGroup", "Vegetables"]]],
acrostic["Meat", Entity[
"FoodType",
EntityProperty["FoodType", "BasicFoodGroups"] -> Entity[
"BasicFoodGroup", "ProteinFoods"]]]}] // TraditionalForm
Out[6]//TraditionalForm=