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

如何拆分长评论文本生成多行数据集适配预训练NLP模型

长评论拆分实现方案

针对长评论触发模型输入长度限制的问题,可通过以下Python代码实现按约450字符拆分文本,同时保留原评论ID生成多行数据:

实现步骤

1. 导入依赖库

import pandas as pd
import re

2. 定义文本拆分函数

这个函数会尽量在句子边界(句号、感叹号、问号后)拆分文本,避免生硬截断句子,同时控制每段长度接近450字符:

def split_text(text, target_len=450):
    # 用句子分隔符分割文本,保留分隔符
    sentences = re.split('([.!?])', text)
    # 重组完整句子(分隔符+前面的内容)
    full_sentences = [''.join(i) for i in zip(sentences[::2], sentences[1::2])]
    # 处理最后一段可能没有分隔符的情况
    if len(sentences) % 2 != 0:
        full_sentences.append(sentences[-1])
    
    chunks = []
    current_chunk = ''
    for sentence in full_sentences:
        # 如果当前块加新句子超过目标长度,就把当前块加入列表
        if len(current_chunk) + len(sentence) > target_len and current_chunk:
            chunks.append(current_chunk.strip())
            current_chunk = sentence
        else:
            current_chunk += ' ' + sentence
    # 加入最后一块
    if current_chunk:
        chunks.append(current_chunk.strip())
    return chunks

3. 处理数据集

假设你的数据集存储在CSV文件中,或者已经是pandas.DataFrame对象:

# 读取原数据集(示例,根据实际情况调整)
df = pd.read_csv('your_dataset.csv')

# 应用拆分函数,生成包含ID和拆分后文本的列表
expanded_data = []
for _, row in df.iterrows():
    comment_id = row['评论ID']
    text_chunks = split_text(row['文本'])
    for chunk in text_chunks:
        expanded_data.append({'评论ID': comment_id, '文本': chunk})

# 转换为新的DataFrame
expanded_df = pd.DataFrame(expanded_data)

# 保存结果(可选)
expanded_df.to_csv('expanded_dataset.csv', index=False)

说明

  • 函数优先按句子拆分,保证每段文本语义完整,长度接近450字符;
  • 拆分后的每一行都会保留原评论ID,完全匹配你需要的数据集结构;
  • 若不需要按句子拆分,可直接按字符数硬拆分(但会破坏语义,不推荐),修改函数为按固定长度切割即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 17:27:13