【通过句法分析(Syntactic Analysis)或者句法解析(Parsing),确保文本分割的句子在语义上是完整的】

本文探讨了传统文本分割方法的局限,尤其是忽视语义完整性的问题。通过句法分析(Syntactic Analysis)或句法解析(Parsing)可以改善这种情况。介绍了解决方案,包括Python中使用spaCy、NLTK等库进行句法分析,并提供了通过后处理确保语义完整的示例代码。虽然句法分析有助于理解句子结构,但可能无法完全解决语义问题,需要结合其他NLU技术。
摘要由CSDN通过智能技术生成

1.传统的文本分割方法短板

传统的文本分割方法在处理长句子时可能会产生意外的结果,因为它在分割句子时并没有考虑语义,只是基于标点符号和字符数量进行的。

2.传统的文本分割方法举例

from langchain.text_splitter import CharacterTextSplitter
import re
from typing import List
from configs.model_config import SENTENCE_SIZE


class ChineseTextSplitter(CharacterTextSplitter):
    def __init__(self, pdf: bool = False, sentence_size: int = SENTENCE_SIZE, **kwargs):
        super().__init__(**kwargs)
        self.pdf = pdf
        self.sentence_size = sentence_size

    def split_text1(self, text: str) -> List[str]:
        if self.pdf:
            text = re.sub(r"\n{3,}", "\n", text)
            text = re.sub('\s', ' ', text)
            text = text.replace("\n\n", "")
        sent_sep_pattern = re.compile('([﹒﹔﹖﹗.。!?]["’”」』]{0,2}|(?=["‘“「『]{1,2}|$))')  # del :;
        sent_list = []
        for ele in sent_sep_pattern.split(text):
            if sent_sep_pattern.match(ele) and sent_list:
                sent_list[-1] += ele
            elif ele:
                sent_list.append(ele)
        return sent_list

    def split_text(self, text
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值