使用魔搭社区的模型对对话文本进行语义分割

本文介绍了如何对文本进行前处理,包括填充不足长度和替换特殊符号,然后使用DAMO的BERT文档分割模型进行语义分割,最终获取有意义的段落。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、对文本进行前处理:

        ①当文本长度小于512时,填充其长度。经过各种填充的尝试,发现将原对话再续几遍对分割的效果最好:

        while len(inputs) < 512:
            inputs += inputs

        ②将 “小明:” 替换成  “小明,”        【因为太多的“:”会导致语义分割出错】

2、导入模型,开始分割:

from modelscope.outputs import OutputKeys
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks

p = pipeline(
    task=Tasks.document_segmentation,
    model='damo/nlp_bert_document-segmentation_chinese-base'
    )

result = p(documents=inputs)

result是一个字典,其中的'text'就是分割后的结果,分割后的段落以‘\t’开始,以'\n‘结束,所以进行后处理如下:

tmp = re.split(r'\n\t', re.sub(r'^\t', '', result['text']))
text = list(filter(None, tmp))

此时text是列表,每一个元素都是一个语义相近的一段,分割结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值