4-知识图谱的抽取与构建-4_2实体识别与分类

news/2025/2/22 13:29:04

🌟 知识图谱的实体识别与分类🔥

🔍 什么是实体识别与分类
实体识别(Entity Recognition)是从文本中提取出具体的事物,如人名、地名、组织名等。分类(Entity Classification)则是将这些实体归类到已知的类别中,比如“演员”可以分为“歌手”、“演员”、“运动员”等。它就像知识图谱的“骨架”,帮助我们更好地组织和理解信息。

💡 为什么重要?
1️⃣ 提升信息理解:通过识别和分类实体,我们能更清晰地理解文本内容,比如“苹果”可以是“水果”、“公司”或“产品”。
2️⃣ 知识图谱的基础:实体识别与分类是构建知识图谱的核心,帮助我们构建结构化的知识库。
3️⃣ 多领域应用:从医疗、教育到企业,实体识别与分类都能为实际场景提供支持。

🔥 如何实现?
1️⃣ 学习工具:云知豆豆、抽取王等知识图谱工具可以帮助你快速识别和分类实体。
2️⃣ 掌握技术:自然语言处理(NLP)技术如CRF、LSTM、BERT都能用来提升识别与分类的准确率。
3️⃣ 实践项目:尝试构建小型知识图谱,从简单的命名实体识别(NER)到复杂分类,一步步掌握技术。

💡 快速上手小技巧
1️⃣ 从基础开始:先掌握命名实体识别(NER),这是分类的基础。
2️⃣ 多实践:通过开源数据集(如CONLL2003)练习,积累经验。
3️⃣ 参考案例:学习医疗、教育领域的实际应用,了解不同场景的需求。

🌟 未来趋势
1️⃣ 智能化:深度学习将推动实体识别与分类更高效。
2️⃣ 个性化:根据用户需求定制分类结果。
3️⃣ 可视化:未来知识图谱将更加直观,用户能轻松理解结果。
4️⃣ 边缘计算:实体识别与分类将向边缘延伸,实时服务更 Close。

快来加入我们,一起探索知识图谱的奥秘!📚
#知识图谱 #实体识别 #分类 #自然语言处理 #深度学习 #学习指南


💡 你学会了吗? 【没有】
快快告诉我,你对知识图谱的实体识别与分类有没有了然于胸?
快来评论区和我互动,分享你的学习心得吧!💪


在这里插入图片描述

4-知识图谱的抽取与构建-4_2实体识别与分类任务

1. 实体识别与分类的定义

  • 实体识别(NER, Named Entity Recognition):从非结构化文本中定位并提取具有特定意义的实体(如人名、地名、机构名等)。
  • 实体分类(Entity Classification):将识别出的实体划分到预定义的语义类别中(如“人物”、“地点”、“时间”)。
    在这里插入图片描述

2. 核心要素

实体类型

  • 基础类型:PER(人物)、LOC(地点)、ORG(组织)、TIME(时间)、MONEY(货币)。
  • 扩展类型:产品名(PRODUCT)、疾病名(DISEASE)、法律条款(LAW)等。

标注体系

  • BIO:B-类别(实体开头)、I-类别(实体中间)、O(非实体)。
  • BIOES:B(开始)、I(中间)、E(结束)、S(单个实体)、O(非实体)。

技术方法

模板和规则方法

正则表达式、词典匹配(例如识别以“公司”结尾的机构名)。
在这里插入图片描述

基于序列标注的方法【机器学习算法】

序列标注的方法
在这里插入图片描述

1. 确定实体识别标签贴体系

在这里插入图片描述
标签体系越复杂,标注成本越高。人工标注
BIO,BIOS
###2. 模型【深度学习替代,但可以了解】

隐马尔可夫模型(HMM)

作用:实体识别: 训练模型:目的: 通过训练好的模型,自动给输入的句子打标签。了解这就行。算法搞不定。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
天书【算法】
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

条件随机场(CRF)

在这里插入图片描述
在这里插入图片描述

深度学习

在这里插入图片描述
在这里插入图片描述
这里视频图搞错了,从下往上训练。

在这里插入图片描述

在这里插入图片描述

BiLSTM+CRF 神经网络
基于预训练的语言模型

Transformer(如BERT)、预训练语言模型。
在这里插入图片描述
预训练模型,更能挖掘出数据中隐藏的信息。

实体识别解码策略

在这里插入图片描述

1. MLP SOftmax
2. CRF
3. RNN
4. Pointer Network 指针网络【这是个啥】

小结

在这里插入图片描述

评价指标
  • 精确率(Precision):正确识别的实体数 / 所有识别出的实体数。
  • 召回率(Recall):正确识别的实体数 / 所有真实存在的实体数。
  • F1值(F1-Score):2 * (Precision * Recall) / (Precision + Recall)。

二、通俗易懂的语言指导

1. 比喻理解

实体识别与分类就像“抓娃娃机游戏”

  1. 扫描句子 → 移动爪子(拆分句子为词语)。
  2. 锁定目标 → 瞄准娃娃(判断哪些词是实体)。
  3. 抓取分类 → 抓取后放进不同篮子(如“人名篮”、“地点篮”)。
2. 关键步骤
  • 分词:把句子拆成“零件”,例如“马斯克在上海建工厂” → 【马斯克/在/上海/建/工厂】。
  • 标注:给每个词贴标签,例如“马斯克→B-PER,上海→B-LOC”。
  • 模型训练:教AI学会标注规则(如用BERT模型)。

三、通俗案例演示

任务:从句子中提取实体并分类

句子
“2023年12月25日,苹果公司CEO蒂姆·库克宣布,将在加州投资5亿美元建设新总部。”

步骤分解

  1. 分词与标注(BIO格式)

    • 2023年12月25日 → B-TIME
    • 苹果公司 → B-ORG
    • CEO → O
    • 蒂姆·库克 → B-PER
    • 加州 → B-LOC
    • 5亿美元 → B-MONEY
  2. 分类结果

    • 时间:2023年12月25日
    • 组织:苹果公司
    • 人物:蒂姆·库克
    • 地点:加州
    • 货币:5亿美元

四、定制练习任务(巩固知识点)

任务1:BIO标注实战

句子
“腾讯的创始人马化腾在深圳宣布,2024年将向元宇宙领域投入100亿元人民币。”
要求
标注实体类别(PER, ORG, LOC, TIME, MONEY),使用BIO标签。

点击查看参考答案
  • 腾讯 → B-ORG
  • 创始人 → O
  • 马化腾 → B-PER
  • 深圳 → B-LOC
  • 2024年 → B-TIME
  • 100亿元人民币 → B-MONEY

任务2:模型调用与结果分析
  1. 安装工具:使用Hugging Face的transformers库。

    pip install transformers
    
  2. 运行代码

    from transformers import pipeline
    
    ner_model = pipeline("ner", model="dslim/bert-base-NER")
    text = "Microsoft announced a new office in Tokyo on March 15, 2024."
    results = ner_model(text)
    
    for entity in results:
        print(f"{entity['word']}{entity['entity']}")
    
  3. 观察输出

    • 检查“Microsoft”是否被识别为组织(ORG),“Tokyo”是否为地点(LOC)。
    • 思考:模型是否漏掉了“March 15, 2024”中的时间实体?

任务3:实际应用与错误分析

场景:你正在开发一个财经新闻分析工具,需提取公司名、人名、金额。
要求

  1. 写一段包含歧义实体的句子,例如:
    “苹果股价昨日上涨5%,库克表示将在苹果园区召开发布会。”
    (注:“苹果”可能是公司名或水果,“库克”是人名,“苹果园区”是地点)

  2. 手动标注:尝试用BIO标签标注上述句子。

  3. 使用工具验证

    • spaCy或Hugging Face模型运行句子,观察工具是否准确分类“苹果”。
    • 分析错误:为什么模型可能将“苹果园区”中的“苹果”误判为公司名?

五、总结

  • 核心逻辑:拆分句子 → 判断实体 → 分类标签 → 模型自动化。
  • 学习重点
    • 掌握BIO标注规则
    • 熟悉工具(如spaCy、BERT)
    • 理解上下文对分类的影响(如“苹果”在不同句子中的含义)
  • 进阶方向
    • 尝试训练自定义NER模型(如用Hugging Face的Trainer)。
    • 学习处理嵌套实体(如“北京大学第三医院”中的“北京大学”和“第三医院”)。

如果有代码报错或概念疑问,欢迎随时提问! 🚀


http://www.niftyadmin.cn/n/5862328.html

相关文章

边缘安全加速平台 EO 套餐

腾讯云边缘安全加速平台 EO 提供了多种套餐选型,以满足不同用户的需求。每种套餐的功能和价格会有所不同,通常是根据业务规模、访问流量、加速需求和安全防护需求来进行选择。 下面是腾讯云边缘安全加速平台 EO 套餐选型的基本对比,通常会有以…

PW_Balance

目录 1、 PW_Balance 1.1、 getDocumentsTypeID 1.2、 getShouldAmount 1.3、 setOptimalAmount 1.4、 setRemark PW_Balance package com.gx.pojo; public class PW_Balance { private Integer BalanceID; private Integer PaymentID; private Integer ReceptionID…

vue2.x中父组件通过props向子组件传递数据详细解读

1. 父组件向子组件传递数据的步骤 在子组件中定义 props: 子组件通过 props 选项声明它期望接收的数据。props 可以是数组形式(简单声明)或对象形式(支持类型检查和默认值)。 在父组件中使用子组件时绑定 props&#x…

Brave132编译指南 MacOS篇 - 编译与运行(六)

1. 引言 经过前几篇文章的精心准备,我们已经成功初始化了Brave132浏览器的构建环境,现在,我们终于来到了激动人心的时刻:编译并运行Brave浏览器。本篇将详细介绍如何将之前准备好的源代码和依赖项转化为一个可以实际运行的Brave浏…

C#上位机--流程控制(IF语句)

在 C# 上位机开发领域,流程控制是构建功能丰富、逻辑严谨程序的关键。而if语句作为流程控制的基础组成部分,其重要性不言而喻。本文将深入探讨 C# 上位机中if语句的语法结构、应用场景以及实际操作案例,带你领略if语句在程序开发中的魅力与价…

【初阶数据结构】森林里的树影 “堆” 光:堆

文章目录 1.堆的概念及结构2.堆的接口实现2.1 堆的初始化2.2 堆的销毁2.3 堆的交换2.4 堆的向上调整2.5 堆的插入2.6 堆的向下调整2.7 堆的删除2.8 堆顶获取2.9 堆的判空2.10 堆的节点个数2.11 堆的打印2.12 堆的排序(向上建堆)2.13 堆的排序&#xff08…

【时时三省】(C语言基础)求1*2*3*4*5用C语言表示

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 示例: 输出结果为120

RTSP场景下RTP协议详解及音视频打包全流程

RTSP场景下RTP协议详解及音视频打包全流程 一、RTSP与RTP的关系 RTSP:负责媒体会话控制(DESCRIBE、SETUP、PLAY、PAUSE),通过SDP协商传输参数(端口、编码格式、封装模式)。RTP:实际传输音视频数…