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

如何用Python从大文本生成每行含固定词数的DataFrame?

解决大文本文件拆分固定词数行并转为DataFrame的方案

直接给你一套可运行的代码方案,完全贴合你的分类器场景需求:

  • 第一步:读取并预处理文本
    先把大文本文件内容读出来,合并成完整文本后拆分单词,还能顺便清理多余标点(可选,看你分类器的具体需求)。

  • 第二步:按固定词数分组
    把所有单词切成每10/20个一组,每组拼成一段文本,保证每行词数相对均匀。

  • 第三步:转为DataFrame
    把分组后的文本列表直接转成pandas的DataFrame,方便后续分类器调用。

完整代码示例

import pandas as pd
import re

# 配置参数
TEXT_FILE_PATH = "你的大文本文件路径.txt"
WORD_PER_ROW = 20  # 可以改成10

# 1. 读取并预处理文本
with open(TEXT_FILE_PATH, 'r', encoding='utf-8') as f:
    # 读取所有内容,替换换行符为空格,避免换行影响拆分
    full_text = f.read().replace('\n', ' ')
    # 可选:用正则去掉标点符号,只保留单词和空格
    clean_text = re.sub(r'[^\w\s]', '', full_text)
    # 拆分所有单词(自动忽略多余空格)
    all_words = clean_text.split()

# 2. 按固定词数分组
text_segments = []
for i in range(0, len(all_words), WORD_PER_ROW):
    # 取从i开始的WORD_PER_ROW个单词,拼成字符串
    segment = ' '.join(all_words[i:i+WORD_PER_ROW])
    text_segments.append(segment)

# 3. 转为DataFrame
df = pd.DataFrame({'text_segment': text_segments})

# 查看结果
print(df.head())

补充说明

  • 如果不需要清理标点,直接去掉clean_text那一行,用full_text.split()就行
  • 最后一组如果不足指定词数,代码会自动保留;要是你想丢弃短段,加个判断if len(segment.split()) >= 某个阈值再加入列表即可
  • 若文件编码报错,把encoding='utf-8'改成encoding='gbk'或其他对应编码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 16:42:06