Wolfram 언어

Knowledgebase의 확장

식품 영양 라벨 작성

버전 11은 4만여 가지에 걸친 식품에 대한 자세한 식품 영양 데이터와 정보를 도입하였습니다. 프로그램적 영영 라벨 생성 등 500가지 이상의 개별 식품에 대한 가능한 특성 쿼리를 직접 실행할 수 있습니다.

무작위로 식품 엔티티를 선택합니다.

In[1]:=
Click for copyable input
food = RandomEntity["Food"]
Out[1]=

그 식품에 대한 특성을 얻습니다.

In[2]:=
Click for copyable input
EntityValue[food, {"Image", "Name", EntityProperty["Food", "VitaminAContentPerServing"], EntityProperty["Food", "VitaminB12ContentPerServing"], EntityProperty["Food", "VitaminB6ContentPerServing"], EntityProperty["Food", "VitaminCContentPerServing"]}, "PropertyAssociation"]
Out[2]=

오렌지 주스 1컵에 대한 영양 라벨을 만들 수 있습니다.

In[3]:=
Click for copyable input
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[4]:=
Click for copyable input
acrostic[string_String, food : (Entity["FoodType", _List | _Rule] | All) : All] := Module[{nameData, groupedByLetter, chars}, nameData = Select[EntityValue[ Replace[food, All -> "FoodType"], {EntityProperty["FoodType", "Name"], EntityProperty["FoodType", "Image", {"Size" -> "Small"}]}, "EntityAssociation"], FreeQ[_Missing]]; groupedByLetter = GroupBy[nameData, StringTake[First[ToLowerCase[#]], 1] &]; chars = Characters[ToLowerCase[string]]; (* Remove this part in the final example? For now, it is useful for debugging *) If[Complement[chars, Keys[groupedByLetter]] != {}, Print["Can't do anything with these characters: ", Complement[chars, Keys[groupedByLetter]]]; Print["Available characters: ", Union[Keys[groupedByLetter]]]; ]; Column[ If[MemberQ[Keys[groupedByLetter], #], Tooltip[ Row[{Style[ToUpperCase[StringTake[#, 1]], FontSize -> 50], StringDrop[#, 1]}, ImageSize -> 150], #2] & @@ RandomChoice[groupedByLetter[#]], Row[{Style[ToUpperCase[#], FontSize -> 50]}, "_"] ] & /@ chars, Selectable -> False ] ];
In[5]:=
Click for copyable input
acrostic["Food"] // TraditionalForm
Out[5]//TraditionalForm=

특정 식품 그룹의 아크로스틱을 생성합니다.

In[6]:=
Click for copyable input
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=

관련 예제

de en es fr ja pt-br ru zh