
用 Python 构建奢侈品品牌文化故事文本解析器从品牌历史文本中自动提取核心文化符号并生成可用于新品宣传的素材卡片全程中立、去营销化。一、实际应用场景描述在《时尚产业与品牌创新》课程中品牌叙事Brand Storytelling是奢侈品营销的核心能力。每一个顶级品牌背后都有一套文化符号体系- Hermès马鞍具工艺 → 皮革 / 马术 / 手工缝线 / 橙色礼盒- Chanel女性解放叙事 → 小黑裙 / 山茶花 / 珍珠 / 斜纹软呢- Louis Vuitton旅行文化 → 行李箱 / Monogram / 环球旅行者- Gucci意大利文艺复兴 → 双G / 绿红绿织带 / 马衔扣 / 蛇品牌内容团队面临核心问题我们有 100 页品牌历史文档如何自动提取最具传播力的文化符号这些符号如何转化为新品宣传文案的素材二、引入痛点- 品牌历史文档动辄数十万字人工提炼核心符号耗时数周。- 缺乏量化方法判断哪些符号才是品牌 DNA 的核心——是出现频率最高的还是最具代表性的- 符号与宣传素材之间缺乏结构化映射——提取了马鞍但不知道它适合用在什么场景新品发布/周年庆/联名款。⇒ 用 Python 构建NLP 文本解析 TF-IDF 符号提取 素材结构化生成的完整工具链。三、核心逻辑讲解1. 文化符号提取方法论我们将文化符号定义为品牌叙事中高频 高区分度 强情感关联的词汇/短语。通过三层筛选第一层词频过滤TF→ 出现次数 ≥ 阈值如 3 次的候选词第二层区分度过滤IDF→ 该词在本品牌中频繁出现但在其他品牌中罕见→ TF-IDF 得分高 品牌专属符号第三层情感关联度Sentiment Alignment→ 与品牌调性关键词奢华/传承/匠心/突破的共现率→ 高共现 强文化符号2. 符号类型学符号类型 说明 示例创始符号 与创始人相关的核心意象 马鞍、小黑裙、行李箱工艺符号 代表核心工艺技术的词汇 手工缝线、斜纹软呢、Monogram色彩符号 品牌标志性颜色 爱马仕橙、Tiffany 蓝、Gucci 绿图腾符号 可视觉化的图形元素 双G、山茶花、马衔扣、LV 花押价值符号 表达品牌哲学的关键词 传承、匠心、自由、叛逆3. 宣传素材生成逻辑提取的符号 → 按类型分组 → 匹配模板 → 生成素材卡片素材卡片结构├── 符号名称├── 符号类型├── 出处原文引用├── 文化含义├── 适用宣传场景└── 推荐文案片段四、代码模块化luxury_brand_story_parser.py#!/usr/bin/env python3# -*- coding: utf-8 -*-luxury_brand_story_parser.py各国奢侈品品牌文化故事文本解析器自动提取核心文化符号生成新品宣传素材依赖: numpy, pandas, matplotlib, scikit-learn安装: pip install numpy pandas matplotlib scikit-learnimport reimport jsonimport numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom matplotlib import rcParamsfrom collections import Counter, defaultdictfrom dataclasses import dataclass, fieldfrom typing import Dict, List, Tuple, Optionalfrom enum import EnumrcParams[font.sans-serif] [Noto Sans CJK SC, SimHei, Microsoft YaHei]rcParams[axes.unicode_minus] False# ──────────────────────────────────────────────# 1. 枚举与数据结构# ──────────────────────────────────────────────class SymbolType(Enum):文化符号类型FOUNDER 创始符号CRAFT 工艺符号COLOR 色彩符号TOTEM 图腾符号VALUE 价值符号class BrandName(Enum):品牌名称HERMES HermèsCHANEL ChanelLOUIS_VUITTON Louis VuittonGUCCI GucciDIOR Diordataclassclass BrandStory:品牌故事文本库brand: BrandNameorigin_country: strfounding_year: intfounder: strtext: str # 完整故事文本brand_values: List[str] # 品牌核心价值观关键词brand_tone: List[str] # 品牌调性关键词dataclassclass CulturalSymbol:提取出的文化符号keyword: strsymbol_type: SymbolTypetf: int # 词频idf: float # 逆文档频率tfidf: float # TF-IDF 得分sentiment_score: float # 情感关联度source_quotes: List[str] # 原文引用cultural_meaning: str # 文化含义scene_suitability: List[str] # 适用宣传场景dataclassclass PromotionMaterial:生成的宣传素材卡片brand: strsymbol: strsymbol_type: strheadline: str # 标题文案body_text: str # 正文文案scene: str # 适用场景source_quote: str # 出处引用visual_suggestion: str # 视觉建议# ──────────────────────────────────────────────# 2. 品牌故事数据库模块# ──────────────────────────────────────────────class BrandStoryDatabase:奢侈品品牌文化故事库基于品牌官方历史与权威时尚文献整理staticmethoddef get_all_stories() - List[BrandStory]:return [BrandStory(brandBrandName.HERMES,origin_country法国,founding_year1837,founderThierry Hermès,text(1837年Thierry Hermès 在巴黎创立了一家马具工坊。从马鞍到手袋Hermès 始终秉承着对皮革工艺的极致追求。每一件 Hermès 产品都由一位工匠从始至终独立手工完成。Kelly 包因 Grace Kelly 而得名Birkin 包则因 Jane Birkin 而诞生。马鞍缝线Saddle Stitch是 Hermès 最标志性的工艺符号。橙色礼盒是 Hermès 最具辨识度的视觉符号之一。丝巾Carré采用手工丝网印刷每一条需要耗时数月完成。Hermès 的匠人精神体现在每一个细节皮革的选择、缝线的力度、五金的光泽。品牌与马术运动有着深厚的渊源马术元素贯穿了整个品牌历史。Hermès 坚持不使用流水线生产每一件作品都是独一无二的手工艺术品。Petit h 系列将剩余皮革重新创作体现了可持续发展的理念。Hermès 的 Logo 是一辆马车象征着品牌的马具起源。Lock 包扣是 Hermès 对安全与私密性的诗意表达。),brand_values[匠心, 传承, 手工, 卓越, 独特性],brand_tone[优雅, 克制, 永恒, 低调, 尊贵]),BrandStory(brandBrandName.CHANEL,origin_country法国,founding_year1910,founderGabrielle Chanel (Coco Chanel),text(1910年Gabrielle Chanel 在巴黎开设了一家帽子店。她剪短了当时女性繁复的头发解放了女性的身体。小黑裙Little Black Dress是 Chanel 对女性时尚最深远的贡献之一。Chanel No.5 是世界上第一款由设计师命名的香水Marlilyn Monroe 是其最著名的代言人。山茶花是 Chanel 最具代表性的花卉符号出现在无数设计中。斜纹软呢外套Tweed Jacket是 Chanel 对英国贵族狩猎装的致敬。珍珠项链是 Coco Chanel 最爱的配饰她曾说戴一大串珍珠项链然后只穿一件黑色高领衫。双C Logo 是 Chanel 最经典的品牌标识。Chanel 2.55 手袋因出生于1955年2月而得名链条肩带是其革命性设计。Coco Chanel 用男装面料制作女装打破了性别着装界限。她认为黑色是最优雅的颜色白色是最纯净的颜色。Chanel 的套装解放了女性的腰线让女性可以自由呼吸。),brand_values[自由, 革新, 简约, 女性力量, 永恒优雅],brand_tone[叛逆, 优雅, 简洁, 前卫, 经典]),BrandStory(brandBrandName.LOUIS_VUITTON,origin_country法国,founding_year1854,founderLouis Vuitton,text(1854年Louis Vuitton 在巴黎成立了第一家行李箱工坊。他发明了防水帆布canvas技术彻底改变了旅行箱的制作方式。Monogram 帆布图案是 Louis Vuitton 最标志性的视觉符号。LV 花押字母组合源自品牌创始人的姓名缩写。旅行是 Louis Vuitton 品牌 DNA 的核心每一个设计都围绕旅行的艺术展开。Speedy 包最初是为 Audrey Hepburn 定制的旅行袋。Neverfull 是 Louis Vuitton 最畅销的手袋之一体现了实用与奢华的平衡。Damier 棋盘格图案是 Louis Vuitton 除 Monogram 外的第二大经典图案。品牌与当代艺术家如村上隆、草间弥生的联名系列开创了奢侈品艺术联名的先河。Louis Vuitton 的硬箱Trunk曾是远洋旅行者的必备品。Keepall 旅行袋的名字完美诠释了品牌哲学带走一切轻装前行。LV 的 luggage tag 是旅行箱上的经典配件承载着每位旅行者的故事。),brand_values[旅行, 探索, 创新, 传承, 卓越工艺],brand_tone[冒险, 精致, 国际化, 优雅, 先锋]),BrandStory(brandBrandName.GUCCI,origin_country意大利,founding_year1921,founderGuccio Gucci,text(1921年Guccio Gucci 在佛罗伦萨创立了品牌。绿红绿Green-Red-Green织带是 Gucci 最具辨识度的品牌标识之一。马衔扣Horsebit源于 Gucci 与马术运动的深厚渊源。双G Logo 代表着 Guccio Gucci 的名字缩写。Gucci 的竹节包Bamboo Bag诞生于1947年因战后物资短缺而用竹子做手柄。蛇Snake是 Gucci 最具神秘感的图腾符号。Alessandro Michele 担任创意总监后将复古、怪诞与浪漫主义融为一体。Gucci Garden 是品牌在佛罗伦萨的旗舰博物馆。Flora 印花是 Gucci 最经典的图案之一最初为格蕾丝·凯利王妃设计。Jackie 包以美国第一夫人 Jacqueline Kennedy 命名。Gucci 的乐福鞋Loafer是绅士鞋履的标杆之作。品牌将意大利文艺复兴的华丽美学注入当代时尚。Gucci 的 Dionysus 酒神包以希腊神话中的酒神命名。),brand_values[意大利传统, 创新, 个性, 文艺复兴, 包容性],brand_tone[华丽, 大胆, 浪漫, 复古, 多元]),BrandStory(brandBrandName.DIOR,origin_country法国,founding_year1946,founderChristian Dior,text(1946年Christian Dior 在巴黎蒙田大道30号创立了同名品牌。1947年Dior 发布了New Look系列彻底改变了战后女性的着装方式。Bar Jacket 的收腰设计和 A 字裙摆定义了New Look的轮廓。Miss Dior 香水是品牌历史上第一款香水以 Christian Dior 的妹妹命名。Dior 的藤格纹Cannage灵感来自拿破仑三世的藤椅。Lady Dior 手袋因戴安娜王妃的钟爱而闻名于世。Dior 的 Oblique 印花是品牌最具辨识度的图案之一。Christian Dior 曾说我设计的衣服是让每个女人都成为花朵。Dior 的工坊Ateliers至今仍保留着高级定制的手工传统。Diorama 印花以 Palais Dior 的花园为灵感来源。Saddle 马鞍包在 2000 年首次亮相是 Dior 最具争议也最具辨识度的设计之一。Dior 的 No.1 系列是品牌对数字时代的回应。John Galliano 时期1996-2011是 Dior 最戏剧化和浪漫主义的时代。),brand_values[女性魅力, 高级定制, 法国优雅, 创新精神, 艺术性],brand_tone[浪漫, 戏剧化, 精致, 女性化, 贵族气质])]# ──────────────────────────────────────────────# 3. 文本解析与符号提取模块# ──────────────────────────────────────────────class SymbolExtractor:文化符号提取引擎使用 TF-IDF 规则匹配 情感关联度 三层筛选# 预定义符号词典人工标注的类型映射SYMBOL_DICTIONARY {# 创始符号马鞍: SymbolType.FOUNDER, 小黑裙: SymbolType.FOUNDER,行李箱: SymbolType.FOUNDER, 工坊: SymbolType.FOUNDER,蒙田大道: SymbolType.FOUNDER, 佛罗伦萨: SymbolType.FOUNDER,# 工艺符号马鞍缝线: SymbolType.CRAFT, 斜纹软呢: SymbolType.CRAFT,手工缝线: SymbolType.CRAFT, 丝网印刷: SymbolType.CRAFT,防水帆布: SymbolType.CRAFT, 竹节: SymbolType.CRAFT,藤格纹: SymbolType.CRAFT, 手工: SymbolType.CRAFT,Monogram: SymbolType.CRAFT, Oblique: SymbolType.CRAFT,Damier: SymbolType.CRAFT, 绿红绿: SymbolType.CRAFT,# 色彩符号橙色: SymbolType.COLOR, 小黑裙: SymbolType.COLOR,黑色: SymbolType.COLOR, 白色: SymbolType.COLOR,绿红绿: SymbolType.COLOR, Tiffany蓝: SymbolType.COLOR,# 图腾符号双C: SymbolType.TOTEM, 山茶花: SymbolType.TOTEM,双G: SymbolType.TOTEM, 马衔扣: SymbolType.TOTEM,蛇: SymbolType.TOTEM, 珍珠: SymbolType.TOTEM,Logo: SymbolType.TOTEM, 花押: SymbolType.TOTEM,马车: SymbolType.TOTEM, Diorama: SymbolType.TOTEM,Flora: SymbolType.TOTEM, Saddle: SymbolType.TOTEM,# 价值符号匠心: SymbolType.VALUE, 传承: SymbolType.VALUE,自由: SymbolType.VALUE, 革新: SymbolType.VALUE,旅行: SymbolType.VALUE, 女性力量: SymbolType.VALUE,意大利传统: SymbolType.VALUE, 高级定制: SymbolType.VALUE,法国优雅: SymbolType.VALUE, 卓越: SymbolType.VALUE,}# 符号 → 文化含义映射CULTURAL_MEANINGS {马鞍: 品牌马具起源的见证象征匠心与传承,马鞍缝线: Hermès 最标志性的手工缝制技艺,小黑裙: Chanel 赋予女性着装自由的核心象征,山茶花: Chanel 最具诗意的美学符号,斜纹软呢: Chanel 对英伦贵族狩猎装的致敬与再造,双C: Coco Chanel 的名字缩写品牌最经典的图腾,Monogram: Louis Vuitton 百年经典图案全球辨识度最高的品牌符号,绿红绿: Gucci 意大利血统的视觉宣言,马衔扣: Gucci 与马术文化的深度绑定,双G: Guccio Gucci 的名字缩写品牌灵魂图腾,蛇: Gucci 最具神秘感和力量感的图腾,竹节: Gucci 战后创新的智慧结晶,藤格纹: Dior 拿破仑三世时代的美学回响,New Look: Dior 对战后女性魅力的重新定义,Miss Dior: Dior 品牌精神的香氛化身,橙色: Hermès 最具辨识度的品牌色彩,马车: Hermès 马具工坊起源的视觉印记,旅行: Louis Vuitton 品牌 DNA 的核心命题,Flora: Gucci 为格蕾丝·凯利王妃定制的经典印花,Saddle: Dior 最具争议也最具辨识度的设计语言,}# 符号 → 适用场景SCENE_MAPPING {马鞍: [新品发布, 工艺纪录片, 品牌历史回顾],马鞍缝线: [工艺展示, 匠人访谈, 品质认证],小黑裙: [经典单品推广, 女性主题营销, 周年庆典],山茶花: [视觉海报, 高级成衣系列, 春季系列],斜纹软呢: [秋季系列, 经典单品, 英伦主题],双C: [Logo 系列, 配饰推广, 品牌认知广告],Monogram: [经典系列, 旅行主题, 品牌识别],绿红绿: [意大利主题, 织带系列, 品牌色彩],马衔扣: [马术主题, 男士系列, 复古系列],双G: [Logo 系列, 街头系列, 品牌重塑],蛇: [神秘主题, 秋季系列, 艺术家联名],竹节: [环保主题, 东方美学, 创新叙事],藤格纹: [高级定制, 法式优雅, 经典元素],New Look: [品牌历史, 轮廓主题, 周年纪念],橙色: [品牌色彩, 节日营销, 包装设计],旅行: [旅行系列, 环球营销, 硬箱推广],Flora: [印花系列, 春季系列, 王妃主题],Saddle: [话题单品, 复古回潮, 年轻化营销],}def __init__(self, stories: List[BrandStory]):self.stories storiesself.brand_texts {s.brand.value: s.text for s in stories}self.all_symbols: List[CulturalSymbol] []def extract_all(self,tf_threshold: int 2,top_n: int 10) - Dict[str, List[CulturalSymbol]]:为所有品牌提取核心文化符号Args:tf_threshold: 词频阈值出现次数低于此值的词不进入候选top_n: 每个品牌保留 Top N 个符号results {}for story in self.stories:brand_name story.brand.valuetext story.text# Step 1: 提取候选词中文按字符二元组英文按单词candidates self._tokenize(text)# Step 2: 计算 TF词频tf_counter Counter(candidates)# Step 3: 计算 IDF逆文档频率idf_scores self._calc_idf(candidates, brand_name)# Step 4: 计算 TF-IDFtfidf_scores {}for word, tf in tf_counter.items():if tf tf_threshold and word in idf_scores:tfidf_scores[word] tf * idf_scores[word]# Step 5: 情感关联度sentiment_scores self._calc_sentiment_alignment(text, story.brand_values story.brand_tone)# Step 6: 构建 CulturalSymbol 对象symbols []for word, tfidf in sorted(tfidf_scores.items(),keylambda x: x[1], reverseTrue)[:top_n * 2]:if word in self.SYMBOL_DICTIONARY:sym CulturalSymbol(keywordword,symbol_typeself.SYMBOL_DICTIONARY[word],tftf_counter[word],idfidf_scores.get(word, 0.0),tfidftfidf,sentiment_scoresentiment_scores.get(word, 0.0),source_quotesself._extract_quotes(text, word),cultural_meaningself.CULTURAL_MEANINGS.get(word, f{word}——{brand_name}的品牌符号),scene_suitabilityself.SCENE_MAPPING.get(word, [新品宣传, 品牌故事]))symbols.append(sym)# 按综合得分排序取 Top Nsymbols.sort(keylambda s: s.tfidf * (1 s.sentiment_score),reverseTrue)results[brand_name] symbols[:top_n]# 汇总所有符号for brand, syms in results.items():self.all_symbols.extend(syms)return resultsdef _tokenize(self, text: str) - List[str]:文本分词tokens []# 中文提取所有中文字符 二元组cn_chars re.findall(r[\u4e00-\u9fff], text)for word in cn_chars:tokens.append(word)if len(word) 2:for i in range(len(word) - 1):tokens.append(word[i:i2])# 英文提取单词en_words re.findall(r[A-Z][a-z], text)tokens.extend([w.lower() for w in en_words if len(w) 2])# 过滤过短的词tokens [t for t in tokens if len(t) 2]return tokensdef _calc_idf(self,candidates: List[str],target_brand: str) - Dict[str, float]:计算 IDF逆文档频率# 构建品牌-词文档矩阵brand_word_docs defaultdict(set)for brand, text in self.brand_texts.items():tokens self._tokenize(text)for word in set(tokens):brand_word_docs[word].add(brand)total_brands len(self.brand_texts)idf {}for word in set(candidates):brands_containing len(brand_word_docs.get(word, set()))if brands_containing 0:idf[word] 0.0else:idf[word] np.log(total_brands / brands_containing)return idfdef _calc_sentiment_alignment(self,text: str,brand_keywords: List[str]) - Dict[str, float]:计算候选词与品牌调性的情感关联度alignment {}tokens self._tokenize(text)for word in set(tokens):# 计算该词与品牌关键词的共现次数cooccurrence 0text_parts text.split(。)for sentence in text_parts:if word in sentence:for kw in brand_keywords:if kw in sentence:cooccurrence 1break# 归一化total_occurrences tokens.count(word)if total_occurrences 0:alignment[word] min(1.0, cooccurrence / total_occurrences * 2)else:alignment[word] 0.0return alignmentdef _extract_quotes(self,text: str,keyword: str,max_quotes: int 2) - List[str]:提取包含关键词的原文片段sentences text.split(。)quotes []for sent in sentences:if keyword in sent and len(quotes) max_quotes:# 截取关键词前后各 15 个字符idx sent.index(keyword)start max(0, idx - 15)end min(len(sent), idx len(keyword) 15)quote sent[start:end].strip()if quote not in quotes:quotes.append(quote)return quotes# ──────────────────────────────────────────────# 4. 宣传素材生成模块# ──────────────────────────────────────────────class PromotionGenerator:基于提取的文化符号生成新品宣传素材卡片# 文案模板库TEMPLATES {SymbolType.FOUNDER: [溯源{brand}的{keyword}一段跨越世纪的传奇由此展开。,一切始于{founder}的一个梦想——{keyword}承载着品牌最初的信念。,],SymbolType.CRAFT: [每一件{keyword}作品都是匠人指尖的诗。,{brand}的{keyword}工艺将时间凝固为永恒之美。,],SymbolType.COLOR: [{keyword}——{brand}最深沉的浪漫宣言。,当{keyword}遇上{brand}经典由此诞生。,],SymbolType.TOTEM: [{keyword}——{brand}灵魂的视觉化身。,一个{keyword}诉说{brand}一个世纪的故事。,],SymbolType.VALUE: [{keyword}是{brand}从未动摇的信仰。,在{brand}的世界里{keyword}不仅是理念更是日常。,],}SCENE_LABELS {新品发布: 新品发布,工艺展示: 工艺展示,经典单品推广: ⭐ 经典单品,品牌历史回顾: 品牌历史,视觉海报: 视觉海报,Logo系列: Logo 系列,旅行主题: ✈️ 旅行主题,马术主题: 马术主题,秋季系列: 秋季系列,春季系列: 春季系列,女性主题营销: 女性力量,周年庆典: 周年庆典,高级定制: 高级定制,环保主题: 可持续,街头系列: ️ 街头系列,艺术家联名: 艺术联名,}classmethoddef generate(cls,brand_name: str,symbols: List[CulturalSymbol]) - List[PromotionMaterial]:为品牌生成宣传素材materials []for sym in symbols:# 选择模板templates cls.TEMPLATES.get(sym.symbol_type, [{brand}的{keyword}值得被世界看见。])# 使用第一个模板headline templates[0].format(brandbrand_name,keywordsym.keyword,founder # 从 BrandStory 获取)# 正文结合文化含义 原文引用body_parts [sym.cultural_meaning]if sym.source_quotes:body_parts.append(f如品牌历史所言\{sym.source_quotes[0]}\)body_text .join(body_parts)# 场景scen利用AI解决实际问题如果你觉得这个工具好用欢迎关注长安牧笛