大語言模型信息抽取系統解析

這段代碼實現了一個基于大語言模型的信息抽取系統,能夠從金融和新聞類文本中提取結構化信息。下面我將詳細解析整個代碼的結構和功能。

1. 代碼整體結構

代碼主要分為以下幾個部分:

  1. 模式定義:定義不同領域(金融、新聞)需要抽取的實體類型

  2. 示例數據:提供每個領域的示例文本和標準答案

  3. 初始化函數:構建模型對話的上下文提示

  4. 推理函數:實際執行信息抽取

  5. 后處理函數:清洗模型輸出

  6. 主程序:執行整個流程

2. 核心組件詳解

2.1 模式定義 (schema)

schema = {"金融": ["日期", "股票名稱", "開盤價", "收盤價", "成交量"],"新聞": ["日期", "新聞標題", "新聞內容"],
}
  • 定義了兩種文本類型(金融、新聞)及其需要抽取的實體字段

  • 金融類關注股票市場數據,新聞類關注事件信息

2.2 提示模板 (IE_PATTERN)

IE_PATTERN = "{}\n\n提取上述句子中{}的實體,并按照JSON格式輸出..."
  • 定義了信息抽取的提示詞模板

  • 包含占位符{},運行時會被實際句子和實體類型替換

2.3 示例數據 (ie_examples)

ie_examples = {"金融": [{"content": "...", "answers": {...}}],"新聞": [{"content": "...", "answers": {...}}]
}
  • 為每個領域提供one-shot示例

  • 包含原始文本(content)和標準抽取結果(answers)

2.4 初始化函數 (init_prompts)

def init_prompts():ie_pre_history = [{"role": "system", "content": "你是一個信息抽取助手。"}]# 構建示例對話歷史return {"ie_pre_history": ie_pre_history}
  1. 設置系統角色為"信息抽取助手"

  2. 遍歷所有示例,構建模型學習用的對話歷史

  3. 返回包含完整對話歷史的字典

2.5 推理函數 (inference)

def inference(custom_settings: dict, sentences: List[Dict[str, str]]):for item in sentences:# 構造提示詞messages = [*custom_settings["ie_pre_history"], {"role": "user", "content": ...}]# 調用模型response = ollama.chat(model="qwen2.5:7b", messages=messages)# 后處理ie_res = clean_response(response["message"]["content"])
  1. 接收待處理句子和初始化設置

  2. 為每個句子構造完整的提示詞

  3. 調用本地Qwen模型進行推理

  4. 對輸出進行清洗和格式化

2.6 后處理函數 (clean_response)

def clean_response(response: str):if "```json" in response:res = re.findall(r"```json(.*?)```", response, re.DOTALL)return json.loads(response)
  • 處理模型返回的可能包含Markdown代碼塊的響應

  • 提取純JSON部分并轉換為Python字典

3. 工作流程示例

假設輸入句子為金融類文本:

"2023-02-15,股票佰篤[BD]美股開盤價10美元..."

處理過程:

  1. 根據"金融"類型確定需要抽取的字段(日期、股票名稱等)

  2. 構造提示詞:

    2023-02-15,股票佰篤[BD]美股開盤價10美元...提取上述句子中"金融"(日期, 股票名稱, 開盤價...)的實體...
  3. 模型返回JSON格式的抽取結果

  4. 后處理后得到結構化數據:

    {"日期": ["2023-02-15"],"股票名稱": ["佰篤[BD]美股"],"開盤價": ["10美元"],...
    }

4. 技術亮點

  1. 上下文學習(In-context Learning):通過示例讓模型學習抽取模式

  2. 結構化提示工程:精心設計的提示模板提高抽取準確性

  3. 多領域支持:可擴展的schema設計支持不同領域

  4. 魯棒的后處理:處理模型輸出的各種格式情況

5. 擴展性建議

  1. 可以增加自動文本分類功能,而非手動指定"cls"

  2. 添加更多領域和實體類型

  3. 實現批量處理優化性能

  4. 增加錯誤處理和日志記錄

這個系統展示了如何有效利用大語言模型進行專業領域的信息抽取,核心思想是通過精心設計的提示和示例引導模型完成特定任務。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/91282.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/91282.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/91282.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Next實習項目總結串聯講解(一)

下面是一些 Next.js 前端面試中常見且具深度的問題,按照邏輯模塊整理,同時提供示范回答建議,便于你條理清晰地展示理解與實踐經驗。 ? 面試講述結構建議 先講 Next.js 是什么,它為什么比 React 更高級。(支持 SSR/SSG/ISR,提升S…

React開發依賴分析

1. React小案例: 在界面顯示一個文本:Hello World點擊按鈕后,文本改為為:Hello React 2. React開發依賴 2.1. 開發React必須依賴三個庫: 2.1.1. react: 包含react所必須的核心代碼2.1.2. react-dom: react渲染在不同平…

工具(一)Cursor

目錄 一、介紹 二、如何打開文件 1、從idea跳轉文件 2、單獨打開項目 三、常見使用 1、Chat 窗口 Ask 對話模式 1.1、使用技巧 1.2 發送和使用 codebase 發送區別 1.3、問題快速修復 2、Chat 窗口 Agent 對話模式 2.1、agent模式功能 2.2、Chat 窗口回滾&撤銷 2.3…

Prompt編寫規范指引

1、📖 引言 隨著人工智能生成內容(AIGC)技術的快速發展,越來越多的開發者開始利用AIGC工具來輔助代碼編寫。然而,如何編寫有效的提示詞(Prompt)以引導AIGC生成高質量的代碼,成為了許…

自我學習----繪制Mark點

在PCB的Layout過程中我們需在光板上放置Mark點以方便生產時的光學定位(三點定位);我個人Mark點繪制步驟如下: layer層:1.放置直徑1mm的焊盤(無網絡連接) 2.放置一個圓直徑2mm,圓心與…

2025年財稅行業拓客破局:小藍本財稅版AI拓客系統助力高效拓客

2025年,在"金稅四期"全面實施的背景下,中國財稅服務市場迎來爆發式增長,根據最新的市場研究報告,2025年中國財稅服務行業產值將達2725.7億元。然而,行業高速發展的背后,80%的財稅公司卻陷入獲客成…

雙向鏈表,對其實現頭插入,尾插入以及遍歷倒序輸出

1.創建一個節點,并將鏈表的首節點返回創建一個獨立節點,沒有和原鏈表產生任何關系#include "head.h"typedef struct Node { int num; struct Node*pNext; struct Node*pPer; }NODE;后續代碼:NODE*createNode(int value) {NODE*new …

2025年自動化工程與計算機網絡國際會議(ICAECN 2025)

2025年自動化工程與計算機網絡國際會議(ICAECN 2025) 2025 International Conference on Automation Engineering and Computer Networks一、大會信息會議簡稱:ICAECN 2025 大會地點:中國柳州 審稿通知:投稿后2-3日內通…

12.Origin2021如何繪制誤差帶圖?

12.Origin2021如何繪制誤差帶圖?選中Y3列→點擊統計→選擇描述統計→選擇行統計→選擇打開對話框輸入范圍選擇B列到D列點擊輸出量→勾選均值和標準差Control選擇下面三列點擊繪圖→選擇基礎2D圖→選擇誤差帶圖雙擊圖像→選擇符號和顏色點擊第二個Sheet1→點擊誤差棒→連接選擇…

如何使用API接口獲取淘寶店鋪訂單信息

要獲取淘寶店鋪的訂單信息,您需要通過淘寶開放平臺(Taobao Open Platform, TOP)提供的API接口來實現。以下是詳細步驟:1. 注冊淘寶開放平臺賬號訪問淘寶開放平臺注冊開發者賬號并完成實名認證創建應用獲取App Key和App Secret2. 申請API權限在"我的…

【Kiro Code 從入門到精通】重要的功能

一、Kiro 是什么? Kiro 是一款智能型集成開發環境(IDE),借助規格說明(specs)、向導(steer)、鉤子(hooks)幫助你高效完成工作。 二、Specs 規格說明 規范&…

直播間里的酒旅新故事:內容正在重構消費鏈路

文/李樂編輯/子夜今年暑期,旅游的熱浪席卷全國。機場、火車站人潮涌動,電子屏上滾動的航班信息與檢票口前的長隊交織成繁忙的出行圖景,酒店預訂量也在這股熱潮中節節攀升。連線 Insight關注到,今年的暑期游有了一些新變化&#xf…

50天50個小項目 (Vue3 + Tailwindcss V4) ? | VerifyAccountUi(驗證碼組件)

&#x1f4c5; 我們繼續 50 個小項目挑戰&#xff01;—— VerifyAccountUi組件 倉庫地址&#xff1a;https://github.com/SunACong/50-vue-projects 項目預覽地址&#xff1a;https://50-vue-projects.vercel.app/ 使用 Vue 3 的 <script setup> 語法結合 Tailwind CS…

AbstractAuthenticationToken 認證流程中??認證令牌的核心抽象類詳解

AbstractAuthenticationToken 認證流程中??認證令牌的核心抽象類詳解在 Spring Security 中&#xff0c;AbstractAuthenticationToken 是 Authentication 接口的??抽象實現類??&#xff0c;其核心作用是為具體的認證令牌&#xff08;如用戶名密碼令牌、JWT 令牌等&#x…

小程序視頻播放,與父視圖一致等樣式設置

初始設置的代碼&#xff1a;WXML的代碼<view class"card-wrapper"> <!-- 視頻播放容器&#xff08;默認隱藏&#xff09; --> <view class"video-container" wx:if"{{isPlaying}}"> <video id"cardVideo" class&…

Kafka——關于主題管理

引言在Kafka的世界中&#xff0c;主題&#xff08;Topic&#xff09;是消息的基本組織單位&#xff0c;類似于文件系統中的"文件夾"——所有消息都按照主題分類存儲&#xff0c;生產者向主題寫入消息&#xff0c;消費者從主題讀取消息。主題的管理是Kafka運維的基礎&…

【VLLM】VLLM使用

一 、安裝 二、啟動入口 VLLM 提供了多種入口方式啟動模型&#xff0c;以適應不同的使用場景&#xff08;如命令行交互、API 服務、自定義集成等&#xff09;。除了最常用的 openai.api_server&#xff08;OpenAI 兼容 API 服務&#xff09;&#xff0c;還有以下主要入口&#…

為Github Copilot創建自定義指令/說明/注意事項

GitHub Copilot 是一個強大的 AI 編程助手&#xff0c;通過合理配置自定義指令&#xff0c;可以讓它更好地理解和遵循項目特定的編碼規范&#xff0c;省的每次提問時輸入重復提示語。 目錄 方法一&#xff1a;項目級別指令文件&#xff08;推薦&#xff09;方法二&#xff1a…

信創厚知聯盟會長兼創始人蒞臨綠算技術

2025年7月29日&#xff0c;信創厚知聯盟會長兼創始人王杲一行考察廣東省綠算技術有限公司&#xff0c;重點調研其在智算中心存儲與AI算力協同領域的創新成果。此次交流標志著雙方在信創產業生態合作上邁出重要一步&#xff0c;為國產高端高性能全閃存存儲與智算基礎設施的融合發…

RAG面試內容整理-Prompt Engineering 在 RAG 中的作用

Prompt Engineering(提示工程)指為生成模型精心設計輸入提示,以引導模型產生所需的輸出。在RAG系統中,prompt設計對充分利用檢索到的知識至關重要。因為生成器(通常是LLM)接收到的不僅有用戶問題,還有檢索的文檔內容,我們需要通過提示明確告訴模型如何使用這些信息。例…