首頁 科技週邊 人工智慧 使用Langchain Text Splitters -Analytics Vidhya拆分數據的7種方法

使用Langchain Text Splitters -Analytics Vidhya拆分數據的7種方法

Apr 19, 2025 am 10:11 AM

Langchain文本拆分器:優化LLM輸入以提高效率和準確性

我們上一篇文章介紹了Langchain的文檔加載程序。但是,LLM具有上下文窗口大小的限制(以代幣測量)。超過此限制會截斷數據,損害準確性並增加成本。解決方案?僅將相關數據發送到LLM,需要數據分割。輸入Langchain的文本拆分器。

使用Langchain Text Splitters -Analytics Vidhya拆分數據的7種方法

關鍵概念:

  1. 文本拆分器的關鍵作用:理解為什麼有效的文本拆分對於優化LLM應用程序,平衡上下文窗口大小和成本至關重要。
  2. 多樣化的文本拆分技術:探索各種方法,包括角色計數,代幣計數,遞歸分裂以及針對HTML,代碼和JSON結構量身定制的技術。
  3. Langchain文本分離器實施:學習實用應用,包括安裝,文本分割的代碼示例以及處理多種數據格式。
  4. 語義分裂以增強相關性:發現句子的嵌入和余弦相似性如何創造語義上連貫的塊,從而最大程度地提高相關性。

目錄:

  • 什麼是文本拆分器?
  • 數據拆分方法
  • 基於角色計數的分裂
  • 遞歸分裂
  • 基於令牌計數的分裂
  • 處理HTML
  • 特定於代碼的分裂
  • JSON數據處理
  • 語義塊
  • 常見問題

什麼是文本拆分器?

文本拆分器將大文本分為較小的,可管理的塊,以改善LLM查詢相關性。它們直接在原始文本或蘭鏈文檔對像上工作。多種方法適合不同的內容類型和用例。

數據拆分方法

Langchain文本拆分器對於有效的大型文檔處理至關重要。它們可以提高性能,上下文理解,實現並行處理並促進更好的數據管理。讓我們檢查幾種方法:

先決條件:使用pip install langchain_text_splitters安裝軟件包

基於角色計數的分裂

此方法使用指定的分離器根據字符計數分配文本。

來自langchain_community.document_loader
來自langchain_text_splitter

#加載數據(用PDF路徑替換)
loader = unscontralypdfloader('how-to-formulate-successful-business-strategy.pdf',mode ='single')
data = loader.load()

text_splitter = prinateTextSplitter(saparator =“ \ n”,chunk_size = 500,chunk_overlap = 0,is_separator_regex = false)
texts = text_splitter.split_documents(數據)
Len(文本)#輸出:塊數量
登入後複製

此示例將文本分為500個字符的塊,使用newline字符作為分離器。

遞歸分裂

這是順序使用多個分離器,直到塊低於chunk_size 。對於句子級分裂有用。

來自langchain_text_splitter

recursive_splitter = recursivecharactertextsplitter(saparators = [“ \ n \ n”,“ \ n”,r“(?>> 293)

#...(其餘代碼保持相似)
登入後複製

基於令牌計數的分裂

LLM使用令牌;通過令牌計數分裂更準確。此示例使用o200k_base編碼(檢查github鏈接中的型號/編碼映射)。

從langchain_text_splitters導入tokentextsplitter

text_splitter = tokentextsplitter(encoding_name ='o200k_base',chunk_size = 50,chunk_overlap = 0)
texts = text_splitter.split_documents(數據)
Len(文本)#輸出:塊數量
登入後複製

遞歸分裂也可以與令牌計數相結合。

對於純文本,通常優選使用字符或令牌計數進行遞歸分裂。

處理HTML

對於HTML等結構化數據,分裂應尊重結構。此示例基於HTML標頭拆分。

從langchain_text_splitters導入htmlheadertextsplitter

headers_to_split_on = [(“ h1”,“ header 1”),(“ h2”,“ header 2”),(“ h3”,“ header 3”)]
html_splitter = htmlheadertextsplitter(headers_to_split_on,return_each_element = true)
html_header_splits = html_splitter.split_text_from_url('https://diataxis.fr/')
len(html_header_splits)#輸出:塊數
登入後複製

HTMLSectionSplitter允許根據其他部分進行分割。

特定於代碼的分裂

編程語言具有獨特的結構。此示例使用語法意識分配用於Python代碼。

來自langchain_text_splitter

#...(Python代碼示例)...

python_splitter = recursivecharactertextsplitter.from_language(language = language.python,chunk_size = 100,chunk_overlap = 0)
python_docs = python_splitter.create_documents([Python_code])
登入後複製

JSON數據處理

嵌套的JSON對象可以在保留密鑰關係時分開。

來自langchain_text_splitters導入recursivejsonsplitter

#...(JSON數據示例)...

splitter = recursivejsonsplitter(max_chunk_size = 200,min_chunk_size = 20)
塊= splitter.split_text(json_data,convert_lists = true)
登入後複製

語義塊

該方法使用句子嵌入和余弦與語義相關的句子的相似性。

來自langchain_experiment.text_splitter導入semanticchunker
來自langchain_openai.embeddings進口openaiembeddings#需要OpenAi API鍵

#...(使用openaiembeddings和semanticchunker的代碼)...
登入後複製

結論

Langchain提供了各種文本分裂方法,每種方法都適用於不同的數據類型。選擇正確的方法可以優化LLM輸入,提高準確性並降低成本。

常見問題

(問答部分基本相同,並進行較小的措辭調整以清晰度和流動。)

以上是使用Langchain Text Splitters -Analytics Vidhya拆分數據的7種方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

最佳AI藝術生成器(免費付款)創意項目 最佳AI藝術生成器(免費付款)創意項目 Apr 02, 2025 pm 06:10 PM

本文回顧了AI最高的藝術生成器,討論了他們的功能,對創意項目的適用性和價值。它重點介紹了Midjourney是專業人士的最佳價值,並建議使用Dall-E 2進行高質量的可定製藝術。

開始使用Meta Llama 3.2 -Analytics Vidhya 開始使用Meta Llama 3.2 -Analytics Vidhya Apr 11, 2025 pm 12:04 PM

Meta的Llama 3.2:多模式和移動AI的飛躍 Meta最近公佈了Llama 3.2,這是AI的重大進步,具有強大的視覺功能和針對移動設備優化的輕量級文本模型。 以成功為基礎

最佳AI聊天機器人比較(Chatgpt,Gemini,Claude&更多) 最佳AI聊天機器人比較(Chatgpt,Gemini,Claude&更多) Apr 02, 2025 pm 06:09 PM

本文比較了諸如Chatgpt,Gemini和Claude之類的頂級AI聊天機器人,重點介紹了其獨特功能,自定義選項以及自然語言處理和可靠性的性能。

Chatgpt 4 o可用嗎? Chatgpt 4 o可用嗎? Mar 28, 2025 pm 05:29 PM

Chatgpt 4當前可用並廣泛使用,與諸如ChatGpt 3.5(例如ChatGpt 3.5)相比,在理解上下文和產生連貫的響應方面取得了重大改進。未來的發展可能包括更多個性化的間

頂級AI寫作助理來增強您的內容創建 頂級AI寫作助理來增強您的內容創建 Apr 02, 2025 pm 06:11 PM

文章討論了Grammarly,Jasper,Copy.ai,Writesonic和Rytr等AI最高的寫作助手,重點介紹了其獨特的內容創建功能。它認為Jasper在SEO優化方面表現出色,而AI工具有助於保持音調的組成

構建AI代理的前7個代理抹布系統 構建AI代理的前7個代理抹布系統 Mar 31, 2025 pm 04:25 PM

2024年見證了從簡單地使用LLM進行內容生成的轉變,轉變為了解其內部工作。 這種探索導致了AI代理的發現 - 自主系統處理任務和最少人工干預的決策。 Buildin

選擇最佳的AI語音生成器:評論的頂級選項 選擇最佳的AI語音生成器:評論的頂級選項 Apr 02, 2025 pm 06:12 PM

本文評論了Google Cloud,Amazon Polly,Microsoft Azure,IBM Watson和Discript等高級AI語音生成器,重點介紹其功能,語音質量和滿足不同需求的適用性。

向員工出售AI策略:Shopify首席執行官的宣言 向員工出售AI策略:Shopify首席執行官的宣言 Apr 10, 2025 am 11:19 AM

Shopify首席執行官TobiLütke最近的備忘錄大膽地宣布AI對每位員工的基本期望是公司內部的重大文化轉變。 這不是短暫的趨勢。這是整合到P中的新操作範式

See all articles