You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将pandas文本dataframe每行拆分为不超过512词的短文本行

实现方案

核心逻辑是先对单条文本按词拆分,切块后再拼接为字符串,最后用pandas原生方法展开为多行,全程符合Python风格,无多余依赖:

步骤1:定义文本切块函数

可自定义最大词数、块之间的重叠词数(适配NLP场景避免上下文断裂,不需要重叠设为0即可):

def split_text_by_word_count(text: str, max_words: int = 512, overlap: int = 0) -> list:
    # 按空格分词,中文场景替换为 jieba.lcut(text) 即可
    words = text.split()
    chunks = []
    # 计算滑动步长
    step = max_words - overlap
    for i in range(0, len(words), step):
        # 截取对应长度的词拼接为字符串
        chunk = ' '.join(words[i:i+max_words])
        chunks.append(chunk)
    return chunks

步骤2:处理DataFrame

用apply对每行文本执行切块,再用explode把列表展开为独立行:

import pandas as pd

# 假设你的原始DataFrame名为df
df["text"] = df["text"].apply(split_text_by_word_count)
# 展开列表为多行,重置索引
df = df.explode("text").reset_index(drop=True)

适配场景说明

  • 中文处理:将分词逻辑替换为jieba分词即可,拼接时把' '.join改为''.join
  • 字符数限制:如果需要按字符数而非词数拆分,直接去掉分词步骤,按索引截取原始字符串即可
  • 文本预处理:如果原始文本存在大量换行、连续空格,可在分词前添加text = ' '.join(text.split())规整空白符

内容的提问来源于stack exchange,提问作者alyferryhalo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 09:09:04