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

在spaCy 3.6中能否结合统计与规则实现分句?

spaCy 3.6 分句方案(兼顾标点与换行符)

核心逻辑

先借助spaCy统计模型的自带分句能力处理标点分句,再基于换行符二次拆分,同时过滤空内容避免生成空句。

实现代码

import spacy

# 加载spaCy统计模型(以英文模型为例,其他语言模型同理)
nlp = spacy.load("en_core_web_sm")
# 仅启用分句相关组件,提升处理效率
nlp.select_pipes(enable=["senter"])

def split_sentences(raw_text):
    # 第一步:用spaCy统计组件识别标点分句
    doc = nlp(raw_text)
    spacy_split = [sent.text.strip() for sent in doc.sents]
    
    final_sentences = []
    # 第二步:对每个分句按换行符拆分,过滤空句
    for segment in spacy_split:
        line_splits = [line.strip() for line in segment.split('\n') if line.strip()]
        final_sentences.extend(line_splits)
    
    return final_sentences

# 示例文档测试
sample_doc = """Hello there. This is the first sentence.
This is the second sentence.

This is the third sentence.
This is the fourth sentence."""

result = split_sentences(sample_doc)
print(len(result))  # 输出:4
print(result)

关键细节

  • 依赖spaCy的senter统计组件,无需手动编写标点分句规则,适配多数场景。
  • 拆分换行符时通过strip()和空值判断,彻底过滤空白行、纯空格内容,避免生成空句。
  • 保留原文本的语义逻辑:先按标点拆分完整语义块,再按换行拆分同一语义块内的多行内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 18:19:51