文本按照标点符号切分符号丢掉问题

问题:文本按照标点符号切分符号丢掉问题

项目场景:需要对一个文字段落按照标点符号切分成一个个句子,使用正则切分的过程中发现标点符号丢了,


问题描述

文本按照标点符号切分符号丢掉问题
原始代码:

    public static void main(String[] args) {
        String content = "这是一段内容。这是另一段内容!这是第三段内容?。";
        StringTokenizer str = new StringTokenizer(content, "。?!.?!");
        while (str.hasMoreElements()) {
            String element = StringUtils.trim((String) str.nextElement());
            if (StringUtils.isNotBlank(element)) {
                System.out.println(element);
            }
        }
    }

执行结果:
在这里插入图片描述

问题解决:

提示:先按照正则定位到标点符号,然后将内容进行切割

修正后代码:

    public static void main(String[] args) {
        String content = "这是一段内容。这是另一段内容!这是第三段内容?";
        String regex = "([。?!.?!])";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(content);
        List<String> list = Lists.newArrayList();
        int start = 0;
        int end = 0;
        while (matcher.find()) {
//        System.out.println("原文符号:" + matcher.group() + ",位置:" + matcher.start());
            end = matcher.start() + 1;
            String substring = content.substring(start, end);
            System.out.println(substring);
            list.add(substring);
            start = end;
        }
        // 该处用于处理尾部没有标点符号的情况,否则会丢失尾部数据
        if (end < content.length()){
           elements.add(content.substring(end));
        }
    }

执行结果:
在这里插入图片描述

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
随着人工智能和自然语言处理技术的不断发展,语音识别技术已经变得越来越普遍,并在日常生活和工作中起着越来越重要的作用。虽然现在的语音识别技术已经可以基本准确地将人们的语音转化为文本,但是其中常常缺少标点符号,导致人们在阅读时感到困惑。 为了解决这一问题,我们可以利用 PaddlePaddle 框架中的自然语言处理模型,给语音识别文本进行标点符号的添加。 首先,我们需要将语音识别文本转化为适合自然语言处理的文本格式,包括去除多余的重复词语、补全缩写、纠正拼写等。然后,我们可以使用 PaddlePaddle 框架中的分词器对文本进行分词,将文本划分为基本的语义单元。接着,我们可以利用 PaddlePaddle 中的标点生成器模型,对每个语义单元进行判断,是否应该加上标点符号。最后,将加上标点符号文本输出为最终的识别结果。 需要注意的是,标点符号的添加要尽可能地符合语法规则和语境,以保证输出的文本准确、易读、易懂。此外,为了提高模型的准确性,我们还可以利用大量的语音识别文本数据进行训练和调优,以优化模型的性能和稳定性。 总之,通过利用 PaddlePaddle 框架中的自然语言处理模型,给语音识别文本加上标点符号可以有效提高文本的可读性和可理解性,对于提高语音识别技术的应用价值和广泛应用具有重要的意义。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值