云开yun体育登录入口Kaiyun官网首页

开云体育登录入口官网首页ICD 编码是数据不休发展的另一个例子-云开yun体育登录入口Kaiyun官网首页

发布日期:2025-08-22 06:59    点击次数:140

开云体育登录入口官网首页ICD 编码是数据不休发展的另一个例子-云开yun体育登录入口Kaiyun官网首页

RAG正在进化,但确切的打破不在参数,而在工夫维度。怎么让AI代理协调“常识的工夫性”?如安在系统中镶嵌“时态感知”的机制?本文以居品视角切入,建议“动作-工夫-常识”三元协同模子,为AI居品司理提供下一代常识系统的预备念念路。

用于回应问题的 RAG 或代理架构依赖于跟着工夫的推移不休更新的动态常识库,举例财务推崇或文档,以便推理和谋略格式保捏逻辑和准确。

为了处理这么的常识库,其中鸿沟不休增长,幻觉的契机可能会加多,需要一个单独的逻辑工夫(工夫感知)代理管谈来经管 AI 居品中这个不休发展的常识库 。

百分位语义分块:将大型原始文档想法为具有蜿蜒文意旨的小文本块;原子事实:使用LLM读取每个块并索求原子事实、它们的工夫戳和所波及的实体;实体融会:通过自动查找和兼并重复实体(举例,“AMD”和“AdvancedMicroDevices”)来计帐数据;工夫无效:当新信息到达时,通过将过期的事实符号为“过期”来智能识别和处置矛盾;常识图谱构建:将最终的、干净的、带有工夫戳的事实拼装成一个通顺的图形结构,咱们的AI代理不错查询;优化的常识库:将最终的动态常识图谱存储在可扩张的云数据库中,创建可靠、最新的“大脑”,在此基础上构建最终的RAG或代理系统;

预处理和分析咱们的动态数据

公司依期共享其财务事迹的最新信息,举例股价走势、实施交流层变动等首要发展,以及前瞻性预期,举例季度收入是否瞻望同比增长 12% 等。

在医疗领域,ICD 编码是数据不休发展的另一个例子,从 ICD-9 到 ICD-10 的过渡使会诊代码从约 14,000 个加多到 68,000 个。

让咱们加载这个数据集并对其进行一些统计分析以允洽它。

# Import loader for Hugging Face datasets

from langchain_community.document_loaders import HuggingFaceDatasetLoader

# Dataset configuration

hf_dataset_name = “jlh-ibm/earnings_call” # HF dataset name

subset_name = “transcripts” # Dataset subset to load

# Create the loader (defaults to ‘train’ split)

loader = HuggingFaceDatasetLoader(

path=hf_dataset_name,

name=subset_name,

page_content_column=”transcript” # Column containing the main text

)

# This is the key step. The loader processes the dataset and returns a list of LangChain Document objects.

documents = loader.load

咱们专注于该数据集的获利单据集,其中包含联系不同公司的原始文本信息。这是数据集的基本结构,可当作任何 RAG 或 AI 代理架构的起首。

# Let’s inspect the result to see the difference

print(f”Loaded {len(documents)} documents.”)

#

#

## OUTPUT ####

Loaded 188 documents.

咱们的数据中共有 188 份获利单。这些获利单属于不同的公司,咱们需要计较咱们的数据集中代表了几许个独到的公司。

# Count how many documents each company has

company_counts = {}

# Loop over all loaded documents

for doc in documents:

company = doc.metadata.get(“company”) # Extract company from metadata

if company:

company_counts[company] = company_counts.get(company, 0) + 1

# Display the counts

print(“Total company counts:”)

for company, count in company_counts.items:

print(f”

– {company}: {count}”)

#

#

## OUTPUT ####

Total company counts:

– AMD: 19

– AAPL: 19

– INTC: 19

– MU: 17

– GOOGL: 19

– ASML: 19

– CSCO: 19

– NVDA: 19

– AMZN: 19

– MSFT: 19

险些系数公司的分派比例王人十分。检讨飞快获利单的元数据。

# Print metadata for two sample documents (index 0 and 33)

print(“Metadata for document[0]:”)

print(documents[0].metadata)

print(“Metadata for document[33]:”)

print(documents[33].metadata)

#

#

## OUTPUT ####

{‘company’: ‘AMD’, ‘date’: datetime.date(2016, 7, 21)}

{‘company’: ‘AMZN’, ‘date’: datetime.date(2019, 10, 24)}

公司字段仅指令获利单属于哪家公司, 日历字段暗示信息所基于的工夫范围。

# Print the first 200 characters of the first document’s content

first_doc = documents[0]

print(first_doc.page_content[:200])

#

#

## OUTPUT ####

Thomson Reuters StreetEvents Event Transcript

E D I T E D V E R S I O N

Q2 2016 Advanced Micro Devices Inc Earnings Call

JULY 21, 2016 / 9:00PM GMT

=====================================

通过打印文档的样本,咱们不错赢得高等详尽。举例,现时示例显现了 AMD 的季度推崇。

获利单可能很长,因为它们代表给定工夫范围内的信息并包含多数详备信息。咱们需要查验这 188 份获利单平均包含几许个单词。

# Calculate the average number of words per document

total_words = sum(len(doc.page_content.split) for doc in documents)

average_words = total_words / len(documents) if documents else 0

print(f”Average number of words in documents: {average_words:.2f}”)

#

#

## OUTPUT ####

Average number of words in documents: 8797.124

每个获利单 ~9K 字是相等大的,因为它降服包含多数信息。但这恰是咱们所需要的,创建一个结构致密的常识库 AI 代理波及处理多数信息,而不单是是几个小文档。

往往,财务数据基于不同的工夫范围,每个工夫范围代表联系该期间发生情况的不同信息。咱们不错使用纯 Python 代码而不是 LLM 从获利单中索求这些工夫范围,以自便本钱。

import re

from datetime import datetime

# Helper function to extract a quarter string (e.g., “Q1 2023”) from text

def find_quarter(text: str) -> str | None:

“””Return the first quarter-year match found in the text, or None if absent.”””

# Match pattern: ‘Q’ followed by 1 digit, a space, and a 4-digit year

match = re.findall(r”Qdsd{4}”, text)

return match[0] if match else None

# Test on the first document

quarter = find_quarter(documents[0].page_content)

print(f”Extracted Quarter for the first document: {quarter}”)

#

#

## OUTPUT ####

Extracted Quarter for the first document: Q2 2016

实施季过活期索求的更好纪律是通过法学硕士,因为他们不错更真切地协调数据。关联词,由于咱们的数据在文本方面一经结构致密,因此咱们暂时不错在莫得它们的情况下链接进行。

百分位语义分块

往往,咱们把柄飞快拆分或专门旨的句子界限(举例以句号驱散)对数据进行分块。关联词,这种纪律可能会导致丢失一些信息。

淌若咱们在句号处拆分,咱们就失去了净收入增长是由于运营用度下落的紧凑联系。

咱们将在这里使用基于百分位数的分块。让咱们先了解这种纪律,然后再实施它。

该文档使用正则抒发式拆分为句子,往往在.、?或!之后中断。每个句子王人使用镶嵌模子休养为高维向量。计较连气儿句子向量之间的语义距离,值越大暗示主题变化越大。收罗系数距离,并细目所选的百分位数(举例95个百分位数)以拿获极端大的越过。距离大于或就是此阈值的界限符号为块断点。这些界限之间的句子被分组为块,运用min_chunk_size以幸免过小的块,并在需要时buffer_size添加剧复。

from langchain_nebius import NebiusEmbeddings

# Set Nebius API key (⚠️ Avoid hardcoding secrets in production code)

os.environ[“NEBIUS_API_KEY”] = “YOUR_API_KEY_HERE”

#

1. Initialize Nebius embedding model

embeddings = NebiusEmbeddings(model=”Qwen/Qwen3-Embedding-8B”)

咱们正在使用 Qwen3–8B 通过 LangChain 中的 Nebius AI 生成镶嵌。虽然,LangChain 模块下还扶助好多其他镶嵌提供者。

from langchain_experimental.text_splitter import SemanticChunker

# Create a semantic chunker using percentile thresholding

langchain_semantic_chunker = SemanticChunker(

embeddings,

breakpoint_threshold_type=”percentile”, # Use percentile-based splitting

breakpoint_threshold_amount=95 # split at 95th percentile

)

咱们遴荐了第 95 个百分位值,这意味着淌若连气儿句子之间的距离越过该值,则将其视为断点。使用轮回,咱们不错通俗地在获利单上运行分块历程。

# Store the new, smaller chunk documents

chunked_documents_lc =

# Printing total number of docs (188) We already know that

print(f”Processing {len(documents)} documents using LangChain’s SemanticChunker…”)

# Chunk each transcript document

for doc in tqdm(documents, desc=”Chunking Transcripts with LangChain”):

# Extract quarter info and copy existing metadata

quarter = find_quarter(doc.page_content)

parent_metadata = doc.metadata.copy

parent_metadata[“quarter”] = quarter

# Perform semantic chunking (returns Document objects with metadata attached)

chunks = langchain_semantic_chunker.create_documents(

[doc.page_content],

metadatas=[parent_metadata]

)

# Collect all chunks

chunked_documents_lc.extend(chunks)

#

#

## OUTPUT ####

Processing 188 documents using LangChains SemanticChunker…

Chunking Transcripts with LangChain: 100%开云体育登录入口官网首页