Reading the Label
What Single Malt, VSOP or Reposado mean, how rare a release is, and how we store strength.
Our methodology combines Sensory Science, Natural Language Processing, and Multi-Dimensional Vector Space to deconstruct the soul of every spirit.
We don't replace human taste; we enhance it. By processing millions of sensory data points, we provide the clarity and context you need to navigate the intricate world of fine spirits.
Every model and piece of software behind Tasting Intelligence, what it does and when it runs. The language models (spaCy, RoBERTa) run on our own servers; generative AI runs through Vertex AI from Google Cloud, and translations can also use Google Cloud Translation.
Language detection & translation: A review in another language is translated to English first, because the analysis models read English. The original text stays on the site.
When: Every new review, written here or collected from other sites.
en_core_web_lg
Flavor recognition: Finds the terms of our Flavor Dictionary in a review: exact matches, plus close relatives through 300-dimensional word vectors (a cosine similarity of at least 0.75).
When: Every review.
en_core_web_lg
Character & occasions: Word lists read mouthfeel and structure (such as smooth or harsh) and the occasions people mention from the text. Community members set these themselves in the review form.
When: Every review collected from another site.
en_core_web_lg
Word analysis: Picks the adjectives and nouns from each review, in their base form and without filler words, to link words to opinions.
When: Every review.
en_core_web_lg
Privacy filter: Removes personal names (named entity recognition), email addresses and phone numbers from the text before it is stored.
When: Every review collected from another site.
cardiffnlp/twitter-roberta-base-sentiment-latest
Rating from text: A review collected from another site has no rating we may copy, so a BERT-family language model calculates one from the text (1 to 10). Reviews from our community keep the rating their author gave.
When: Only reviews collected from other sites.
Drink summary: Writes the AI summary on a drink page, from the tasting notes in the reviews only. The page labels it as AI-generated, with its date.
When: After new reviews are collected, or when an admin asks for a new summary.
Tasting note helper: Suggests a written tasting note from the nose, palate and finish you entered. You decide whether to use it.
When: Only when you ask for a suggestion.
Bottle details: Fills in the specifications of a new bottle (such as type, region and cask). Details it is unsure of are checked with a larger model and Google Search, or flagged for an admin.
When: When a drink is added to the database.
Brand description: Drafts a short description of a brand, which an admin checks and saves.
When: When an admin asks for one.
Images: Creates an illustration for a drink without a photo (with a watermark) and the header image of an AI insight.
When: When a drink or insight is created without an image.
Writing AI insights: First an evidence pack is built from our database, without AI. Gemini turns it into a research brief, Claude writes the article in plain language, and a lighter Gemini model writes the one-line summary. When a model is unreachable, Gemini Pro takes over. An admin reviews every insight before it is published.
When: Once per insight, started by an admin.
Site translations: Translates the site and its content into Dutch, French, Spanish and German. Gemini goes first; when it fails, Claude and then Google Cloud Translation take over. Every translation is stored and reused.
When: Ahead of a release, or the first time a page is visited in a language.
en_core_web_lg
scikit-learn
Similar bottles: Averages the word vectors of all reviews of a drink into one fingerprint and compares the fingerprints of all drinks (cosine similarity). No generative AI is involved.
When: When an admin refreshes the recommendations.
Brand consistency: Compares the flavor profiles of a brand's bottles pair by pair (cosine similarity) and averages the result. No language model or generative AI is involved: the profiles come from flavor recognition, the rest is statistics.
When: Every time a brand page is opened.