当前位置: 首页 > article >正文

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

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

🔍 什么是实体识别与分类?
实体识别(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 pipelinener_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)。
    • 学习处理嵌套实体(如“北京大学第三医院”中的“北京大学”和“第三医院”)。

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

相关文章:

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

🌟 知识图谱的实体识别与分类🔥 🔍 什么是实体识别与分类? 实体识别(Entity Recognition)是从文本中提取出具体的事物,如人名、地名、组织名等。分类(Entity Classification&#x…...

elasticsearch在windows上的配置

写在最前面: 上资源 第一步 解压: 第二步 配置两个环境变量 第三步 如果是其他资源需要将标蓝的文件中的内容加一句 xpack.security.enabled: false 不同版本的yaml文件可能配置不同,末尾加这个 xpack.security.enabled: true打开bin目…...

详解分布式ID实践

引言 分布式ID,所谓的分布式ID,就是针对整个系统而言,任何时刻获取一个ID,无论系统处于何种情况,该值不会与之前产生的值重复,之后获取分布式ID时,也不会再获取到与其相同的值,它是…...

如何在 Vue 项目中为 `el-pagination` 设置中文

文章目录 前言1. 安装 Element Plus2. 引入中文语言包3. 配置中文语言环境4. 使用 el-pagination 组件5. 确保其他组件支持中文6. 语言切换(可选)总结 前言 在 Vue 项目中,Element Plus 是一个流行的 UI 组件库,它提供了许多常用…...

PostgreSQL:更新字段慢

目录标题 PostgreSQL 慢查询优化与 pg_stat_statements 使用1. 启用慢查询日志2. 使用 pg_stat_statements 扩展收集查询统计信息3. 查找执行时间较长的查询4. 分析慢查询的执行计划5. 优化查询6. 检查并发连接和系统资源7. 进一步优化8. 查看某条SQL1. **如何生成 query_id**2…...

【Rust中级教程】2.8. API设计原则之灵活性(flexible) Pt.4:显式析构函数的问题及3种解决方案

喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 说句题外话,这篇文章一共5721个字,是我截至目前写的最长的一篇文章&a…...

【复习】Redis

数据结构 Redis常见的数据结构 String&#xff1a;缓存对象Hash&#xff1a;缓存对象、购物车List&#xff1a;消息队列Set&#xff1a;点赞、共同关注ZSet&#xff1a;排序 Zset底层&#xff1f; Zset底层的数据结构是由压缩链表或跳表实现的 如果有序集合的元素 < 12…...

STM32使用NRF2401进行数据传送

NRF2401是一款由Nordic Semiconductor公司生产的单片射频收发芯片&#xff0c;以下是关于它的详细介绍&#xff1a; 一、主要特点 工作频段&#xff1a;NRF2401工作于2.4~2.5GHz的ISM&#xff08;工业、科学和医疗&#xff09;频段&#xff0c;该频段无需申请即可使用&#xf…...

Fetch API 与 XMLHttpRequest:深入剖析异步请求的利器

Hi&#xff0c;我是布兰妮甜 &#xff01;在现代 Web 开发中&#xff0c;异步通信是实现动态和交互式用户体验的基石。XMLHttpRequest (XHR) 作为老牌劲旅&#xff0c;曾一度统治着这一领域。然而&#xff0c;随着 Fetch API 的横空出世&#xff0c;开发者们迎来了一个更现代、…...

如何生成traceid以及可视化展示

根据你的需求&#xff0c;以下是一些可以生成唯一 traceId 并用于分布式链路追踪的工具和项目&#xff0c;这些项目支持生成唯一的 traceId&#xff0c;并将其用于日志记录和分布式追踪&#xff1a; 1. OpenTelemetry OpenTelemetry 是一个开源的观测框架&#xff0c;支持生成…...

【LeetCode541】反转字符串

题目描述 给定一个字符串 s 和一个整数 k&#xff0c;从字符串开头算起&#xff0c;每计数至 2k 个字符&#xff0c;就反转这 2k 字符中的前 k 个字符。 如果剩余字符少于 k 个&#xff0c;则将剩余字符全部反转。 如果剩余字符小于 2k 但大于或等于 k 个&#xff0c;则反转前…...

DeepSeek、微信、硅基流动、纳米搜索、秘塔搜索……十种不同方法实现DeepSeek使用自由

为了让大家实现 DeepSeek 使用自由&#xff0c;今天分享 10 个畅用 DeepSeek 的平台。 一、官方满血版&#xff1a;DeepSeek官网与APP 首推&#xff0c;肯定是 DeepSeek 的官网和 APP&#xff0c;可以使用满血版 R1 和 V3 模型&#xff0c;以及联网功能。 网址&#xff1a; htt…...

C++:pthread线程分离和线程属性

在 C 的多线程编程中&#xff0c;pthread 库提供了强大的功能来管理线程。其中&#xff0c;线程分离和线程属性是两个重要的概念&#xff0c;它们对于优化线程的行为和资源管理有着关键作用。 线程分离 1.1 什么是线程分离 在 pthread 库中&#xff0c;线程有两种状态&#…...

Orange 开源项目 - 集成阿里云大模型

1 阿里云的大模型服务平台百炼 阿里云的大模型服务平台百炼是一站式的大模型开发及应用构建平台。不论是开发者还是业务人员&#xff0c;都能深入参与大模型应用的设计和构建。您可以通过简单的界面操作&#xff0c;在5分钟内开发出一款大模型应用&#xff0c;或在几小时内训练…...

Docker 搭建 MySQL 数据库

Docker 搭建 MySQL 数据库 前言一、准备工作二、设置 MySQL 容器的目录结构三、配置 MySQL 容器四、自定义 MySQL 配置五、端口配置&#xff1a;Host 网络模式 vs Port 映射模式六、检查 MySQL 容器状态七、连接到 MySQL 容器八、备份与恢复总结 前言 在本篇文章中&#xff0c…...

使用 Docker 部署 Flask 应用

使用 Docker 部署 Flask 应用 一、引言 在现代软件开发中,应用的部署和环境管理是至关重要的环节。传统的部署方式常常会遇到 “在我机器上能运行,在你机器上不行” 的问题,而 Docker 的出现很好地解决了这个痛点。Docker 是一个用于开发、部署和运行应用程序的开放平台,…...

公开整理-最新中国城市统计NJExcel+PDF版本(1985-2024年)

数据简介&#xff1a;《中国城市统计NJ》从1985年开始&#xff0c;本NJ内容共分四个部分:第一部分是全国城市行政区划,列有不同区域、不同级别的城市分布情况;第二、三部分分别是地级以上城市统计资料和县级城市统计资料,具体包括人口、劳动力及土地资源、综合经济、工业、交通…...

python绘图之swarmplot分布散点图

swarmplot 是 Seaborn 提供的一种用于展示分类数据分布的散点图。它的主要作用是将数据点按照分类变量&#xff08;通常是离散变量&#xff09;进行分组&#xff0c;并在每个分类中以一种非重叠的方式展示数据点的位置。这种可视化方式可以帮助我们直观地理解数据在不同分类下的…...

KubeSphere平台安装

KubeSphere简介 KubeSphere 是一款功能强大的容器管理平台&#xff0c;以下是其简介&#xff1a; 1&#xff09;基本信息 开源项目&#xff1a;基于 Apache-2.0 授权协议开源&#xff0c;由 Google Go、Groovy、HTML/CSS 和 Shell 等多种编程语言开发。基础架构&#xff1a;…...

Claude 3.7 Sonnet 泄露,Anthropic 最先进 AI 模型即将在 AWS Bedrock 上首次亮相

(图片&#xff1a;AWS) Anthropic 旗下先进的 AI 模型 Claude 3.7 Sonnet 似乎即将发布。业界预计&#xff0c;亚马逊可能会在2025年2月26日的活动中公布相关消息。泄露的信息表明&#xff0c;该模型将托管于 AWS Bedrock 平台&#xff0c;该平台以提供尖端 AI 模型访问而闻名…...

ONNX转RKNN的环境搭建和部署流程

将ONNX模型转换为RKNN模型的过程记录 工具准备 rknn-toolkit:https://github.com/rockchip-linux/rknn-toolkit rknn-toolkit2:https://github.com/airockchip/rknn-toolkit2 rknn_model_zoo:https://github.com/airockchip/rknn_model_zoo ultralytics_yolov8:https://github…...

解决鼠标唤醒关屏状态下的笔记本

以下是通过计划任务和PowerShell实现鼠标唤醒控制的全网独家解决方案,基于Windows事件触发机制,结合设备管理API实现精准控制,最终实现仅需通过win+l锁定屏幕,再关闭屏幕,既不会出现唤醒笔记问的问题: 一、技术原理深度解析 1. 事件触发机制 Windows安全子系统在锁屏/…...

MongoDB 复制(副本集)

MongoDB 复制(副本集) 引言 MongoDB是一个高性能、可扩展、易于使用的文档存储系统。它以JSON-like的文档存储结构&#xff0c;支持灵活的数据模型。在分布式系统中&#xff0c;为了提高数据可用性和系统稳定性&#xff0c;常常需要实现数据的备份和冗余。MongoDB提供了副本集…...

聊聊 FocusSearch/focus_mcp_sql:Text2SQL 的新玩法

聊聊 FocusSearch/focus_mcp_sql&#xff1a;Text2SQL 的新玩法 最近在 GitHub 上逛的时候&#xff0c;发现了一个挺有意思的项目——FocusSearch/focus_mcp_sql。作为一个对 Text2SQL 有点小研究的前端码农&#xff0c;我忍不住想和大家聊聊这个工具。它不像那些常见的基于大…...

Linux红帽:RHCSA认证知识讲解(二)配置网络与登录本地远程Linux主机

Linux红帽&#xff1a;RHCSA认证知识讲解&#xff08;二&#xff09;配置网络与登录本地远程Linux主机 前言一、使用命令行&#xff08;nmcli 命令&#xff09;配置网络&#xff0c;配置主机名第一步第二步修改主机名称 二、使用图形化界面&#xff08;nmtui 命令&#xff09;配…...

C#开发——ConcurrentDictionary集合

ConcurrentDictionary<TKey, TValue> 是 C# 中一个专为多线程场景设计的线程安全字典集合&#xff0c;位于 System.Collections.Concurrent 命名空间中。它允许多个线程同时对字典进行读写操作&#xff0c;而无需额外的同步措施。 一、集合特征 此集合有如下特征…...

深入浅出ES6:现代JavaScript的基石

ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的一次重大更新&#xff0c;引入了许多新特性&#xff0c;使JavaScript更加强大、优雅和易于维护。这些特性已经成为现代JavaScript开发的基石&#xff0c;掌握它们对于任何JavaScript开发者都至关重要。本文将深入…...

小型字符级语言模型的改进方向和策略

小型字符级语言模型的改进方向和策略 一、回顾小型字符级语言模型的处理流程 前文我们已经从零开始构建了一个小型字符级语言模型,那么如何改进和完善我们的模型呢?有哪些改进的方向?我们先回顾一下模型的流程: 图1 小型字符级语言模型的处理流程 (1)核心模块交互过程:…...

一周学会Flask3 Python Web开发-Jinja2模板访问对象

锋哥原创的Flask3 Python Web开发 Flask3视频教程&#xff1a; 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 如果渲染模板传的是对象&#xff0c;如果如何来访问呢&#xff1f; 我们看下下面示例&#xff1a; 定义一个Student类 cla…...

vue 3D 翻页效果

<template><view class"swipe-container" touchstart"onTouchStart" touchmove"onTouchMove" touchend"onTouchEnd"><view class"page">初始页</view></view> </template><script&g…...