用 NebulaGraph + DeepSeek 解锁元宵节文化知识图谱,你知道几个?

一、引言

"东风夜放花千树,更吹落,星如雨" —— 南宋词人辛弃疾笔下描绘的元宵盛景,穿越 800 年时空依然让我们心驰神往。这个起源于汉代太一神祭祀的古老节日,在历史长河中不断焕发新生:东汉时期与佛教燃灯习俗融合,唐代发展为全民狂欢的"上元节",宋代市井中诞生猜灯谜等民俗...元宵节作为中华民族历史悠久、内涵丰富的重要传统节日,其意义早已超越了“节日”的单一范畴,而成为家庭团圆、祈福迎祥的象征。

在漫长的历史演进中不断融合和创新,形成了历史、传说、民俗、美食、诗词等多重文化。这些文化要素构成了一幅多层次、跨领域、互联互通的文化全景图。我们如何用现代科技来传承和弘扬这一古老节日的文化内涵?本文将带你走进元宵节的文化世界,通过 NebulaGraphDeepSeek 构建直观易懂的元宵节知识图谱。

二、元宵节的多重文化维度

在构建元宵知识图谱之前,我们必须对元宵节文化进行系统性拆解,将其内涵细分为多个独立但又相互关联的知识域。从知识图谱建模的角度来看,每一个知识域都可以视为一个节点类别(Tag),而这些类别之间的关系则由边(Edge)来表示。下面我们详细介绍元宵节的四大文化维度.

-- 插入类别节点
INSERT VERTEX `Category` (name) VALUES "元宵节传说";
INSERT VERTEX `Category` (name) VALUES "关于元宵的诗";
INSERT VERTEX `Category` (name) VALUES "民俗活动";
INSERT VERTEX `Category` (name) VALUES "美食文化";

2.1 历史传说

元宵节中流传着大量的传说和民间故事,这些传说不仅为节日增添了神秘色彩,同时也反映了古人对自然、神祇以及命运的理解。在图谱建模时,每一个传说故事都可以构建为一个节点,其属性包括传说名称、来源文献、相关朝代和地域。通过定义“传说关联”边,将不同传说故事与历史传承、民俗活动相互链接,形成完整的文化脉络。

# 历史传说(含时空维度)
CREATE TAG `HistoricalLegend` (
    name string NOT NULL,          # 传说名称
    era string,                    # 所属朝代
    region string DEFAULT "中国",  # 地域分布
    description string,            # 详细描述
    source string                  # 文献来源
) COMMENT = "历史传说实体";

2.2 民俗风情

元宵节作为民间传统节日,其民俗活动丰富多彩,涵盖了赏花灯、猜灯谜、踩高跷、扭秧歌等多个方面。每一种民俗活动都深深植根于地方文化,并具有鲜明的地域特色。在知识图谱中,民俗活动作为一个独立的知识领域,其节点属性包括活动名称、起始年份、流行指数、地域分布及文化意义等,通过“民俗关联”边将其与历史、传说等领域关联起来。

# 民俗活动(带时空特征)
CREATE TAG `FolkActivity` (
    name string NOT NULL,          # 活动名称
    start_year int,                # 起始年份
    popularity double,             # 流行度指数
    spatial_scope string,          # 地域分布
    cultural_significance string   # 文化意义
) COMMENT = "民俗活动实体";

2.3 美食文化

元宵节的美食是传统节日中不可或缺的一部分,每种食品都蕴含着独特的文化象征意义:

  • 元宵/汤圆:象征团圆与和谐,寓意家庭和睦、生活甜蜜。
  • 年糕:寓意年年高升、步步高升,是对美好未来的期盼。
  • 在知识图谱中,美食文化节点需包含食品名称、热量、原料成分(以字符串形式存储多个原料)、及象征意义等属性。通过“美食关联”边,可以将美食与民俗活动、历史传承等关联起来,形成完整的文化生态链。

    # 美食文化(含营养成分)
    CREATE TAG `FoodCulture` (
        name string NOT NULL,          # 食物名称
        calories double,               # 热量(kcal)
        ingredients string,      # 原料成分
        symbolic_meaning string        # 象征意义
    ) COMMENT = "美食文化实体";

    2.4 诗词雅韵

    元宵节在文人墨客笔下同样是一座灵感的宝库。历代文人以元宵为题,创作了大量优美诗词,这些诗词不仅反映了当时的社会风貌,更承载了深厚的情感与审美:经典作品:如辛弃疾的《青玉案·元夕》、欧阳修的《生查子·元夕》等,均成为千古绝唱。在知识图谱中,诗词作品节点包括标题、作者、创作朝代、韵律模式、情感分析值和完整内容等,通过“诗词关联”边将诗词与民俗活动、历史传承、传说故事等多维信息建立联系。

    # 诗词作品(带文学特征)
    CREATE TAG `Poetry` (
        title string NOT NULL,         # 诗词标题
        author string,                 # 作者
        dynasty string,                # 创作朝代
        rhyme_scheme string,           # 押韵模式
        sentiment_analysis double,     # 情感分析值
        content string                 # 完整内容
    ) COMMENT = "诗词作品实体";

    三、NebulaGraph + DeepSeek 构建元宵知识图谱

    3.1 数据建模

    在构建元宵知识图谱过程中,我们首先需要对各个文化维度进行数据建模。基于前文介绍的四大维度,我们已经将数据分为以下四大节点类别:

    HistoricalLegend(历史传说) 属性:名称、朝代、地域、描述、文献来源。

    FolkActivity(民俗活动) 属性:活动名称、起始年份、流行指数、地域分布、文化意义。

    FoodCulture(美食文化) 属性:食品名称、热量、原料成分(字符串存储)、象征意义。

    Poetry(诗词作品) 属性:标题、作者、朝代、韵律模式、情感分析值、完整内容。

    接下来,我们需要定义边类型来表达不同领域之间的关联:

    # 定义多维关联边类型
    # ================================================
    # 时空关联边(带权重)
    CREATE EDGE `HistoricalContinuity` (
        start_year int,                # 起始年份
        end_year int,                  # 终止年份
        influence_factor double        # 影响力系数
    ) COMMENT = "历史延续性关联";

    # 文化传播边(带地理编码)
    CREATE EDGE `CulturalDiffusion` (
        from_region string,            # 发源地
        to_region string,              # 传播地
        diffusion_path string          # 传播路径
    ) COMMENT = "文化传播路径";

    # 语义关联边(带置信度)
    CREATE EDGE `SemanticLink` (
        relation_type string,          # 关系类型
        confidence double,             # 置信度
        source string                  # 知识来源
    ) COMMENT = "语义关系关联";

    # 创建边类型:RelatedTo
    CREATE EDGE RelatedTo (
        description string,  # 关系描述
    ) COMMENT = "历史传说与民俗活动之间的关联关系";

    # 创建边类型:AssociatedWith
    CREATE EDGE AssociatedWith (
        description string,  # 关系描述
    ) COMMENT = "民俗活动与美食文化之间的关联关系";

    # 创建边类型:WrittenFor
    CREATE EDGE WrittenFor (
        description string,  # 关系描述
    ) COMMENT = "民俗活动与诗词作品之间的关联关系";

    image

    3.2 通过 DeepSeek 做元宵文化知识抽取

    在构建元宵知识图谱过程中,需要大量非结构化的元宵节文化文本转换为结构化数据,再通过图谱表达各实体与关系。以下介绍如何利用 DeepSeek 对元宵节文化文本进行知识抽取,并将抽取结果以 nGQL 语句导入 NebulaGraph。这里给出两种方法:

    方法一:直接与 DeepSeek 对话

    构建提问策略 根据元宵节文化知识的需求,设计几个关键问题,例如:

    • “元宵节的起源和历史背景是什么?”
    • “元宵节有哪些传统民俗活动?”
    • “元宵节的代表美食有哪些?它们分别象征什么?”
    • “请解析《青玉案·元夕》中描绘的元宵盛景。”

    通过 DeepSeek 的在线接口或对话系统,直接输入上述问题。DeepSeek 会返回结构化或半结构化的回答,其中可能包含实体及其属性、关系等信息。例如,返回的数据可能类似于:

    实体:元宵节 属性:起源 → “汉代祭祀太一神”、历史记载 → “《史记》记载…”

    实体:赏花灯 属性:地域 → “华北,江南”、文化意义 → “象征光明与希望”

    实体:元宵 属性:美食寓意 → “象征团圆与美满”

    实体:青玉案·元夕 属性:作者 → “辛弃疾”、朝代 → “宋代”

    同时,还会返回诸如:

    ("元宵节", "hasTradition", "赏花灯")

    ("元宵节", "hasFood", "元宵")

    ("赏花灯", "describedIn", "青玉案·元夕")

    根据 DeepSeek 返回的结构化知识,我们整理出各个节点及关系,然后生成 nGQL 语句。例如:

    # 建立元宵节与赏花灯的关联(例如,历史传承到民俗活动) 
    INSERT EDGE RelatedTo (description) VALUES "HL001" -> "FA001":("元宵节催生了赏花灯这一民俗活动"); 
    # 建立赏花灯与元宵之间的关联(民俗活动与美食文化) 
    INSERT EDGE AssociatedWith (description) VALUES "FA001" -> "FC001":("赏花灯与元宵相辅相成,共同构成节日风貌"); 
    # 建立赏花灯与诗词作品之间的关联 INSERT EDGE WrittenFor (description) VALUES "FA001" -> "P001":("《青玉案·元夕》描绘了赏花灯的盛景");

    方法二:本地部署 DeepSeek

    对于大规模数据或需要对抽取过程进行精细控制的场景(事实是总是遇到“服务器繁忙,请稍后再试”),可以选择在本地部署 DeepSeek。此方法适合批量处理、自动化知识库构建,步骤如下:

    本机部署 DeepSeek-R1

    一、下载安装 Ollama;

    二、运行:ollama run deepseek-r1;

    三、下载安装 ChatBox;

    四、在ChatBox 的设置中选择 "OllamaAPI" 并选择 DeepSeek-R1 模型

    准备元宵节相关的海量语料,如历史文献、民间故事、网络文章、诗词资料等,并进行文本格式化处理。

    文本预处理 对语料进行清洗、分词,将预处理后的文本组织成适合 DeepSeek 模型输入的格式。

    批量知识抽取 运行本地部署的 DeepSeek 模型,对处理后的文本数据进行批量推理。 模型会自动识别出文本中的关键实体、属性及其之间的关系,并生成结构化输出。

    输出数据示例(JSON 格式):

    {
      "entity""元宵节",
      "attributes": {
        "起源""汉代祭祀",
        "传统""赏花灯,猜灯谜",
        "美食""元宵,汤圆",
        "诗词""青玉案·元夕"
      },
      "relations": [
        {
          "subject""元宵节",
          "predicate""hasOrigin",
          "object""汉代"
        },
        {
          "subject""元宵节",
          "predicate""hasTradition",
          "object""赏花灯"
        },
        {
          "subject""元宵节",
          "predicate""hasFood",
          "object""元宵"
        },
        {
          "subject""赏花灯",
          "predicate""describedIn",
          "object""青玉案·元夕"
        }
      ]
    }

    数据转换与 nGQL 导入,如:

    # 插入美食文化节点:元宵 
    INSERT VERTEX FoodCulture(name, calories, ingredients, symbolic_meaning) VALUES "FC001":("元宵", 450, "糯米,芝麻,白糖""象征团圆与美满");

    # 插入诗词作品节点:青玉案·元夕 
    INSERT VERTEX Poetry(title, author, dynasty, rhyme_scheme, sentiment_analysis, content) VALUES "P001":("青玉案·元夕""辛弃疾""宋代""xyz", 0.85, "东风夜放花千树,更吹落、星如雨..."); 

    持续更新与调优 根据实际抽取效果,不断优化 DeepSeek 模型参数和抽取策略,提升实体和关系的准确性。

    3.3 数据导入与图谱构建

    将 DeepSeek 提取的数据导入到 NebulaGraph 中,可以使用以下代码示例:

    # 1. 插入历史传说数据
    INSERT VERTEX `HistoricalLegend` (
        name, era, region, description, source
    ) VALUES
    "HL001":("元宵节起源""汉代""中国"
        "源于汉代祭祀太一神的活动,《史记·乐书》记载:'汉家常以正月上辛祠太一甘泉'"
        "《史记》"),
    "HL002":("燃灯习俗起源""东汉""洛阳",
        "东汉明帝时期佛教传入,敕令正月十五燃灯表佛,《僧史略》载:'西域十二月三十日...汉明帝令烧灯,表佛法大明也'",
        "《洛阳伽蓝记》"),
    "HL003":("舞龙舞狮起源""唐代""中原",
        "舞龙舞狮起源于唐代,最初是宫廷表演,后流传至民间,象征驱邪避灾、吉祥如意",
        "《唐书》"),
    "HL004":("踩高跷起源""北宋""北方",
        "踩高跷起源于北宋时期,最初是民间表演艺术,后成为元宵节常见活动",
        "《宋史》"),
    "HL005":("扭秧歌起源""明代""北方",
        "扭秧歌起源于明代,最初是农民庆祝丰收的舞蹈,后成为元宵节传统活动",
        "《明史》");
    # ================================================

    # 2. 插入民俗活动数据
    INSERT VERTEX `FolkActivity` (
        name, start_year, popularity, spatial_scope, cultural_significance
    ) VALUES
    "FA001":("赏花灯", 180, 0.95, ARRAY["华北","江南"], "象征光明与希望,促进社区凝聚力"),
    "FA002":("猜灯谜", 960, 0.88, ARRAY["全国"], "智力活动与传统文化的结合体现"),
    "FA003":("舞龙舞狮", 618, 0.92, ARRAY["中原","华南"], "寓意驱邪避灾、吉祥如意"),
    "FA004":("踩高跷", 1046, 0.85, ARRAY["北方"], "传统表演艺术,增加节日欢乐气氛"),
    "FA005":("扭秧歌", 1368, 0.90, ARRAY["北方"], "传统舞蹈,表达喜庆和丰收的喜悦");
    # ================================================

    # 3. 插入美食文化数据
    INSERT VERTEX FoodCulture(name, calories, ingredients, symbolic_meaning)
    VALUES
        "FC001":("元宵", 450, "糯米,芝麻,白糖""象征团圆与美满"),
        "FC002":("汤圆", 350, "糯米,红豆,椰蓉""寓意家庭和睦、生活甜蜜"),
        "FC003":("年糕", 320, "糯米,红枣,花生""象征年年高升,生活步步高"),
        "FC004":("炸元宵", 500, "糯米,豆沙,植物油""外酥里嫩,寓意生活红火"),
        "FC005":("饺子", 280, "面粉,猪肉,白菜""象征团圆和财富");
    # ================================================

    # 4. 插入诗词作品数据
    INSERT VERTEX `Poetry` (
        title, author, dynasty, rhyme_scheme, sentiment_analysis, content
    ) VALUES
    "P001":("青玉案·元夕""辛弃疾""宋代""xyz", 0.85, "东风夜放花千树,更吹落、星如雨。宝马雕车香满路。凤箫声动,玉壶光转,一夜鱼龙舞。蛾儿雪柳黄金缕,笑语盈盈暗香去。众里寻他千百度,蓦然回首,那人却在、灯火阑珊处。"),
    "P002":("生查子·元夕""欧阳修""宋代""abd", 0.78, "去年元夜时,花市灯如昼。月上柳梢头,人约黄昏后。今年元夜时,月与灯依旧。不见去年人,泪湿春衫袖。"),
    "P003":("正月十五夜""苏味道""唐代""abc", 0.80, "火树银花合,星桥铁锁开。暗尘随马去,明月逐人来。游伎皆秾李,行歌尽落梅。金吾不禁夜,玉漏莫相催。"),
    "P004":("十五夜观灯""卢照邻""唐代""aabb", 0.82, "锦里开芳宴,兰缸艳早年。缛彩遥分地,繁光远缀天。接汉疑星落,依楼似月悬。别有千金笑,来映九枝前。"),
    "P005":("元夕无月""丘逢甲""清代""aabb", 0.75, "三年此夕月无光,明月多应在故乡。欲向海天寻月去,五更飞梦渡鲲洋。"),
    "P006":("京都元夕""元好问""金代""aabb", 0.80, "袨服华妆着处逢,六街灯火闹儿童。长衫我亦何为者,也在游人笑语中。"),
    "P007":("鹧鸪天·元夕有所梦""姜夔""宋代""aabb", 0.78, "肥水东流无尽期,当初不合种相思。梦中未比丹青见,暗里忽惊山鸟啼。春未绿,鬓先丝,人间别久不成悲。谁教岁岁红莲夜,两处沉吟各自知。"),
    "P008":("清平乐·上元月蚀""纳兰性德""清代""aabb", 0.85, "瑶华映阙,烘散蓂墀雪。比拟寻常清景别,第一团圆时节。影蛾忽泛初弦,分辉借与宫莲。七宝修成合璧,重轮岁岁中天。"),
    "P009":("元夕二首""王守仁""明代""aabb", 0.75, "故园今夕是元宵,独向蛮村坐寂寥。赖有遗经堪作伴,喜无车马过相邀。"),
    "P010":("元夕影永冰灯""唐顺之""明代""aabb", 0.80, "正怜火树千春妍,忽见清辉映月阑。出海鲛珠犹带水,满堂罗袖欲生寒。烛花不碍空中影,晕气疑从月里看。为语东风暂相借,来宵还得尽余欢。");

    在建立关联关系和创建索引后,执行到数据库中,让我们看看效果~


    (彩蛋:heart:祝大家元宵节团团圆圆)

    四、元宵节成语有奖游戏

    除了构建元宵节知识图谱,我们还可以利用 NebulaGraph 和 DeepSeek 来设计一个有趣的元宵节成语游戏。

    DeepSeek + NebulaGraph 出题:


    一道题

    写出 12345 的谜底

    写出图中的 14 个成语

    答题要求】进入 NebulaGraph 论坛,在本文评论答题。
    评奖方式】先到先得的方式,先正确答对的 10 明同学,将会在元宵节当天收到瑞幸咖啡一杯。

    3 个赞

    图数据超酷
    按图索骥,图文并茂,文武双全,武艺超群,超凡脱俗,不计其数,数九寒天,寒来暑往,酷暑难耐,冷酷无情,天经地义,引经据典,据理力争,理直气壮

    1 个赞

    图数据超酷
    按图索骥,图文并茂
    不计其数,数九寒天
    据理力争,引经据典
    超凡脱俗,武艺超群
    酷暑难耐,冷酷无情

    理直气壮,寒来暑往,文武双全,天经地义

    1 个赞

    图数据超酷

    1 个赞

    14个成语也需要写哈~

    图数据超酷

    1 个赞

    14 个成语也要写哈~

    图数据超酷
    按图索骥,图文并茂
    不计其数,数九寒天
    据理力争,引经据典
    超凡脱俗,武艺超群
    酷暑难耐,冷酷无情

    理直气壮,寒来暑往,文武双全,天经地义

    1 个赞

    14 个成语也要写哈~

    1 图 2 数 3 据 4 超 5 酷

    1 图文并茂 2 按图索骥 3 超凡脱俗 4 武艺超群 5 文武双全 6 寒来暑往 7 酷暑难耐 8 不计其数 9 数九寒天 10 引经据典 11 据理力争 12 理直气壮 13 天经地义 14 冷酷无情

    1 个赞

    图数据超酷
    按图索骥,图文并茂
    不计其数,数九寒天
    据理力争,引经据典
    超凡脱俗,武艺超群
    酷暑难耐,冷酷无情

    理直气壮,寒来暑往,文武双全,天经地义

    1 个赞

    理直气壮
    据理力争
    典据经引
    天经地义
    不计其数
    数九寒天
    寒来暑往
    冷酷无情
    武艺超群
    超凡脱俗
    文武双全
    图文并茂
    按图索骥
    酷暑难耐

    1 个赞

    按图索骥,图文并茂
    不计其数,数九寒天
    据理力争,引经据典
    超凡脱俗,武艺超群
    酷暑难耐,冷酷无情

    1 个赞

    图数据超酷
    按图索骥
    图文并茂
    文武双全
    武艺超群
    超凡脱俗
    不计其数
    数九寒天
    寒来暑往
    酷暑难耐
    冷酷无情
    天经地义
    引经据典
    据理力争
    理直气壮

    1 个赞

    图数据超酷,按图索骥,图文并茂,文武双全,武艺超群,超凡脱俗,不计其数,数九寒天,寒来暑往,酷暑难耐,冷酷无情,天经地义,引经据典,据理力争,理直气壮

    1 个赞

    12345 = 图数据超酷
    按图索骥,图文并茂,文武双全,武艺超群,超凡脱俗
    不计其数,数九寒天,天经地义,引经据典
    据理力争,理直气壮
    寒来暑往,冷酷无情,酷暑难耐

    1 个赞

    :partying_face: 恭喜 @QingYan @nicole @ZhangRuiyi @PsiACE @Hal @Wenting @kms9 @Nebulaxingren @HelloDigger @Shinji-IkariG 十位同学全都答对啦~请留意后台私信哈~

    图数据超酷

    1 个赞

    哇 图数据超酷 :cool:

    按图索骥 图文并茂
    不计其数 数九寒天
    据理力争 引经据典
    超凡脱俗 武艺超群
    酷暑难耐 冷酷无情
    理直气壮 寒来暑往 文武双全 天经地义

    (数九寒天是刚学的 :rofl:

    另外附上不靠谱的 AI 识别()

    2 个赞

    哈哈哈 秋梵可以试试 deepseek,题目是他出的