赞
踩
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是列表,每一个元素都是一个语义相近的一段,分割结束
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。