Closed dcramer closed 3 months ago
This fits and if we go this direction we could honestly get rid of general tasting tags and use these instead..
Tons of prior art around this, but if we go this direction I'm going to create some dedicated flavor pages.
https://www.whiskeymasters.org/whisky-tasting-wheel
Also thinking of something similar for regions, casks, etc. Basically piece together some nice overviews for folks to understand things better.
Open question on if we deprecate tags entirely if we go this direction. Particularly if we take the approach of whisky wheels where something can fit across multiple.
More prior art
This one feels a bit more natural (though maybe slightly refined)
Generally speaking, this is the most common view of it. I'm too dumb to know what Feinty is, but maybe its fine (or we can find another synonym).
Alternatively we could restrict it to those subsets of flavors on the outer ring, as we know how to categorize them so its still win/win.
Here's a better thought:
take tags, rejigger them and map them to top level flavors (probably the 8).
show the flavors with each tag, consolidate/expand them as needed, likely closer to the whisky aroma wheel
those flavors we'll actually showcase vs tags in most situations, and use it to find similar bottles/etc
Based on https://www.whiskeymasters.org/whisky-tasting-wheel:
Here's the prompt I used, which I then followed up having it refine the list to remove duplicates, and re-add common items found it its corpus.
I am building a whisky review website. When you submit a review, you can select several tags to describe how the whisky tastes and smells. Upon displaying those tags to the user, i want to give them a flavor profile association to help them more easily associate things.
A tag is a one or two word description that is used to describe the flavor or aroma of the whisky when it is being reviewed. Fill the lists with the most common tags from reviews. Try to have 10 to 20 descriptions per category.
There are 8 categories, listed below. I've included a brief description as well as some example notes.
**Category 1: Cereal Flavors**
These flavors are related to malted barley or other grain types.
Flavors are like: oatmeal, grains, malts, cooked vegetables
**Category 2: Fruity Flavors**
Appealing aspects from the production process, sweet & fragrant.
Flavors are like: citrus, fresh fruit, dried fruit, cooked fruit, solvent
**Category 3: Floral Flavors**
Scents associated to fresh grass and hay, or leaves.
Flavors are like: fragrant, greenery, leaves, hay
**Category 4: Peaty Flavors**
In Scotch, peat flavors join the malt during the kilning process.
Flavors are like: Medicinal, Smoke, Fish, Moss
**Category 5: Feinty Flavors**
Feints enter the picture in the middle the spirits run, and they become milder during wood maturation.
Flavors are like: Honey, Leather, Tobacco
**Category 6: Sulphury Flavors**
Mostly developing during distillation, these problematic flavors are moderated through the fluid interaction with copper.
Flavors are like: Rubber, Sand, Burnt Matches
**Category 7: Woody Flavors**
Partially directly from the oak, partially related to aging, wood maturation increases complexity and balance, and adds color.
Flavors are like: Vanilla, Wood, Toasted, Pepper
**Category 8: Winey Flavors**
If casks were filled with a type of wine before using them for whisky, some of the wine flavors can become part of the whisky profile.
Flavors are like: Sherry, Nutty, Chocolate, Oily
I want you to output JSON representing choices a user can select for these descriptions.
{
"cereal": ["flavor"],
"fruity": ["flavor"],
"floral": ["flavor"],
"peaty": ["flavor"],
"feinty": ["flavor"],
"sulphury": ["flavor"],
"woody": ["flavor"],
"winey": ["flavor"],
]
An example is "cereal", which might have the following descriptions in JSON:
{
"cereal": [
"biscuits",
"oatmeal",
"grain",
"malted milk",
"malty"
],
}I am building a whisky review website. When you submit a review, you can select several tags to describe how the whisky tastes and smells. Upon displaying those tags to the user, i want to give them a flavor profile association to help them more easily associate things.
A tag is a one or two word description that is used to describe the flavor or aroma of the whisky when it is being reviewed. Fill the lists with the most common tags from reviews. Try to have 10 to 20 descriptions per category.
There are 8 categories, listed below. I've included a brief description as well as some example notes.
**Category 1: Cereal Flavors**
These flavors are related to malted barley or other grain types.
Flavors are like: oatmeal, grains, malts, cooked vegetables
**Category 2: Fruity Flavors**
Appealing aspects from the production process, sweet & fragrant.
Flavors are like: citrus, fresh fruit, dried fruit, cooked fruit, solvent
**Category 3: Floral Flavors**
Scents associated to fresh grass and hay, or leaves.
Flavors are like: fragrant, greenery, leaves, hay
**Category 4: Peaty Flavors**
In Scotch, peat flavors join the malt during the kilning process.
Flavors are like: Medicinal, Smoke, Fish, Moss
**Category 5: Feinty Flavors**
Feints enter the picture in the middle the spirits run, and they become milder during wood maturation.
Flavors are like: Honey, Leather, Tobacco
**Category 6: Sulphury Flavors**
Mostly developing during distillation, these problematic flavors are moderated through the fluid interaction with copper.
Flavors are like: Rubber, Sand, Burnt Matches
**Category 7: Woody Flavors**
Partially directly from the oak, partially related to aging, wood maturation increases complexity and balance, and adds color.
Flavors are like: Vanilla, Wood, Toasted, Pepper
**Category 8: Winey Flavors**
If casks were filled with a type of wine before using them for whisky, some of the wine flavors can become part of the whisky profile.
Flavors are like: Sherry, Nutty, Chocolate, Oily
I want you to output JSON representing choices a user can select for these descriptions.
{
"cereal": ["flavor"],
"fruity": ["flavor"],
"floral": ["flavor"],
"peaty": ["flavor"],
"feinty": ["flavor"],
"sulphury": ["flavor"],
"woody": ["flavor"],
"winey": ["flavor"],
]
An example is "cereal", which might have the following descriptions in JSON:
{
"cereal": [
"biscuits",
"oatmeal",
"grain",
"malted milk",
"malty"
],
}
Here's where my head is at now after spending the morning with GPT4.
Let's take an example:
Laphroaig 10 year Bottle Profile: Heavily Peated (Profile) Tags (per tasting): Peat (Peaty)
Peat itself exists as a tag in "Peaty", and within the bottle profiles its in all three Peated categories (Lightly Peated, Peated, Heavily Peated).
This gives us a lot of opportunity to both make it simple to find similar bottles, which LIKELY we will rely on a GPT classifier to identify, as well as aggregate more specific characteristics to generate flavor graphs.
On the technical side I'm going to move tags into the database, rather than a list of constants. I will also likely add synonyms for tags so we dont end up in massive duplication. This is probably common for something like maramlade vs jam. There may be some existing tags that cannot cleanly migrate ("balanced" and many similar ones), so I need to figure that out. Personally I dont think they're that meaningful so it might be best to just axe these generic descriptors.
SMWS profiles mapped to some reasonable tags:
{
"Young & Spritely": [
"green apple", "lemon zest", "fresh berries", "citrus", "grass", "lime", "light floral", "sparkling"
],
"Sweet, Fruity & Mellow": [
"ripe peach", "juicy pear", "mellow apricot", "soft cherry", "barley sugar", "marmalade", "ripe melon", "banana"
],
"Spicy & Sweet": [
"cinnamon", "sweet ginger", "vanilla", "caramel", "honey", "rich nutmeg", "warm clove", "spiced cake"
],
"Spicy & Dry": [
"dry pepper", "herbal notes", "crisp ginger", "subtle oak", "cardamom", "sandalwood", "black tea", "tobacco leaf"
],
"Deep, Rich & Dried Fruits": [
"dried figs", "raisins", "rich prunes", "luxurious sherry", "dark chocolate", "walnut", "coffee beans", "date"
],
"Old & Dignified": [
"antique leather", "old oak", "tobacco", "polished wood", "earthiness", "soft musk", "aged sherry", "library books"
],
"Light & Delicate": [
"soft floral", "lavender", "green leaves", "light honey", "almond", "heather", "fresh hay", "delicate herbs"
],
"Juicy, Oak & Vanilla": [
"vanilla bean", "creamy oak", "maple syrup", "butterscotch", "ripe apples", "toasted almonds", "oak spices", "juicy pears"
],
"Oily & Coastal": [
"seaweed", "oily texture", "salt spray", "maritime air", "briny notes", "clam", "oyster", "fishing net"
],
"Lightly Peated": [
"light smoke", "gentle peat", "fresh mineral", "smoked herbs", "bonfire embers", "peat moss", "autumn leaves", "grilled citrus"
],
"Peated": [
"earthy peat", "smoked wood", "balanced smoke", "leather", "campfire", "black pepper", "wet stones", "forest floor"
],
"Heavily Peated": [
"intense smoke", "heavy iodine", "tar", "burnt rubber", "creosote", "smoked meat", "charred oak", "deep peat"
]
}
Those same tags mapped to generic profiles:
{
"cereal": [
"barley sugar", "biscuity", "oatmeal", "grains", "malted barley", "rye", "wheat", "corn", "fresh hay"
],
"fruity": [
"green apple", "lemon zest", "fresh berries", "citrus", "lime", "ripe peach", "juicy pear", "mellow apricot", "soft cherry", "ripe melon", "banana", "apple pie", "stewed fruits"
],
"floral": [
"light floral", "soft floral", "lavender", "fresh flowers", "green leaves", "heather", "delicate herbs"
],
"peaty": [
"light smoke", "gentle peat", "smoked herbs", "peat moss", "earthy peat", "smoked wood", "balanced smoke", "intense smoke", "heavy iodine", "tar", "burnt rubber", "creosote", "smoked meat", "charred oak", "deep peat"
],
"feinty": [
"old books", "antique leather", "tobacco", "earthiness", "soft musk", "aged sherry", "library books", "tobacco leaf"
],
"sulphury": [
"burnt matches", "gunpowder"
],
"woody": [
"old oak", "polished wood", "vanilla bean", "creamy oak", "maple syrup", "butterscotch", "ripe apples", "toasted almonds", "oak spices", "juicy pears", "antique wood", "oak", "sherry"
],
"winey": [
"luxurious sherry", "dark chocolate", "walnut", "coffee beans", "date", "currants", "rich prunes", "dried figs", "raisins", "fruit cake"
]
}
Shipped this. Still work to do but its easy to expand from here.
SMWS' are pretty good but not perfect. Here's ChatGPTs approach with a bit of refinement.
Woody & Vanilla: Oak-aged flavors with woody and sweet vanilla notes.
Fruity & Winey: Fruit-forward with hints of wine-like richness.
Spicy & Herbal: Warm spices and herbal complexities.
Sweet & Nutty: Rich sweetness with nutty undertones.
Smoky & Peaty: Intense smoke and peat characteristics.
Grainy & Malty: Foundational malted grains with cereal-like qualities.
And with tasting profiles:
Woody & Vanilla:
Woody Flavors: oak, cedar, sandalwood, pine Vanilla: vanilla bean, vanilla extract, vanilla custard, vanilla pod, vanilla essence Spice: cinnamon, nutmeg, clove, ginger, allspice Tannin: tea leaves, leather, tobacco, dryness, bitterness Toasted: toasted oak, toasted coconut, toasted bread, roasted nuts
Fruity & Winey:
Citrus: oranges, lemons, limes, grapefruits, tangerines Orchard Fruits: apples, pears, quinces, peaches, apricots Berries: strawberries, raspberries, blueberries, blackberries, cranberries Stone Fruits: cherries, plums, nectarines, peaches, apricots Wine Influence: sherry, port, wine, grape, tannic
Spicy & Herbal:
Spices: cinnamon, nutmeg, cloves, ginger, black pepper Herbs: mint, thyme, rosemary, basil, cilantro Anise: licorice, fennel, star anise, absinthe, sambuca Earthy: moss, damp soil, mushrooms, wet leaves, forest floor Floral: lavender, chamomile, rose, jasmine, elderflower
Sweet & Nutty:
Sweetness: caramel, toffee, honey, syrup, brown sugar Nutty: almonds, hazelnuts, walnuts, pecans, macadamia nuts Chocolate: milk chocolate, dark chocolate, cocoa powder, chocolate fudge, chocolate-covered nuts Fudge: creamy, buttery, sugary, condensed milk, evaporated milk Marzipan: almond paste, sweet almond, almond extract, almond liqueur
Smoky & Peaty:
Smoke: campfire, barbecue, ash, charred wood, smoked meat Peat: earthy, mossy, medicinal, iodine, seaweed Tar: asphalt, rubber, road tar, creosote, diesel Medicinal: antiseptic, bandages, iodine, cough syrup, TCP Coastal: sea salt, seaweed, brine, ocean breeze, maritime
Grainy & Malty:
Malt: malted barley, malt extract, malt sugar, malted milk, malted grains Cereal: oats, wheat, barley, rice, corn Bread: fresh bread, dough, yeast, baking flour, sourdough Grains: barley, wheat, rye, corn, oats Porridge: oatmeal, warm cereal, hot grain, breakfast oats