方法优势权衡最适合
固定大小简单,块可预测忽略结构,破坏含义原始或非结构化文本
基于句子保留完整的思想块大小不一致RAG,问答系统
基于段落与语义单元对齐长度差异大文档、手册、教学内容
滑动窗口保持完整上下文冗余,计算量大重排序,高召回检索
递归灵活,处理混乱输入启发式,有时易碎抓取网页,混合来源
语义高质量,语义感知较慢,资源密集型法律、研究、关键问答

按句子分块实现:

# ! pip install nltk
from nltk.tokenize import sent_tokenize
def sentence_chunk(text, max_words=150):
        sentences = sent_tokenize(text)
        chunks, buffer, length = [], [], 0

        for sent in sentences:
            count = len(sent.split())
            if length + count > max_words:
                chunks.append(" ".join(buffer))
                buffer, length = [], 0
            buffer.append(sent)
            length += count

        if buffer:
            chunks.append(" ".join(buffer))
        return chunks


标签: none

添加新评论

icon_mrgreen.gificon_neutral.gificon_twisted.gificon_arrow.gificon_eek.gificon_smile.gificon_confused.gificon_cool.gificon_evil.gificon_biggrin.gificon_idea.gificon_redface.gificon_razz.gificon_rolleyes.gificon_wink.gificon_cry.gificon_surprised.gificon_lol.gificon_mad.gificon_sad.gificon_exclaim.gificon_question.gif