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

为什么需要「实体识别」以及 RAG如何和实体识别结合用

🤖 为什么要做「实体识别」?

实体识别(Named Entity Recognition, NER) 是自然语言处理(NLP)中的一种基础技术,它的目标是:

从文本中识别出“有意义”的实体信息,如人名、地名、组织、时间等。


🧠 举个例子你就懂了:

假设你有一个句子:

"Elon Musk announced a new Tesla factory in Shanghai on Monday."

经过实体识别,你可以提取出:

  • Elon Musk → 人名
  • Tesla → 组织名
  • Shanghai → 地名
  • Monday → 时间

所以,最终抽取的结果是:

{"fact": "Elon Musk announced a new Tesla factory in Shanghai on Monday.","keywords": ["Elon Musk", "Tesla", "Shanghai", "Monday"]
}

💡 实体识别能帮助你做什么?

1️⃣ 构建关键词摘要、生成标签

抽取实体后,你就可以:

  • 把文章“打标签”,例如:

    这篇文章提到 Elon Musk、Tesla、上海 → 属于科技+商业+人物新闻。

  • 便于后续做文章检索、分类、可视化。


2️⃣ 构建知识图谱(Knowledge Graph)

举个简单的图谱结构:

"Elon Musk" —(founded)—> "Tesla"
"Tesla" —(hasFactory)—> "Shanghai"

这就是从事实中提取三元组:

(Elon Musk, founded, Tesla)
(Tesla, hasFactory, Shanghai)

这类图谱可以用于:

  • 构建新闻事件链
  • 做自动问答系统
  • 发现信息关系,比如“谁和谁有关联”

3️⃣ 为下游任务做准备

实体识别是很多 NLP 任务的第一步,比如:

  • 文本摘要:先知道有哪些重点词,再生成摘要。
  • 情感分析:知道“谁说了什么”再分析情绪。
  • 事件抽取:识别实体后再识别动作/行为。
  • 信息检索(IR):把关键词入库,方便查找新闻。
  • RAG(检索增强生成)系统:实体可作为检索入口。

✅ 总结一句话:

实体识别是把“乱糟糟的句子”里提取出“谁”、“什么地方”、“什么时间”这类有意义的信息,
它是你后续做分类、搜索、图谱、摘要、推荐的基础步骤

🎯 RAG 和实体识别怎么结合用?

先放一个结论:

实体识别是 RAG 的“前置增强模组”之一,能显著提升检索的相关性和回答的精准度。

说人话:你用实体识别提取“关键词核心”,再用它们去检索文档,再送进大模型生成答案。这叫 知识检索增强生成,你也可以理解成:

不让大模型在一堆无用信息里摸鱼,而是带着“关键词导航”去找重点。


📦 经典 RAG 流程(不带实体识别)长这样:

  1. 用户输入提问:

    "马斯克在哪成立了第一家特斯拉超级工厂?"
    
  2. 用整个问题去做 embedding:

    emb("马斯克在哪成立了第一家特斯拉超级工厂?")
    
  3. 拿这个 embedding 去向量库查相似内容 → 可能命中一些新闻段落

  4. 拼成上下文,交给大模型生成答案

🧨 问题:这种方式容易受到“语序、歧义、啰嗦句”的干扰。比如“马斯克在哪里开始建工厂”可能就查不到“成立超级工厂”的资料。


💡 加入实体识别后,流程升级:

📌 步骤 1:NER 实体识别 + 消歧义

从问题中抽取实体:

"马斯克"(人名)
"特斯拉"(组织)
"超级工厂"(产品/设施)

可以构造出一个更加精确的关键词组或搜索提示词:

["马斯克", "特斯拉", "超级工厂", "成立地点"]

🔍 步骤 2:实体驱动的检索(Hybrid 检索)

你可以用这些关键词进行:

  • 关键词查找(传统 BM25)
  • 关键词拼接成提示词增强 embedding(Query Expansion)
  • 或作为过滤条件(比如 Neo4j/结构化搜索)

让检索过程更精准,比如你可以组合:

"马斯克 AND 特斯拉 AND 超级工厂"

甚至构造出结构化检索请求:

{"person": "马斯克","organization": "特斯拉","facility": "超级工厂"
}

🧠 步骤 3:把命中的文档拼起来 + 喂给大模型

这样,LLM 就不会困在语义迷宫里了,而是吃到了你特意准备的实体浓汤。


🔁 举个完整流程例子(RAG + NER)

输入问题:

2021 年特斯拉在哪个国家建立了新的超级工厂?

实体识别结果:

{"时间": "2021 年","组织": "特斯拉","设施": "超级工厂"
}

构造检索条件(Query Expansion):

特斯拉 AND 超级工厂 AND 2021

命中文档内容:

2021年,特斯拉在德国柏林郊外建立了一座新的超级工厂——Giga Berlin。

LLM 回答:

特斯拉于 2021 年在德国柏林建立了 Giga Berlin 超级工厂。

✨ 成功!不仅答对了,还提了地点名!


🧪 技术点可拓展的地方:

步骤技术
实体识别SpaCy / HanLP / Bert-NER / 自定义实体分类器
检索增强FAISS + keyword filter / hybrid search(向量 + 关键词)
实体消歧用实体链接技术做 disambiguation,比如“苹果”到底是 Apple 还是 fruit
多轮问答上一轮提到的实体可以帮助下一轮精准检索

✅ 总结一句话:

RAG 是问问题,实体识别是告诉它问的“关键词重点是什么”,然后用这些重点去找文档。

这就像你不是直接让图书管理员找“一个好看的小说”,而是告诉他你要找“村上春树、爱情、东京、90 年代”的小说——这效率高多了,对吧?


或者:

  • 一段 NER → 自动生成检索 query
  • 检索 mock 文档(用 BM25 + FAISS)
  • 拼成 context 发给 GPT

相关文章:

为什么需要「实体识别」以及 RAG如何和实体识别结合用

🤖 为什么要做「实体识别」? 实体识别(Named Entity Recognition, NER) 是自然语言处理(NLP)中的一种基础技术,它的目标是: 从文本中识别出“有意义”的实体信息,如人名…...

初级社会工作者考试精选题库

通过练习题库中的题目,考生能了解考试的题型、难度分布以及命题规律,明确备考的重点和难点,有针对性地复习知识点,避免盲目备考。 精选练习题 1、社会工作者小王在为社区孤寡老人提供服务时,总是把他们当成自己的父母来…...

Transformer 训练:AutoModelForCausalLM,AutoModelForSequenceClassification

Transformer 训练:AutoModelForCausalLM,AutoModelForSequenceClassification 目录 Transformer 训练:AutoModelForCausalLM,AutoModelForSequenceClassification`AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)`功能概述参数解释`AutoModelForSequen…...

图书管理系统(Python)

运行结果: 源代码: # 定义一个图书类 class Book: def __init__(self, title, author, isbn): self.title title self.author author self.isbn isbn def show_info(self): print(f"{self.title},{self.author},{self.isbn}") # 图书列表…...

2022年全国职业院校技能大赛 高职组 “大数据技术与应用” 赛项赛卷(4卷)任务书

2022年全国职业院校技能大赛 高职组 “大数据技术与应用” 赛项赛卷(4卷)任务书 背景描述:模块A:大数据平台搭建(容器环境)(15分)任务一:Hadoop 完全分布式安装配置任务二…...

装系统的一天!镜像系统!

虚拟机可以装系统,我们都知道,但是虚拟机可以装几个系统呢? macOS: 如何在 Windows 电脑上装 macOS 系统?_windows装mac-CSDN博客 Win10: Win10镜像(官方正版)下载及虚拟机配置(保姆级教程…...

Wincc脚本全部不运行

Wincc脚本全部不运行 前言解决办法操作步骤 前言 这里主要是指旧项目移植到Wincc的高版本,移植后界面的一些功能均会失效。(例如脚本不执行,项目编辑器不可用等情况) 解决办法 Wincc的项目文件中有Dcf文件,Dcf文件包…...

第三节:React 基础篇-React组件通信方案

React 组件通信方案详解及使用场景 以下是 React 组件通信的常用方法及其适用场景,以层级结构呈现: 一、父子组件通信 1. Props 传递 • 实现方式: • 父组件通过 props 向子组件传递数据。 • 子组件通过回调函数 (onEvent) 通知父组件更…...

✨ MOS开关的非线性因素详解 ✨

MOS 开关在模拟电路、开关电源等应用中广泛使用,但其导通特性存在非线性,可能导致信号失真或系统性能下降。以下是主要非线性因素及解决思路: 🔧 1. 导通电阻(Ron)的非线性 机理: Ron 并非固定值…...

解决vcpkg使用VS2022报错问题

转自个人博客:解决vcpkg使用VS2022报错问题 最近,在把Visual Studio2019完全更新到最新Visual Studio2022后,原使用的vcpkg无法正常安装包,会报如下与Visual Studio 2022相关的错误: error: in triplet x64-windows-m…...

基于支持向量回归(SVR)的空气质量预测

基于支持向量回归(SVR)的空气质量预测 1.作者介绍2.支持向量回归(SVR)算法介绍2.1 算法原理2.2 关键概念2.3算法特点2.4与其他回归方法对比 3.基于支持向量回归(SVR)的空气质量预测实验3.1数据集介绍3.2代码…...

【数据结构】排序

目录 1.排序的概念及其运用 1.1排序的概念 1.2常见排序算法 2插入排序 2.1直接插入排序 2.1.1基本思想 2.1.2代码实现 2.1.3特性总结 2.2 希尔排序 2.2.1基本思想 2.2.2代码实现 3.选择排序 3.1选择排序 3.1.1基本思想 3.1.2代码实现 3.1.3特性总结 3.2 堆排…...

4185 费马小定理求逆元

4185 费马小定理求逆元 ⭐️难度:简单 🌟考点:费马小定理 📖 📚 import java.util.Scanner; import java.util.Arrays;public class Main {static int[][] a;public static void main(String[] args) {Scanner sc …...

低代码控件开发平台:飞帆中粘贴富文本的控件

效果: 链接: https://fvi.cn/729...

偶氮二异丁腈(AIBN)的物化性质及其在合成中的应用

偶氮二异丁腈(AIBN)是一种常用的自由基引发剂,是一种白色结晶性粉末,不溶于水,但溶于甲醇、乙醇、丙酮、乙醚、甲苯等有机溶剂和乙烯基单体。 AIBN在60℃以上会分解形成异丁腈基,从而引发自由基反应。其分解温度区间为50&#xff…...

3.1.3.2 Spring Boot使用Servlet组件

在Spring Boot应用中使用Servlet组件,可以通过注解和配置类两种方式注册Servlet。首先,通过WebServlet注解直接在Servlet类上定义URL模式,Spring Boot会自动注册该Servlet。其次,通过创建配置类,使用ServletRegistrati…...

java——HashSet底层机制——链表扩容和树化

HashSet在Java中是基于HashMap实现的,它实际上是将所有元素作为HashMap的key存储,而value则统一使用一个静态的Object对象(Present)作为占位符。 1.举例演示 下面我们就举例说明一下,HashSet集合中,一个节点上的链表添加数据以及…...

玩转Docker | 使用Docker搭建Blog微博系统

玩转Docker | 使用Docker搭建Blog微博系统 前言一、Blog介绍项目简介主要特点二、系统要求环境要求环境检查Docker版本检查检查操作系统版本三、部署Blog服务下载镜像创建容器检查容器状态设置权限检查服务端口安全设置四、访问Blog系统访问Blog首页登录Blog五、总结前言 在数字…...

Linux中的Vim与Nano编辑器命令详解

📢 友情提示: 本文由银河易创AI(https://ai.eaigx.com)平台gpt-4-turbo模型辅助创作完成,旨在提供灵感参考与技术分享,文中代码与命令建议通过官方渠道验证。 在Linux系统中,文本编辑是最常用的…...

G1垃圾回收器介绍

G1垃圾回收器简介 全称:Garbage-First Garbage Collector。目的:G1垃圾回收器是为了替代CMS垃圾回收器而设计的,它旨在提供更好的垃圾回收性能和可预测性,特别是在处理大内存堆时。特点:G1是一种服务器端的垃圾回收器…...

Python学习笔记(三)

文章目录 Python函数详解基本概念定义函数函数调用参数类型1. 位置参数2. 默认参数3. 关键字参数4. 可变参数 返回值函数作用函数中的变量作用域规则 递归函数Lambda函数函数注解装饰器文档字符串其他重要概念闭包生成器函数高阶函数 Python函数详解 基本概念 函数是Python中…...

Hqst的超薄千兆变压器HM82409S在Unitree宇树Go2智能机器狗的应用

本期拆解带来的是宇树科技推出的Go2智能机器狗,这款机器狗采用狗身体形态,前端设有激光雷达,摄像头和照明灯。在腿部设有12个铝合金精密关节电机,并配有足端力传感器,通过关节运动模拟狗的运动,并可做出多种…...

TaskFlow开发日记 #1 - 原生JS实现智能Todo组件

一、项目亮点 - 📌 **零依赖实现**:纯原生JavaScript CSS3 - 📌 **数据持久化**:LocalStorage自动同步 - 📌 **交互优化**:收藏置顶 动态统计 - 📌 **响应式设计**:完美适配移动端…...

es的告警信息

Elasticsearch(ES)是一个开源的分布式搜索和分析引擎,在运行过程中可能会产生多种告警信息,以提示用户系统中存在的潜在问题或异常情况。以下是一些常见的 ES 告警信息及其含义和处理方法: 集群健康状态告警 信息示例…...

vue实现在线进制转换

vue实现在线进制转换 主要功能包括: 1.支持2-36进制之间的转换。 2.支持整数和浮点数的转换。 3.输入验证(虽然可能存在不严格的情况)。 4.错误提示。 5.结果展示,包括大写字母。 6.用户友好的界面,包括下拉菜单、输…...

责任链设计模式(单例+多例)

目录 1. 单例责任链 2. 多例责任链 核心区别对比 实际应用场景 单例实现 多例实现 初始化 初始化责任链 执行测试方法 欢迎关注我的博客!26届java选手,一起加油💘💦👨‍🎓😄😂 最近在…...

Matlab 分数阶PID控制永磁同步电机

1、内容简介 Matlab 203-分数阶PID控制永磁同步电机 可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 4、参考论文 略...

Java中LocalDateTime类

Java中的日期类 Date类LocalDateTime类创建LocalDateTime对象1 获取当前时间2 获取自己指定时间3 字符串创建日期 获取当前日期的信息1获取当前日期的年月日 时分秒2 获取当前日期周几\当年第几天\当月第几天3 获取当前⽇期所在周的周⽇和周⼀ 日期的运算1日期加减天数2 日期加…...

【C语言】--- 文件操作

文件操作 1. 为什么要使用文件2. 什么是文件2.1 程序文件2.2 数据文件2.3 文件名 3. 二进程文件和文本文件4. 文件的打开和关闭4.1 流和标准流4.1.1流4.2.2标准流 4.2 文件指针4.3 打开和关闭操作 5. 文件的顺序读写5.1 文件顺序读写函数5.1.1 fgetc 和 fputc5.1.2 fgets 和 fg…...

操作系统 4.4-从生磁盘到文件

文件介绍 操作系统中对磁盘使用的第三层抽象——文件。这一层抽象建立在盘块(block)和文件(file)之间,使得用户可以以更直观和易于理解的方式与磁盘交互,而无需直接处理磁盘的物理细节如扇区(se…...

第六章 进阶03 外包测试亮相

因为有年度重点项目,团队缺少测试资源,所以临时招聘了一个外包测试(后文用J代指),让产品经理亮亮来带她。 到今天J差不多入职有1个月时间了,亮亮组了个会,一起评审下J做的测试用例。 J展示了其…...

如何使用通义灵码完成PHP单元测试 - AI辅助开发教程

一、引言 在软件开发过程中,测试是至关重要的一环。然而,在传统开发中,测试常常被忽略或草草处理,很多时候并非开发人员故意为之,而是缺乏相应的测试思路和方法,不知道如何设计测试用例。随着 AI 技术的飞…...

使用 nano 文本编辑器修改 ~/.bashrc 文件与一些快捷键

目录 使用 nano 编辑器保存并关闭文件使用 sed 命令直接修改文件验证更改 如果你正在使用 nano 文本编辑器来修改 ~/.bashrc 文件,以下是保存并关闭文件的具体步骤: 使用 nano 编辑器保存并关闭文件 打开 ~/.bashrc 文件 在终端中运行以下命令&#xf…...

计算机组成原理——CPU与存储器连接例题

计算机组成原理——CPU与存储器连接例题 设CPU共有16根地址线和8根数据线,并用(MREQ) ̅作为访存控制信号(低电平有效),(WR) ̅作为读/写命令信号(高电平读,低电平写)。现有下列存储芯片&#…...

SQL 外键(Foreign Key)详细讲解

1. 什么是外键?​​ ​​定义​​:外键是数据库表中的一列(或一组列),用于​​建立两个表之间的关联关系​​。外键的值必须匹配另一个表的主键(Primary Key)或唯一约束(Unique Con…...

B3647 【模板】Floyd

题目链接&#xff1a;点击进入 题目 思路 代码 #include <bits/stdc.h> #define inf 0x3f3f3f3f using namespace std; const int maxn 1e6 10;int n,m,g[110][5000];int main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin>>n>>m;memse…...

配置镜像端口和观察接口

top&#xff1a; 在G0/0/2上抓包通过其他端口ping pc4 可以看到 Wireshark 抓包没有任何反应&#xff0c;做个镜像端口并配置&#xff08;观察接口和镜像接口&#xff09; observe-port interface g0/0/2 #命令配置观察端口mirror to observe-port both …...

爬虫解决debbugger之替换文件

鼠鼠上次做一个网站的时候&#xff0c;遇到的debbugger问题&#xff0c;是通过打断点然后编辑断点解决的&#xff0c;现在鼠鼠又学会了一个新的技能 首先需要大家下载一个reres的插件&#xff0c;这里最好用谷歌浏览器 先请大家看看案例国家水质自动综合监管平台 这里我们只…...

erlang的安装-linux

1&#xff1a;解压 tar -zxvf 安装包 2&#xff1a;进入解压的目录执行&#xff1a; ./configure --prefix/usr/local/erlang --with-ssl --enable-threads --enable-smp-support --enable-kernel-poll --enable-hipe --without-javac 3&#xff1a;编译安装&#xff1a; m…...

Android Coil 3默认P3色域图加载/显示不出来

Android Coil 3默认P3色域图加载/显示不出来 解决&#xff0c;需要在Androidmanifest.xml使用Coil 3的activity配置属性&#xff1a; <activityandroid:colorMode"wideColorGamut"...</activity>...

【LaTeX】安装

Register - Overleaf, 在线LaTeX编辑器 注册Overleaf 安装 Latex2022 安装教程&#xff08;附安装资源&#xff09;_tex2022安装教程-CSDN博客 注&#xff1a;先安装 texlive&#xff0c;再安装TexStudio \documentclass{article} % 这里是导言区 \begin{document}Hello, wor…...

【2025年认证杯数学中国数学建模网络挑战赛】A题 解题建模过程与模型代码(基于matlab)

目录 【2025年认证杯数学建模挑战赛】A题解题建模过程与模型代码&#xff08;基于matlab&#xff09;A题 小行星轨迹预测解题思路第一问模型与求解第二问模型与求解 【2025年认证杯数学建模挑战赛】A题 解题建模过程与模型代码&#xff08;基于matlab&#xff09; A题 小行星轨…...

【KWDB 创作者计划】KWDB 数据库全维度解析手册

——从原理到实践&#xff0c;构建下一代数据基础设施 ​第一章&#xff1a;KWDB 设计哲学与技术全景 1.1 为什么需要 KWDB&#xff1f; 在数据爆炸与业务场景碎片化的今天&#xff0c;传统数据库面临三大挑战&#xff1a;​扩展性瓶颈​&#xff08;单机性能天花板&#xff…...

低代码开发能否取代后端?深度剖析与展望-优雅草卓伊凡

低代码开发能否取代后端&#xff1f;深度剖析与展望-优雅草卓伊凡 在科技迅猛发展的当下&#xff0c;软件开发领域新思潮与新技术不断涌现&#xff0c;引发行业内外热烈探讨。近日&#xff0c;笔者收到这样一个颇具争议的问题&#xff1a;“低代码开发能取代后端吗&#xff1f…...

LeetCode hot 100—最长回文子串

题目 给你一个字符串 s&#xff0c;找到 s 中最长的 回文 子串。 示例 示例 1&#xff1a; 输入&#xff1a;s "babad" 输出&#xff1a;"bab" 解释&#xff1a;"aba" 同样是符合题意的答案。示例 2&#xff1a; 输入&#xff1a;s "cb…...

蓝桥杯知识总结

文章目录 1.常用的数学方法2.大小写转换3.数组和集合排序数组排序集合排序 4.控制小数位数5.栈6.队列7.字符串相关方法8.十进制转n进制模板字符转为十进制某进制转化为十进制 9.前缀和10.差分11.离散化12.双指针13.二分14.枚举模板组合型枚举模板排列型枚举模板 15.搜索算法BFS…...

leetcode:2839. 判断通过操作能否让字符串相等 I(python3解法)

难度&#xff1a;简单 给你两个字符串 s1 和 s2 &#xff0c;两个字符串的长度都为 4 &#xff0c;且只包含 小写 英文字母。 你可以对两个字符串中的 任意一个 执行以下操作 任意 次&#xff1a; 选择两个下标 i 和 j 且满足 j - i 2 &#xff0c;然后 交换 这个字符串中两个…...

Python Lambda表达式详解

Python Lambda表达式详解 1. Lambda是什么&#xff1f; Lambda是Python中用于创建匿名函数&#xff08;没有名字的函数&#xff09;的关键字&#xff0c;核心特点是简洁。它适用于需要临时定义简单函数的场景&#xff0c;或直接作为参数传递给高阶函数&#xff08;如map()、f…...

Matlab 平衡车的建模与控制

1、内容简介 Matlab 189-平衡车的建模与控制 可以交流、咨询、答疑 2、内容说明 略 平衡车的建模与控制 选择一款平衡车&#xff08;如&#xff1a;小米九号平衡车等&#xff09;&#xff0c;并估计平衡车的关键参数。完成以下工作&#xff1a; 1. 建立平衡车模型&#xf…...

KWDB创作者计划—KWDB关系库与时序库混搭

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验 Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯…...