Skip to content
プロジェクト

FragDB/fragrance-database

GitHubで見る

FragDB/fragrance-database has 72 GitHub stars and 18 forks. Star changes are not measured yet. Last checked 2026-11-09 10:22 UTC. Last push 2026-11-01.

この数値の測り方

FragDB — Fragrance Database (multilingual): 134K+ fragrances, 23 languages, 4.9M UGC rows in companion parquets. Free 10-record samples.

できること

  • 23 languages — English + 22 translations for all labels, note names, accords, countries, statuses
  • Relational structure — Files linked via unique IDs
  • Rich fragrance data — Notes pyramid, accords, ratings, votes
  • Brand profiles — Logo, country, website, parent company (country/activity translated)

計測したスター増加

24時間
更新が遅れています
7日間
更新が遅れています
15日間
更新が遅れています
1か月
更新が遅れています

期間ごとの純増数です。期間は重複しており、日別の値ではありません。未計測の値は空欄です。スター数は注目度の指標であり、品質の保証ではありません。

FragDB - Fragrance Database (Multilingual)

The most comprehensive fragrance database available — 158,000+ structured records across six interconnected CSV files with 23 language translations, plus 5.3M+ user-generated content rows in Apache Parquet companion datasets covering user reviews, editorial news articles, and community discussions.

License: CC-BY-NC-4.0 Records Reviews News Languages Files Parquet

Keywords: fragrance database · perfume dataset · Fragrantika · user reviews · perfume reviews · fragrance news · perfumery articles · cosmetics dataset · multilingual perfume data · scent recommendation · fragrance recommender system · perfume sentiment analysis · perfumer profiles · accord taxonomy · notes pyramid · NLP fragrance corpus · 23 languages

Overview

FragDB provides structured data for the fragrance industry:

File Records Fields Description
fragrances.csv 143,855 30 Main fragrance database
brands.csv 8,501 54 Brand profiles + translations
perfumers.csv 3,198 42 Perfumer profiles + translations
notes.csv 2,626 55 Fragrance notes + translations
accords.csv 92 27 Accords + translations
translations.csv 34 25 Vocabulary: gender & voting labels × 23 languages

Snapshot freshness

  • Data refreshed: 2026-11-01 (v5.20) — an incremental update: the 1,179 fragrances new at the source were added on 2026-11-01; the existing records are carried over from v5.19 (as captured on 2026-10-08, and on 2026-10-19 for the 1,135 added in v5.19)
  • Reviews, news, news comments (parquet): refreshed in this release — latest review 2026-10-31, latest article 2026-10-29, latest news comment 2026-11-01

Key Features

  • 23 languages — English + 22 translations for all labels, note names, accords, countries, statuses
  • Relational structure — Files linked via unique IDs
  • Rich fragrance data — Notes pyramid, accords, ratings, votes
  • Brand profiles — Logo, country, website, parent company (country/activity translated)
  • Perfumer profiles — Photo, status, company, education, biography (status translated)
  • Notes reference — 2,626 notes with translations, Latin names, groups, odor profiles
  • Accords reference — Display colors + translated names
  • Translation vocabulary — 34 entries for gender and voting labels
  • Pipe-delimited CSV — Easy parsing, UTF-8 encoded

Preview

Fragrances

FragDB Fragrances Table    FragDB Fragrance Detail

Brands & Perfumers

FragDB Brands Table    FragDB Perfumers Table

Notes

FragDB Notes Table    FragDB Note Detail

Quick Start

Python

import pandas as pd

# Load all files
fragrances = pd.read_csv('fragrances.csv', sep='|', encoding='utf-8')
brands = pd.read_csv('brands.csv', sep='|', encoding='utf-8')
notes = pd.read_csv('notes.csv', sep='|', encoding='utf-8')
translations = pd.read_csv('translations.csv', sep='|', encoding='utf-8')

# Join fragrances with brands
fragrances['brand_id'] = fragrances['brand'].str.split(';').str[1]
df = fragrances.merge(brands, left_on='brand_id', right_on='id', suffixes=('', '_brand'))

# Translate gender to any language
trans = translations.set_index('id')
df['gender_ru'] = df['gender'].map(lambda x: trans.loc[x, 'ru'] if x in trans.index else x)

# Brand country in Japanese
print(df[['name', 'name_brand', 'country_ja', 'gender_ru']].head())

JavaScript

const { parse } = require('csv-parse/sync');
const fs = require('fs');

// Load files
const fragrances = parse(fs.readFileSync('fragrances.csv', 'utf-8'), { columns: true, delimiter: '|' });
const brands = parse(fs.readFileSync('brands.csv', 'utf-8'), { columns: true, delimiter: '|' });
const translations = parse(fs.readFileSync('translations.csv', 'utf-8'), { columns: true, delimiter: '|' });

// Build lookup maps
const brandsMap = new Map(brands.map(b => [b.id, b]));
const transMap = new Map(translations.map(t => [t.id, t]));

// Get fragrance with translated fields
const frag = fragrances[0];
const [brandName, brandId] = frag.brand.split(';');
const brand = brandsMap.get(brandId);
const genderRu = transMap.get(frag.gender)?.ru || frag.gender;

console.log(`${frag.name} by ${brandName} (${brand?.country_ru}), ${genderRu}`);

SQL (PostgreSQL)

-- Import
COPY fragrances FROM 'fragrances.csv' DELIMITER '|' CSV HEADER ENCODING 'UTF8';
COPY brands FROM 'brands.csv' DELIMITER '|' CSV HEADER ENCODING 'UTF8';
COPY translations FROM 'translations.csv' DELIMITER '|' CSV HEADER ENCODING 'UTF8';

-- Join and translate gender to Russian
SELECT f.name, b.name AS brand, b.country_ru, t.ru AS gender_ru
FROM fragrances f
JOIN brands b ON SPLIT_PART(f.brand, ';', 2) = b.id
JOIN translations t ON f.gender = t.id;

See DATA_DICTIONARY.md for complete field documentation.

Companion Parquet Datasets — User Reviews, News, and Community Comments

FragDB ships with three Apache Parquet datasets containing 5.3 million rows of user-generated content and editorial coverage — the largest publicly-organized corpus of fragrance reviews and perfumery journalism. Use them for NLP, sentiment analysis, recommendation systems, market research, or training language models on fragrance-specific text.

comments.parquet — 5.0 Million User Reviews in 23 Languages

The world's largest collection of structured fragrance reviews. Every entry includes the perfume ID (joinable with fragrances.csv), author username, posting date, full review text, avatar URL, and language code.

  • 5,026,322 user reviews covering every major perfume in the database
  • 23 languages — English (1.91M reviews), Russian, Portuguese, Spanish, Korean, Turkish, Japanese, Polish, Italian, Hungarian, Serbian, Swedish, German, Hebrew, Ukrainian, French, Arabic, Greek, Czech, Chinese, Romanian, Mongolian, Dutch
  • Coverage: 68.3% of all fragrances in the database have at least one review (98,276 of 143,855 PIDs)
  • Deterministic global primary key — stable comment IDs survive re-scrapes
  • Zero duplicate rows; every pid joins fragrances.csv except 62 reviews (0.001%) on 12 perfumes no longer in the catalogue
  • Independent UGC per language — each language is genuine localized content, not machine translation
  • 8 fields: pid, lang, comment_id, author, date, text, avatar_url, gradient_class
  • PyArrow large_string format — combined corpus exceeds 32-bit string offset limit

Use cases: sentiment analysis · review classification · recommendation systems · perfume similarity from text · language detection benchmark · multilingual NLP training corpus · fragrance market research · author network analysis · trend detection by language

news.parquet — 25,981 Editorial Articles (2008–2026)

Two decades of professional fragrance journalism. Every article includes title, author, full text (plain + HTML), category, related perfumes/brands/perfumers, publication date, and main image. Foreign keys to fragrances, brands, and perfumers make this a powerful resource for content-based recommendation and knowledge graph construction.

  • 25,981 editorial articles from 2008 to 2026 — the complete public archive
  • 30+ categories — top: New Fragrances (33.9%), Fragrance Reviews (24.1%), Niche Perfumery (10.1%), Designer Brands, Interviews, History, Industry News, Niche Houses, and more
  • Bilingual storage — text (plain) for NLP / search, text_html (preserved markup) for rich display
  • Linked entities — related_pids[], related_brands[], related_perfumers[] as JSON arrays
  • 127,609 PID references — all but 177 (0.14%) resolve; those point to perfumes no longer in the catalogue
  • Modern + archived — 59.5% archived legacy articles, 40.5% modern articles, all dated except 27 of the 30 newest (NID 26,464 and above)
  • 16 fields: nid, title, category, author, url, is_archived, date_unix, description, text, text_html, main_image, article_images, related_pids, related_brands, related_perfumers, comments_count
  • List fields stored as JSON-encoded strings — never null (empty = "[]")

Use cases: content recommendation · article search engine · perfume knowledge graph · trend analysis · author influence study · category classification · entity linking · timeline analysis · industry research · niche perfumery research · fragrance journalism corpus

news_comments.parquet — 280,874 Threaded Community Comments

Community discussions attached to editorial articles, with threading support for replies. Joinable with news.parquet via nid.

  • 280,874 threaded comments across 23,215 articles (89.4% of news articles have at least one comment)
  • 5.6% reply rate — threaded conversations with reply detection (is_reply flag)
  • 100% populated timestamps — date_unix parsed for every comment
  • 9 fields: nid, comment_id, is_reply, author, date, date_unix, text, avatar_url, gradient
  • Zero foreign key orphans against news.parquet.nid

Use cases: community engagement analysis · threaded discussion mining · reply network construction · comment sentiment · author activity profiles · temporal analysis of community responses

Tier Availability

The parquet datasets ship with all paid tiers except the $200 Core:

Tier CSV Core Parquet Datasets
$200 One-Time Core ✅ ❌
$400 One-Time Full Database ✅ ✅
Annual Subscription ✅ ✅ (always latest)
Lifetime Access ✅ ✅ (always latest)

See https://fragdb.net/#pricing for complete tier comparison.

Free Parquet Samples Included

This repository includes free parquet preview samples in samples/:

Quick Start — Reading Parquet Datasets

import pyarrow.parquet as pq
import pandas as pd

# Read user reviews
reviews = pq.read_table('comments.parquet').to_pandas()
print(reviews.head())
print(f"Total reviews: {len(reviews):,}")
print(f"Languages: {reviews['lang'].nunique()}")

# Join with CSV fragrance metadata
fragrances = pd.read_csv('fragrances.csv', sep='|')
reviews_with_frag = reviews.merge(fragrances, on='pid', how='left')

# Read news articles
import json
news = pq.read_table('news.parquet').to_pandas()
# Parse JSON-encoded list fields
news['related_pids_list'] = news['related_pids'].apply(json.loads)
news['related_brands_list'] = news['related_brands'].apply(json.loads)
print(news[['nid', 'title', 'category', 'date_unix']].head())

# Read news comments and join with articles
news_comments = pq.read_table('news_comments.parquet').to_pandas()
discussion = news_comments.merge(news[['nid', 'title']], on='nid')
print(discussion[['nid', 'title', 'author', 'text']].head())

Full schema, field types, and audit statistics are documented in SPEC.md.

Data API — per-record access

The whole catalogue, one record at a time. A metered HTTP API over the same database we sell as files. You pay per record returned, at the level of detail you ask for. No subscription and no seats: top up a balance, fetch what your application needs, cache it as long as you like.

fragdb.net/api → · OpenAPI spec · Sign up · FAQ · Terms

Endpoints

GET  /api/v1/fragrances/{id}        one record
GET  /api/v1/brands/{id}            one brand
GET  /api/v1/notes/{id}             one note
GET  /api/v1/perfumers/{id}         one perfumer
POST /api/v1/{collection}/batch     up to 100 ids in one call
GET  /api/v1/index                  the full index, gzipped JSONL
GET  /api/v1/release                current release label and date — free
GET  /api/v1/account                balance, limits, usage — free

Detail level is chosen with ?level=list|basic|full.

There are no list endpoints. /api/v1/fragrances?limit=50 answers 404, by design. You enumerate the catalogue with the index file — id, name, brand, year and change status — search it on your side, and fetch whole records only for the hits you need. The index costs no units and needs a paid key: five downloads a day, and an unchanged index answers 304.

Detail levels

Level Units Per record What comes back
list 1 $0.0025 id, brand, name, year, gender, rating with vote count, and a thumbnail
basic 2 $0.005 plus the photo, the collection, review count, main accords with their strength and the credited perfumers
full 4 $0.01 the note pyramid as published, seven vote blocks, description, pros and cons, related fragrances, and every label translated inline

1 unit = $0.0025. Top-ups are multiples of $50, from $100 up to $5,000 — $100 buys 40,000 units. Paid units do not expire while the account is open. Minimum spend is $100 (40,000 units) per 180 days, $16.67 a month, counted from the first top-up. Payment in BTC, ETH, TRX, XMR or USDT.

Try it before you pay

Sign up and a free test key appears straight away. It costs nothing, charges nothing and serves 5 sample records at every level — enough to write your parser against the real shape of a response before you pay for anything.

curl -H "Authorization: Bearer <your test key>" \
  "https://fragdb.net/api/v1/fragrances/f_9kwkhn9yqx?level=full"

That id is one of the five public samples, so the call works on a test key.

Already bought a database file? You get 500 units for 30 days to try the API. (The 500 units come with a file purchase, not with signing up.)

Limits

10 requests per second and 300 per minute on a key · 20 per second on an account · 100 ids per batch call · 50,000 charged records per account per UTC day · 5 index downloads per day · 5 keys per account. Call the API from your server, never from a browser.

How it sits next to the files

The API serves the same catalogue that is sold as files, refreshed about three times a month. Every response carries the release label and its date, and GET /api/v1/release tells you which release you are on.

Ids are permanent: a record withdrawn at its source stays available with its last known content and a status flag.

Reviews, news articles and community comments are not in the API — those stay in the downloadable files described in this README.

What's New in v5.20

  • Data update: 142,676 → 143,855 fragrances (+1,179 added, none removed), 8,501 brands (+68), 3,198 perfumers (+27), 2,626 notes (+8)
  • An incremental release: the source was crawled for new pages on 2026-11-01 and the 1,179 new fragrances were added; the existing 142,676 fragrance records are carried over unchanged from v5.19
  • Reviews, news and news comments refreshed: reviews 5,024,093 → 5,026,322 (+2,229, all English; the other 22 languages keep their v5.19 row counts), editorial articles 25,875 → 25,981 (+106), news comments 279,843 → 280,874 (+1,031)
  • Photos: 633,541 → 635,680
  • Perfumer photos: 52 existing perfumers gained a photo_url — portraits are now read from the fragrance pages on every crawl, so a photo added at the source after the perfumer first appeared is picked up. 1,418 of 3,198 perfumers have a photo; no other column of an existing perfumer changed
  • Notes: 2 of the 8 new rows are new names the source now shows on existing note pages — n2707 Schisandra (the page of n1290 Chinese Magnolia) and n2702 Cocoa Shell (the page of n1553 cocoa shell); the old ids keep their names. Three existing translations were updated at the source (Balsamic Notes and Floral Notes in Turkish, Timur in Italian)
  • Review coverage is 68.3% (98,276 of 143,855 perfumes): most of the fragrances added in this release are new launches with no reviews yet
  • No brand renames or folded brand pages in this release; no perfume changed brand. Every id carried over from v5.19 keeps its record
  • News: 27 of the 30 newest articles (NID 26,464 and above) have date_unix = 0 — the source adds the date to the article page a few days after publication, and the next news refresh picks it up. Two new articles (NID 26,404 and 26,462) did not respond during collection and will be added with the next news refresh
  • Sample files unchanged: the schema did not move between v5.19 and v5.20, so the 10-record previews in samples/ are byte-identical

What's New in v5.19

  • Data update: 141,541 → 142,676 fragrances (+1,135 added, none removed), 8,433 brands (+49), 3,171 perfumers (+17), 2,618 notes (+3)
  • An incremental release: the source was crawled for new pages on 2026-10-19 and the 1,135 new fragrances were added; the existing 141,541 records are carried over unchanged from the 2026-10-08 snapshot (v5.18)
  • Reviews, news and news comments refreshed: reviews 5,022,398 → 5,024,093 (+1,695, all English; the other 22 languages keep their v5.18 row counts), editorial articles 25,780 → 25,875 (+95), news comments 278,905 → 279,843 (+938)
  • Photos: 631,816 → 633,541
  • Review coverage is 68.9% (98,240 of 142,676 perfumes): most of the fragrances added in this release are new launches with no reviews yet
  • No brand renames or folded brand pages in this release; no perfume changed brand. Every id carried over from v5.18 keeps its record
  • The 23 articles that v5.18 shipped without a publication date are now dated. In v5.19, 19 of the 23 newest articles (NID 26,363 and above) have date_unix = 0
  • Sample files unchanged: the schema did not move between v5.18 and v5.19, so the 10-record previews in samples/ are byte-identical

What's New in v5.18

  • Data update: 140,946 → 141,541 fragrances (+595: 601 added, 6 removed because their pages were deleted at the source), 8,384 brands (+25), 3,154 perfumers (+10), 2,615 notes (+5)
  • Reviews, news and news comments refreshed: reviews 4,988,692 → 5,022,398 (+33,706, all English; the other 22 languages keep their v5.17 row counts), editorial articles 25,709 → 25,780 (+71), news comments 277,446 → 278,905 (+1,459)
  • Photos: 625,052 → 631,816
  • Brand ids now survive renames and merges at the source. A renamed brand keeps its id and takes the new name — b7118 Saleel → Saleel Parfums, b4760 Aromatic Families → Aromatic. When the source folds one brand page into another, both ids stay and now carry the same name and page URL: five such pairs in this release, the largest b532 (417 perfumes) with b8330 (15), Novaya Zarya – The New Dawn. Joins on brand_id are unaffected; group by id, not by name, to keep each pair apart. The full list is in CHANGELOG.md
  • Two perfumes moved to another brand because the source moved them: PID 115180 (Maison Incens → Rocco d'Orazio) and PID 141384 (Opula Perfumes → Opal Perfumes)
  • The 84 articles that v5.17 shipped without a publication date are now dated. In v5.18, 23 of the 29 newest articles (NID 26,262 and above) have date_unix = 0
  • Sample files unchanged: the schema did not move between v5.17 and v5.18, so the 10-record previews in samples/ are byte-identical

What's New in v5.17

  • Data update: 140,230 → 140,946 fragrances (+716), 8,359 brands (+43), 3,144 perfumers (+18), 2,610 notes (+4)
  • Reviews, news and news comments refreshed again: reviews 4,986,774 → 4,988,692 (+1,918), editorial articles 25,619 → 25,709 (+90), news comments 276,483 → 277,446 (+963)
  • Photos: 623,790 → 625,052
  • Figures on this page are measured against the v5.17 files. The technical specification (SPEC.md) had kept parts of its May 2026 snapshot — the language table, perfume coverage, the date-coverage section and the category table; all of it is now restated from the v5.17 files
  • Correction: the specification said every non-archived article carries a publication date. In v5.17, 84 of the 250 newest articles (NID 25,970 and above) have date_unix = 0; the page now says so
  • Sample files unchanged: the schema did not move between v5.16 and v5.17, so the 10-record previews in samples/ are byte-identical

What's New in v5.16

  • Data update: 139,501 → 140,230 fragrances (+729), 8,316 brands (+44), 3,126 perfumers (+10), 2,606 notes (+10)
  • Reviews, news and news comments are refreshed for the first time since June. Reviews 4,643,851 → 4,986,774 (+342,923), editorial articles 24,440 → 25,619 (+1,179), news comments 263,798 → 276,483 (+12,685). The three parquet files in the Full tier are new, not carried over
  • Photos: 622,513 → 623,790
  • New: a Data API — per-record HTTP access to the same catalogue, priced per record. See the section above
  • Figures on this page are measured against the v5.16 files: review coverage, the language split, PID reference resolution, the archived/modern article split and the reply rate all moved with the new parquet
  • Sample files unchanged: the schema did not move between v5.15 and v5.16, so the 10-record previews in samples/ are byte-identical

What's New in v5.15

  • Data update: 137,789 → 139,501 fragrances (+1,712), 8,272 brands (+25), 3,116 perfumers (+6), 2,596 notes (+4: 7 new, 3 retired)
  • Full source recrawl (10 Sep 2026) — every field class re-read, not only the new tail
  • Three note IDs retired — the source merged case duplicates: n473 → n2661 (Heather), n653 → n2646 (Icing Pink), n813 → n2660 (Hazelnut Cocoa Spread). No fragrance references the retired IDs
  • Photos: 615,066 → 622,513
  • Figures on this page restated from the release files. The records badge and the full-database totals had stayed at v5.10, and the notes row showed 2,588 while v5.14 shipped 2,592. The notes figure is now the row count of notes.csv — the number fragdb.net shows. Review coverage and foreign-key figures are measured against this catalogue
  • Reviews, news and news comments: the same parquet files as v5.14
  • Sample files unchanged: the schema did not move between v5.14 and v5.15, so the 10-record previews in samples/ are byte-identical

What's New in v5.14

  • Data update: 137,147 → 137,789 fragrances (+642), 8,247 brands (+37), 3,110 perfumers (+8), 2,586 unique note names (unchanged — the notes reference only moves on a full crawl)
  • Photos: 613,933 → 615,066
  • Sample files unchanged: the schema did not move between v5.13 and v5.14, so the 10-record previews in samples/ are byte-identical. They show structure, not freshness.

What's New in v5.13

  • Data update: 136,682 → 137,147 fragrances (+465), 8,210 brands (+35), 3,102 perfumers (+12), 2,588 notes (+2)
  • Clean incremental delta (19 Aug 2026) — no perfume changed its canonical URL and none disappeared; the previous full recrawl had 59 such moves, so this cycle is pure growth
  • Field coverage flat across all 30 columns (max movement 0.22 pp) — new entries arrive slightly less complete than the catalog average, which is normal for fresh pages, not a regression
  • New note Kiwano shipped with all 22 translations on its first cycle, instead of waiting for the next full recrawl
  • Free sample refreshed — the 10-record CSV samples in samples/ rebuilt from v5.13 data

What's New in v5.12

  • Data update: 135,308 → 136,682 fragrances (+1,374), 8,175 brands (+82), 3,090 perfumers (+33), 2,586 notes (+13)
  • Covers two upstream releases (v5.11 and v5.12); the previous public snapshot was v5.10
  • Full source recrawl (9 Aug 2026) — every field class re-read, not just the new tail; 784 records that a resume-scan bug had frozen since May are current again
  • Notes multilingual 100% — every note translated across all 22 languages, verified with a strict per-language check
  • Free sample refreshed — the 10-record CSV samples in samples/ rebuilt from v5.12 data

What's New in v5.9

  • Data update: 134,022 → 134,577 fragrances (+555), 8,036 brands, 3,046 perfumers, 2,567 notes
  • 154 brand names canonicalized — parser restored the Fragrance(s) suffix stripped by an old bug ("Demeter" → "Demeter Fragrance", "Lacoste" → "Lacoste Fragrances", …); brand IDs unchanged
  • URL hygiene: note-pyramid anchors normalized to one domain (300K beta. → www.), photo cache-busters stripped
  • Free sample refreshed — the 10-record CSV samples in samples/ rebuilt from v5.9 data

Schema (stable since v5.4)

  • Perfumer transliterations in 9 languages (ru, uk, ja, zh, ko, ar, he, el, mn); perfumers.csv 42 columns

From v5.3 (unchanged)

  • 23 languages — all labels, note names, accords, countries, statuses translated
  • translations.csv — vocabulary file for gender values and voting labels
  • Compact notes pyramid — note_id,opacity,weight (name/icon via notes.csv JOIN)
  • Each note name variant (Rose, Damask Rose, Turkish Rose) has its own ID
  • Gender & voting fields use translation IDs instead of English text

See DATA_DICTIONARY.md for complete field documentation with parsing examples.

Sample Data

The free sample includes 10 records per file across all six CSV files, plus parquet samples and SPEC.md:

CSV samples

File Records Description
fragrances.csv 10 Iconic fragrances (30 fields)
brands.csv 10 Brand profiles (54 fields, 22 lang)
perfumers.csv 10 Perfumer profiles (42 fields, 22 lang + 9 translit)
notes.csv 10 Fragrance notes (55 fields, 22 lang)
accords.csv 10 Accords with colors (27 fields, 22 lang)
translations.csv 34 Gender & voting vocabulary (full, 25 fields)

Parquet samples (Full tier preview)

File Records Description
comments_sample.parquet 25 User reviews preview (8 fields)
news_sample.parquet 20 Editorial articles preview (16 fields)
news_comments_sample.parquet 20 News comments preview (9 fields)
SPEC.md — Parquet schema documentation

Preview: SAMPLE_PREVIEW.md

Documentation

Use Cases

CSV Core (all tiers)

  • E-commerce — Enrich product listings with detailed fragrance data, notes, accords
  • Mobile Apps — Build fragrance collection managers, scent discovery apps, perfume catalog apps
  • Data Analysis — Analyze fragrance industry trends by brand, country, perfumer, year
  • Recommendations — Content-based or collaborative filtering systems using accord/note vectors
  • Content Creation — Power blogs, videos, fragrance reviews with accurate data
  • Multilingual UIs — Localized perfume catalogs in 23 languages out of the box
  • Knowledge Graphs — Brand → Perfumer → Fragrance → Notes → Accords graph construction
  • Market Research — Country-of-origin analysis, parent company portfolios, perfumer productivity stats

Parquet Datasets ($400+ tiers)

  • NLP & Sentiment Analysis — Train models on 5.0M multilingual fragrance reviews
  • Recommender Systems — Hybrid models combining CSV structure with review text similarity
  • Language Models — Domain-specific corpus for fragrance/perfumery LLM fine-tuning
  • Review Classification — Identify positive/negative reviews, fake review detection
  • Trend Detection — News article timeline analysis, emerging fragrance trends
  • Author Networks — Identify influential reviewers, perfumery journalists, community leaders
  • Content-Based Discovery — "Articles about this perfume" — JOIN news.related_pids with fragrances.pid
  • Community Analytics — Reply networks, engagement metrics on editorial content
  • Cross-Language Studies — Compare review sentiment across 23 languages for the same fragrance
  • Search Engines — Full-text search across reviews, articles, and structured metadata
  • Entity Resolution — Match journalist's related_brands[] mentions with brands.csv IDs
  • Knowledge Extraction — Mine 26K editorial articles for perfume facts, launch dates, perfumer interviews

Full Database

The free sample contains 10 records per file. The full FragDB database includes:

Feature Free Sample Full Database
Fragrances 10 143,855
Brands 10 8,501
Perfumers 10 3,198
Notes 10 2,626
Accords 10 92
Translations 34 (full) 34
Languages 23 23
Total Records ~84 158,306
Updates None Regular
Commercial Use Yes (sample) Yes (licensed)

Purchase at fragdb.net →

Contributing

Contributions are welcome! See CONTRIBUTING.md for guidelines.

  • Bug fixes for code examples
  • New language examples
  • Documentation improvements
  • Use case additions

License

Links


Built with data passion by the FragDB team.

関連プロジェクトを探す