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

如何将评论列内容按句子拆分新增列并重复其余列对应数据

评论列拆分单句并展开行实现方案

需求说明

现有数据集包含3个字段:Review(评论内容)、Date(评论日期)、Review Rating(评论评分),需要将整段评论按句子拆分后存入新增的Sentence(单句)列,其余原有字段的内容会根据单条评论拆分出的句子数量对应重复,最终效果示例:

Date          Review_Rating           Review                      Sentence
12-02-2021        5          ram is good. ram is intelligent       ram is good.
12-02-2021        5          ram is good. ram is intelligent       ram is intelligent

Python Pandas 实现方案

这是最常用的处理方式,分两种实现可选:

1. 正则拆分(无需额外依赖)

用正则匹配句尾标点拆分,不会误删句尾符号,适配大部分通用场景:

import pandas as pd
import re

# 读取你的数据集,替换为你自己的文件读取逻辑
df = pd.read_csv("your_data.csv")

# 定义句子拆分函数
def split_into_sentences(text):
    # 按.?!后跟空白字符/结尾的位置拆分,保留句尾标点
    sentences = re.split(r'(?<=[.?!])\s+', text.strip())
    # 过滤空字符串
    return [s for s in sentences if s]

# 新增Sentence列存储拆分后的句子列表
df["Sentence"] = df["Review"].apply(split_into_sentences)

# 展开列表为行,其余字段自动对应重复
df = df.explode("Sentence", ignore_index=True)

2. NLTK 专业分词(适配复杂句式)

如果评论里存在Mr.、Dr.这类带缩写句号的内容,建议用NLTK的专业分句工具避免误拆分:

import pandas as pd
import nltk
# 首次运行需要下载分句模型
nltk.download('punkt')

df = pd.read_csv("your_data.csv")
df["Sentence"] = df["Review"].apply(nltk.sent_tokenize)
df = df.explode("Sentence", ignore_index=True)

MySQL 8.0+ 实现方案

如果需要直接在数据库中处理,可以用递归CTE实现:

WITH RECURSIVE split_sentences AS (
    SELECT 
        Date,
        Review_Rating,
        Review,
        1 AS idx,
        -- 提取第一个句子
        TRIM(SUBSTRING_INDEX(REPLACE(Review, '. ', '|'), '|', 1)) AS Sentence,
        -- 剩余未拆分的内容
        TRIM(SUBSTRING(REPLACE(Review, '. ', '|'), LENGTH(SUBSTRING_INDEX(REPLACE(Review, '. ', '|'), 1)) + 2)) AS remaining
    FROM your_table
    UNION ALL
    SELECT 
        Date,
        Review_Rating,
        Review,
        idx + 1,
        TRIM(SUBSTRING_INDEX(remaining, '|', 1)),
        TRIM(SUBSTRING(remaining, LENGTH(SUBSTRING_INDEX(remaining, '|', 1)) + 2))
    FROM split_sentences
    WHERE remaining != ''
)
SELECT Date, Review_Rating, Review, Sentence 
FROM split_sentences
ORDER BY Date, Review, idx;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 06:39:02