各国奢侈品品牌文化故事文本解析程序,提取核心符号用于新品宣传素材生成。
2026/6/26 9:30:25 网站建设 项目流程

用 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-learn

"""

import re

import json

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

from matplotlib import rcParams

from collections import Counter, defaultdict

from dataclasses import dataclass, field

from typing import Dict, List, Tuple, Optional

from enum import Enum

rcParams['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ès"

CHANEL = "Chanel"

LOUIS_VUITTON = "Louis Vuitton"

GUCCI = "Gucci"

DIOR = "Dior"

@dataclass

class BrandStory:

"""品牌故事文本库"""

brand: BrandName

origin_country: str

founding_year: int

founder: str

text: str # 完整故事文本

brand_values: List[str] # 品牌核心价值观关键词

brand_tone: List[str] # 品牌调性关键词

@dataclass

class CulturalSymbol:

"""提取出的文化符号"""

keyword: str

symbol_type: SymbolType

tf: int # 词频

idf: float # 逆文档频率

tfidf: float # TF-IDF 得分

sentiment_score: float # 情感关联度

source_quotes: List[str] # 原文引用

cultural_meaning: str # 文化含义

scene_suitability: List[str] # 适用宣传场景

@dataclass

class PromotionMaterial:

"""生成的宣传素材卡片"""

brand: str

symbol: str

symbol_type: str

headline: str # 标题文案

body_text: str # 正文文案

scene: str # 适用场景

source_quote: str # 出处引用

visual_suggestion: str # 视觉建议

# ──────────────────────────────────────────────

# 2. 品牌故事数据库模块

# ──────────────────────────────────────────────

class BrandStoryDatabase:

"""

奢侈品品牌文化故事库

基于品牌官方历史与权威时尚文献整理

"""

@staticmethod

def get_all_stories() -> List[BrandStory]:

return [

BrandStory(

brand=BrandName.HERMES,

origin_country="法国",

founding_year=1837,

founder="Thierry 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(

brand=BrandName.CHANEL,

origin_country="法国",

founding_year=1910,

founder="Gabrielle 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(

brand=BrandName.LOUIS_VUITTON,

origin_country="法国",

founding_year=1854,

founder="Louis 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(

brand=BrandName.GUCCI,

origin_country="意大利",

founding_year=1921,

founder="Guccio 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(

brand=BrandName.DIOR,

origin_country="法国",

founding_year=1946,

founder="Christian 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 = stories

self.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.value

text = 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-IDF

tfidf_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(),

key=lambda x: x[1], reverse=True)[:top_n * 2]:

if word in self.SYMBOL_DICTIONARY:

sym = CulturalSymbol(

keyword=word,

symbol_type=self.SYMBOL_DICTIONARY[word],

tf=tf_counter[word],

idf=idf_scores.get(word, 0.0),

tfidf=tfidf,

sentiment_score=sentiment_scores.get(word, 0.0),

source_quotes=self._extract_quotes(text, word),

cultural_meaning=self.CULTURAL_MEANINGS.get(

word, f"{word}——{brand_name}的品牌符号"

),

scene_suitability=self.SCENE_MAPPING.get(

word, ['新品宣传', '品牌故事']

)

)

symbols.append(sym)

# 按综合得分排序,取 Top N

symbols.sort(key=lambda s: s.tfidf * (1 + s.sentiment_score),

reverse=True)

results[brand_name] = symbols[:top_n]

# 汇总所有符号

for brand, syms in results.items():

self.all_symbols.extend(syms)

return results

def _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:i+2])

# 英文:提取单词

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 tokens

def _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.0

else:

idf[word] = np.log(total_brands / brands_containing)

return idf

def _calc_sentiment_alignment(self,

text: str,

brand_keywords: List[str]) -> Dict[str, float]:

"""计算候选词与品牌调性的情感关联度"""

alignment = {}

tokens = self._tokenize(text)

for word in set(tokens):

# 计算该词与品牌关键词的共现次数

cooccurrence = 0

text_parts = text.split('。')

for sentence in text_parts:

if word in sentence:

for kw in brand_keywords:

if kw in sentence:

cooccurrence += 1

break

# 归一化

total_occurrences = tokens.count(word)

if total_occurrences > 0:

alignment[word] = min(1.0, cooccurrence / total_occurrences * 2)

else:

alignment[word] = 0.0

return alignment

def _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 系列',

'旅行主题': '✈️ 旅行主题',

'马术主题': '🐴 马术主题',

'秋季系列': '🍂 秋季系列',

'春季系列': '🌸 春季系列',

'女性主题营销': '👩 女性力量',

'周年庆典': '🎉 周年庆典',

'高级定制': '👑 高级定制',

'环保主题': '🌿 可持续',

'街头系列': '🏙️ 街头系列',

'艺术家联名': '🎭 艺术联名',

}

@classmethod

def 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(

brand=brand_name,

keyword=sym.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解决实际问题,如果你觉得这个工具好用,欢迎关注长安牧笛!

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询