使用LLM进行实体识别+格式化输出

控制 LLM 的输出格式和解析其输出结果 控制LLM的输出格式和解析其输出结果是自然语言处理领域的重要问题,涉及多种技术和工具。通过合理的输入控制、输出后处理以及解析方法,可以对LLM的输出进行有效地控制和解析,从而满足不同应用场景的需求。未来,随着自然语言处理技术的不断发展,相信对LLM输出控制和解析的研究也将得到进一步的深化和完善。本文将介绍如何控制LLM的输出格式和解析其输出结果,以及相关的技术和工具。这包括向LLM提供特定的输入格式,比如加入特殊标记、指定特定的任务等,以引导LLM生成特定格式的输出。等,它们在各自的领域取得了显著的成就。 阅读详情

使用LLM进行实体识别+格式化输出

本篇文章在原理的基础上,使用langchain总结了一套流程(在文章的末尾给出),同时构建了两个函数来优化在少量提示词的情况下,LLM输出不稳定的问题

一个解析函数,一个校验函数

实体识别+格式化输出

import os
from dotenv import load_dotenv, find_dotenv
load_dotenv() *# read local .env file*
API_KEY = os.getenv('openai_api_key') 
# 定义实体字段*

from langchain.chat_models import ChatOpenAI
from dotenv import load_dotenv
from langchain.prompts import PromptTemplate
from langchain.output_parsers import ResponseSchema, StructuredOutputParser

load_dotenv()
llm = ChatOpenAI(model_name='gpt-3.5-turbo-1106',temperature=0,openai_api_key=API_KEY) 
# 定义实体字段
response_schemas = [
        ResponseSchema(type='list', name ='disease', description='疾病名称实体'),
        ResponseSchema(type='list', name = 'symptom', description='疾病症状实体'),
        ResponseSchema(type='list', name = 'drug', description = '药物名称实体'),
]

output_parser = StructuredOutputParser.from_response_schemas(response_schemas)
format_instructions = output_parser.get_format_instructions()
# print(response_schemas)
print(format_instructions,type(format_instructions))

在这里插入图片描述

# 定义提示词模版
template = '''
\1. 从以下用户输入的句子中,提取实体内容
\2. 仅根据用户输入抽取,不要推理
\3. 注意json格式,在json中不要出现//
\4. 如果字段为空,也需要保留字段名称。

{format_instructions}

用户输入:{input}

输出:
'''

prompt = PromptTemplate(
     template = template,
     partial_variables = {'format_instructions': format_instructions},
     input_variables = ['input']
)


*# prompt = prompt.format(input='感冒是一种什么病?')*

prompt 

PromptTemplate(input_variables=[‘input’], partial_variables={‘format_instructions’: 'The output should be a ma

# 调用大模型并解析结果
from langchain.chains import LLMChain

chain = LLMChain(
    llm = llm,
    prompt = prompt
)



llm_output = chain.run(input='感冒是一种什么病?会导致咳嗽吗?')

*# llm_output = chain.run(input = '感冒吃什么药好得快?可以吃阿莫西林吗?')*
print(llm_output)
*# output = output_parser.parse(llm_output)*
*# print(output, type(output))* 


在这里插入图片描述

 import re
import json
def parse_json(input_str: str):
    
   # 定义正则表达式模式,用于匹配以```json开头,以```结尾的字符串*
   pattern = r'```json(.*?)```'
    
   # 使用正则表达式搜索匹配的内容*
   match = re.search(pattern, input_str, re.DOTALL)

​   if match:
​       # 提取匹配到的JSON字符串*
​       json_str = json.loads(match.group(1))
​        
​       return json_str
​   else:
​       returnNone 
  1. 些时候可能由于提示词模版的原因,在一些文本中可能不包含某种key,大模型的输出很可能包含不完全的定义key—_value,
  2. 因此解析结果可能与原json格式相比缺少一些项这里我们写一个比较函数,自动对齐定义格式,缺少的项,填充null
original_key = ['disease','symptom','drug']

def check_and_addition(original_key:dict,af_json:dict)->dict:
    if len(af_json)!= len(orignal_key):
        keys = original_key
        for t in keys:
            if t notin af_json:
                af_json[t] = "null"
    result = af_json
    return result
check_and_addition(original_key,parse_json(llm_output)) 

{‘disease’: [‘感冒’], ‘symptom’: [‘咳嗽’], ‘drug’: ‘null’}
总结一下ouputParse的流程:
在这里插入图片描述
​

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

LangChain输出格式化实践:提升测试工程师LLM开发效率的完整指南 实现方式LLM输出原始文本 → 正则表达式提取关键字段 → 手动构建JSON对象 → Schema校验技术特点灵活性高:支持任意非结构化文本的解析兼容性强:适配历史遗留系统的输出格式开发复杂度高:需维护复杂的解析逻辑典型代码结构import repattern = r"方法:(.*?)\n描述:(.*?)\n步骤:(.*?)\n预期结果:(.*)"return {")], 阅读详情

相关推荐

突破NER性能瓶颈:BERT与LLM协同的混合架构实践

性能卓越:在多个测试集上,F1分数比单一模型提升5-15%成本可控:相比纯LLM方案,成本降低60%以上易于落地:架构清晰,便于调试和优化这种"专才+通才"的组合思路可以扩展到其他NLP任务中,如关系抽取、事件提取、文本分类等。更精细的流水线优化多模型投票机制在线学习与自适应调整不追求单一模型的万能,而是通过精心设计的组合,让每个组件发挥其独特优势,最终实现系统性能的最优化。欢迎在评论区分享你在NER任务中的实践经验,或者对这个混合架构的改进建议!

Ven%的博客 1022

在少量提示词下LLM格式化输出的对齐实践

本篇文章主要是以一个例子进行实践,使用langchain总结了一套流程(在文章的末尾给出),同时构建了两个函数来优化在少量提示词的情况下,LLM输出不稳定的问题 Part 2:输出对齐 些时候可能由于提示词模版的原因,在一些文本中可能不包含某种key,大模型的输出很可能包含不完全的定义key—_value, 因此解析结果可能与原json格式相比缺少一些项这里我们写一个比较函数,自动对齐定义格式,缺

weixin_65416260的博客 846

LangChain集成LLM Guard:构建AI应用链纵深安全防御体系

在构建基于大语言模型(LLM)的AI应用时,安全防护是保障应用稳定与数据合规的核心环节。其原理在于通过预置的扫描与过滤机制,对输入输出数据进行多维度风险检测,从而防止恶意指令、敏感信息泄露等安全隐患。这一技术价值在于为AI应用提供了可编程、可配置的安全基线,是实现AI应用规模化、商业化落地的关键支撑。在应用场景上,尤其适用于金融客服、内容审核、企业知识库等对数据安全与合规性要求高的领域。本文以LangChain框架为例,深入探讨如何通过集成LLM Guard库,在RAG问答链、Agent工具调用等关键节点嵌

weixin_33711647的博客 389

llm实体识别提示词

output:【实体名称】:小米科技。文本:{{#sys.query#}}output:【实体名称】:百度。【实体名称】:<实体名称>文本:小米科技是谁投资的。文本:百度是哪家公司。

qq_42504731的博客 506

LLM在命名实体识别中的优化策略

LLAMA在命名实体识别中的优化策略 关键词:语言模型(LLM),命名实体识别(NER),优化策略,数据增强,模型调整,多标签实体识别,案例研究,未来趋势 摘要:本文将深入探讨LLM在命名实体识别(NER)中的应用与优化策略。首先,我

AI天才研究院 1003

大模型格式化输出的几种方法

在开发一些和LLM相关的应用的时候,如何从大模型的反馈中拿到结构化的输出数据是非常重要的,那么本文就记录几种常用的方法。

Criss@陈磊 1154

微调大型语言模型进行命名实体识别

自回归模型(像大多数llm一样)被训练来正确预测“下一个令牌”。给定我们刚刚创建的训练数据样本和微调训练设置,模型将学习预测文本所有部分的下一个标记,即任务描述、实体列表、样本示例、会话历史中硬编码的模型思维链等。这将使模型除了学习预测正确的结果外,还学习任务描述中的令牌分布。这使得我们的学习任务有点繁琐。我们对LLM进行微调的主要目标是为给定的输入字符串生成结构良好且正确的检测。因此,我们应该只计算输出字符串中令牌的损失。所以在我们的示例训练数据中,模型应该只计算以下令牌的损失Hi!

deephub 3791

自动化LLM测试数据生成与增强

引言 1.1 问题的背景与重要性 1.1.1 语言模型(LLM)的普及与挑战 随着人工智能技术的飞速发展,语言模型(Language Model,简称LLM)已经成为了自然语言处理(Natural Language Processing,

AI天才研究院 1922

NLP(五十七)LangChain的结构化输出

本文主要介绍了LangChain的结构化输出,这在我们需要对模型输出结果进行结构化解析时较为有用,同时,我们也能接住结构化输出完成一些常见的NLP的任务,如NER等。

山阴少年 5827

AI LLM如何重塑新闻产业:自动生成文章

1. 背景介绍 1.1 新闻行业的挑战 在当今快节奏的数字时代,新闻行业面临着前所未有的挑战。读者期望获得及时、准确和相关的信息,但同时新闻机构也面临着严峻的财务压力和人力资源限制。传统的新闻生产模式已经难以满足这种需求,因此迫切需要一种新的解决方案来重塑新闻产业。

AI天才研究院 1261

智能交互新体验:LLM操作系统中的自然语言界面

智能交互新体验:LLM操作系统中的自然语言界面 1.背景介绍 1.1 人机交互的演进历程 人机交互一直是计算机科学领域的核心研究课题之一。早期的人机交互方式主要依赖于命令行界面(CLI)和图形用户界面(GUI)。CLI需要用户

AI天才研究院 1200

3步搞定医疗命名实体识别!Phi-4模型微调实战指南

在医疗文本分析中,准确识别疾病、药物、手术等实体信息是临床决策支持系统的核心能力。传统方法需人工编写规则或训练专用模型,而借助Datawhale/self-llm项目,普通开发者也能在3小时内完成专业级命名实体识别(NER)模型的训练与部署。本文基于Phi-4模型,通过LoRA微调技术结合SwanLab可视化工具,手把手教你打造医疗领域实体识别系统,解决电子病历分析、医学文献挖掘等实际场景痛点。 ...

gitblog_00224的博客 1048

EndNote全文检索实战:如何快速配置学校图书馆资源并精准查找文献

本文详细介绍了EndNote全文检索功能的实战配置方法,核心在于通过正确设置OpenURL链接解析器,无缝对接学校图书馆资源,实现一键精准获取文献全文。文章提供了从理解机制、四步配置法到进阶技巧的完整指南,帮助科研人员高效管理海量PDF,构建个人知识体系,大幅提升文献调研与写作效率。

weixin_29228781的博客 279

ChatGPT多模态命名实体识别

我们在两个公共 MNER 数据集上进行了实验:Twitter-2015和 Twitter-2017。这两个数据集都是从Twitter平台上收集的,包含了文本和图像的配对信息,主要用于研究在社交媒体短文本场景下的多模态命名实体识别和情感分析等任务。推文中的文本部分被手动标注了命名实体,并使用BIO2(Beginning- Inside-Outside)标注方案对命名实体进行分类。实体类别包括人物(Person)、组织(Organization)、地点(Location)等。

是微风,是晚霞,是无可替代 1178

STM32H7多通道ADC数据采集实战:CubeMX配置ADC1/2/3+DMA/BDMA+Cache避坑全记录

本文详细解析了STM32H7多通道ADC数据采集的实战配置,涵盖CubeMX中ADC1/2/3与DMA/BDMA的协同设置及Cache一致性处理。通过硬件架构分析、DMA优化技巧和Cache避坑指南,帮助开发者实现高精度数据采集,适用于电机控制、环境监测等嵌入式系统。

weixin_28744613的博客 292

扫地机器人自动回充技术大揭秘:红外、蓝牙、雷达哪种更适合你家?

本文深入解析扫地机器人自动回充技术的三种主流方案:红外、蓝牙和雷达/LiDAR,详细比较它们的原理、优缺点及适用场景。红外技术成本低但易受干扰,蓝牙穿透性好但精度随距离降低,雷达精度最高适合复杂环境。根据户型大小和家居环境,提供选购建议,帮助用户选择最适合自己家庭的自动回充方案。

weixin_29070721的博客 503

大模型论文 | 利用LLM从科学文本中抽取结构化信息

AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享!

star_nwe的博客 2387

DETR系列文章之–Co-DETR

Co-DETR,并行训练多个辅助头,以一对多的标签分配方式进行监督从辅助头中提取正样本坐标,为解码器中的正样本的训练效率进行额外的定制化正样本query.一对一标签分配:每个GT框分配给一个特定的query(DETR),较少的正query导致低效训练,从编码器生成的潜在表示和解码器中的注意力学习分析这一问题。一对多标签分配:每个GT框分配给检测器输出的多个proposal/anchor,依赖NMS或者anchor生成(ATSS,RetinaNet,FCOS,PAA)。

weixin_43731232的博客 2110

论文导读 | 利用LLM从科学文本中抽取结构化信息

对于机器学习模型来说,从科学文本中抽取结构化知识仍然是一项具有挑战性的任务。本文提出了一种简单的联合命名实体识别和关系抽取(NERRE)的方法,并展示了如何对预训练的大型语言模型(GPT-3, Llama-2)进行微调,以抽取复杂科学知识。论文测试了材料化学中的三个代表性任务:固态杂质掺杂,金属有机框架(MOFs),以及一般成分/相/形态/应用信息抽取。记录是从单个句子或整个段落中抽取的,输出可以以简单的英语句子或更结构化的格式(如JSON对象列表)返回。

m0_59164520的博客 2230

立创开源PEX88048 8盘位M.2扩展卡硬件设计与PCIE4.0交换机应用解析

本文详细解析了基于Broadcom PEX88048 PCIe 4.0交换芯片的8盘位M.2扩展卡硬件设计。文章深入探讨了核心芯片选型、关键供电与安全设计、引脚配置、固件刷写方法,并重点剖析了PCIe 4.0时钟架构与高速PCB布局的核心思想,旨在帮助开发者理解如何设计高性能、高可靠性的存储扩展方案,并有效控制成本。

weixin_28949937的博客 618

YOLO骨干网络改进-第1篇:深度解析YOLOv8的C2f模块原理与实现

首先,需要将自定义的C2f模块注册到Ultralytics的模块字典中。# 注册自定义模块"""自定义的C2f模块。"""# 自定义YOLOv8s配置文件:yolov8s_custom.yamlscales:# Backbonebackbone:# Headhead:# 加载自定义模型# 训练模型imgsz=640,batch=16,device=0,workers=8,设计理念:C2f模块是C3模块的演进,通过增加梯度分支来丰富梯度流,提升特征表示能力。结构原理。

2201_76125393的博客 110

小白必看!用Qwen2.5-0.5B实现中文命名实体识别全流程

本文介绍了基于星图GPU平台自动化部署Qwen2.5-0.5B-Instruct镜像的完整流程,结合中文命名实体识别(NER)任务,实现从数据预处理、模型微调到推理测试的端到端开发。该方案利用星图GPU的强大算力,高效完成对CLUENER2020数据集的训练,适用于信息抽取、知识图谱等AI应用开发场景。

weixin_33173126的博客 791

85-Halcon-- gen_cam_par_area_scan_division 函数功能(生成面阵相机镜头参数)

Halcon的gen_cam_par_area_scan_division算子用于生成面阵相机的镜头参数,支持除法畸变模型。该算子输出包含9个参数的元组,包括焦距(Focus)、畸变系数(Kappa)、像素尺寸(Sx,Sy)、主点坐标(Cx,Cy)和图像尺寸。文中详细解析了各参数含义、数学原理(包括畸变矫正公式和坐标转换),并提供了三个工业应用案例:高精度芯片尺寸测量、机器人焊接引导和大视野汽车表面检测。最后给出了完整的相机标定流程,涵盖参数生成、畸变校正和标定配置步骤,适用于工业视觉系统的精确标定需求。

weixin_45590420的博客 915

Qwen3-8B命名实体识别(NER)效果评测

本文评测了Qwen3-8B在命名实体识别(NER)任务中的表现,展示其无需微调、中英文通吃、支持长文本的优势。通过实际案例验证其在人名、地名、组织名和时间等实体抽取上的高精度表现,并分析影响效果的关键参数与适用场景。

weixin_36311421的博客 509

风-车-桥耦合随机振动预测框架:从物理模型到高效代理

本文提出了一种风-车-桥耦合随机振动预测的混合框架,结合物理模型与代理模型实现高效计算。该框架的核心数学本质是时变参数-随机激励-高维动力系统,主要解决三大计算难点:自由度规模悬殊、时变特性和随机性传播。系统采用分层解耦-代理加速的技术路线,底层基于物理模型建立车辆运动方程和桥梁运动方程,上层通过深度学习代理实现随机激励到响应的端到端映射。文中详细介绍了随机激励建模(包括脉动风速和路面不平度)、子系统建模、耦合求解方法,并提供了可运行的Python代码实现。该框架可显著提高风-车-桥系统随机振动分析的效率,

huanghm88的专栏 102

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

【LLM大模型】GraphRAG手调Prompt提取自定义实体

GraphRAG在使用Prompt-Tune根据领域自动生成的实体总是不理想怎么办?这个时候就需要手动调整啦,当然我们还需要借助ChatGPT类的助手帮助我们生成一些Example。

2301_81940605的博客 3613

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

上一篇: 用 LLM 构建企业专属的用户助手
下一篇: 实现知识库问答机器人 langchain + LLM + Embeddings (比Langchain-Chatchat更智能)
AI程序猿人
博客等级 码龄3年 6517粉丝 561原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值