【SRC-Python】在数字与字母 / 中文与英文之间插入空格的自动化解决方案

文章目录

  • Part.I Introduction
  • Part.II 使用方法
    • Chap.I 直接处理字符串
    • Chap.II 处理文件
  • Part.III Source Code
  • Reference

Part.I Introduction

在编辑文本的过程中,尤其是在 COPY 的过程中,经常会遇到如下问题:

  • 源文本数字与英文字母之间没有空格
  • 源文本中文与英文之间没有空格
  • 源文本中有很多空行

如果没有空格的话,看起来很紧凑,不美观。作为一个强迫症患者,每次我都要一个一个地把空格敲上去。有一天,我实在受不了这枯燥的工作了,我想能不能让计算机自动来完成这项简单且枯燥的工作呢?通过一些摸索,我找到了一种完美的解决方案,本文将对其进行简单的介绍。

在这里插入图片描述

Part.II 使用方法

首先需要安装两个 Python 的三方库:正则表达式处理库 re、美化中文排版工具“盘古” pangu

pip install re
pip install -U pangu

Chap.I 直接处理字符串

所用到的函数为

import re
import pangudef add_space_between_content(original_text):processed_text = pangu.spacing(original_text)pattern = r'([a-zA-Z]+)(\d+)'   # Letters before numbersdef add_space(match):return match.group(1) + ' ' + match.group(2)processed_text = re.sub(pattern, add_space, processed_text)pattern = r'(\d+)([a-zA-Z]+)'   # Numbers followed by letterprocessed_text = re.sub(pattern, add_space, processed_text)pattern = r"\n\s*\n"            # null string 空行processed_text = re.sub(pattern, "\n", processed_text)return processed_text

调用示例

original_text = f"""Datawhale是一个专注于Data Science与AI领域的开源组织,汇集了众多领域院校和知名企业的优秀学习者,\
聚合了一群有开源精神和探索精神的团队成员。
双语字幕视频:吴恩达x OpenAI的Prompt Engineering课程专业翻译版
测试1.2数字test1.3ce1.4测试"""
print(original_text)
print("-" * 60)
result2 = add_space_between_content(original_text)
print(result2)

输出结果

Datawhale是一个专注于Data Science与AI领域的开源组织,汇集了众多领域院校和知名企业的优秀学
习者,聚合了一群有开源精神和探索精神的团队成员。
双语字幕视频:吴恩达x OpenAI的Prompt Engineering课程专业翻译版
测试1.2数字test1.3ce1.4测试
----------------------------------------------------------------------------------------------------
Datawhale 是一个专注于 Data Science 与 AI 领域的开源组织,汇集了众多领域院校和知名企业的 
优秀学习者,聚合了一群有开源精神和探索精神的团队成员。
双语字幕视频:吴恩达 x OpenAI 的 Prompt Engineering 课程专业翻译版
测试 1.2 数字 test 1.3 ce 1.4 测试

Chap.II 处理文件

所用到的函数(上面的 add_space_between_content 加下面的)

def add_space_between_content_file(fin,fout):f = open(fin, encoding= 'utf-8', errors = 'ignore')original_text = f.read()f.close()modified_string = add_space_between_content(original_text)f1 = open(fout, 'w', encoding= 'utf-8', errors = 'ignore')f1.write(modified_string)f1.close()

调用示例

f1=r'A:\OHanlon\Desktop\a.txt'
f2=r'A:\OHanlon\Desktop\b.txt'
add_space_between_content_file(f1,f2)

测试所用源文件


本测试名为“普通话水平测试”(PUTONGHUA SHUIPING CESHI,缩写为PSC)()读单音节字词 普通话水平测试单音共有100个音节(不包括轻声、儿化音节),限时3.5分钟,共10分。1.目的:测查应试人声母、韵母、声调读音标准程度。2.要求:(1100个音节中,70%选自《普通话水平测试用普通话词语表》“表一”,30%选自“表二”。(2100个音节中,每个声母出现次数一般不少于3次,每个韵母出现次数一般不少于2次,4个声调出现次数大致均衡。(3)音节的排列要避免同一测试要素连续出现。3.评分:(1)语音错误,每个音节扣0.1分;(2)语音缺陷,每个音节扣0.05分;(3)超时1分钟以内,扣0.5分,超时1分钟以上(含1分钟),扣1分。

输出文件

本测试名为 “普通话水平测试”(PUTONGHUA SHUIPING CESHI,缩写为 PSC)() 读单音节字词 普通话水平测试单音共有 100 个音节(不包括轻声、儿化音节),限时 3.5 分钟,共 10 分。
1. 目的:
测查应试人声母、韵母、声调读音标准程度。
2. 要求:
(1100 个音节中,70% 选自《普通话水平测试用普通话词语表》“表一”,30% 选自 “表二”。
(2100 个音节中,每个声母出现次数一般不少于 3 次,每个韵母出现次数一般不少于 2 次,4 个声调出现次数大致均衡。
(3)音节的排列要避免同一测试要素连续出现。
3. 评分:
(1)语音错误,每个音节扣 0.1 分;
(2)语音缺陷,每个音节扣 0.05 分;
(3)超时 1 分钟以内,扣 0.5 分,超时 1 分钟以上(含 1 分钟),扣 1 分。

Part.III Source Code

整个源码如下:

import re
import pangudef add_space_between_content(original_text):processed_text = pangu.spacing(original_text)pattern = r'([a-zA-Z]+)(\d+)'   # Letters before numbersdef add_space(match):return match.group(1) + ' ' + match.group(2)processed_text = re.sub(pattern, add_space, processed_text)pattern = r'(\d+)([a-zA-Z]+)'   # Numbers followed by letterprocessed_text = re.sub(pattern, add_space, processed_text)pattern = r"\n\s*\n"            # null string 空行processed_text = re.sub(pattern, "\n", processed_text)return processed_textdef add_space_between_content_file(fin,fout):f = open(fin, encoding= 'utf-8', errors = 'ignore')original_text = f.read()f.close()modified_string = add_space_between_content(original_text)f1 = open(fout, 'w', encoding= 'utf-8', errors = 'ignore')f1.write(modified_string)f1.close()original_text = f"""Datawhale是一个专注于Data Science与AI领域的开源组织,汇集了众多领域院校和知名企业的优秀学习者,\
聚合了一群有开源精神和探索精神的团队成员。
双语字幕视频:吴恩达x OpenAI的Prompt Engineering课程专业翻译版
测试1.2数字test1.3ce1.4测试"""
print(original_text)
print("-" * 60)
result2 = add_space_between_content(original_text)
print(result2)f1=r'A:\OHanlon\Desktop\a.txt'
f2=r'A:\OHanlon\Desktop\b.txt'
add_space_between_content_file(f1,f2)

Reference

  • 一个小而实用的 Python 包 pangu,实现在中文和半宽字符(字母、数字和符号)之间自动插入空格
  • 使用Python在字符串中的数字和字母之间添加空格

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/6512.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

循环神经网络完整实现(Pytorch 13)

一 循环神经网络的从零开始实现 从头开始基于循环神经网络实现字符级语言模型。 %matplotlib inline import math import torch from torch import nn from torch.nn import functional as F from d2l import torch as d2lbatch_size, num_steps 32, 35 train_iter, vocab …

【AI】ONNX

长期更新,建议收藏关注! 友情链接 Netron 开放神经网络交换(Open Neural Network Exchange)简称ONNX,是微软和Facebook提出用来表示深度学习模型的开放格式。所谓开放就是ONNX定义了一组和环境,平台均无关的标准格式…

ASP.NET IIS Express一定vs停止调试,就退出了,如何不退出

》》》 在项目右击属性,找到Web,把启用”编辑并继续“ 复选框 去掉

asp.net结课作业中遇到的问题解决2

目录 1、如何实现评论交流的界面 2、如果想要将文字添加到数据库中,而不是乱码,该怎么修改 3、如果想要添加的数据已经存在于数据库,就不允许添加了,该如何实现 4、想要实现某个模块下有好几个小的功能该如何实现 5、想要实现…

Altium Designer入门基础操作

软件下载环境搭建:pan.baidu.com/s/1HshgKTmkkBpbIRa-9Wq9cQ 密码:ckck 工程建立: 创建 库绘制 为什么管脚要100mil 元素10mil 原理图库得正确性报告 原理图页设置大小,标准自定义,格点为100mil 使用库画原理图&a…

08 IRF技术 华三交换机实现

IRF 详细介绍 我知道 AI IRF 技术是指集成路由功能(Integrated Routing and Bridging)技术,是惠普(Hewlett Packard)公司开发的一种基于硬件的虚拟化技术。IRF 技术可以将多台物理设备组合成一个逻辑设备,实现设备的高可用性和灵活性。 IRF 技术主要有以下特点: 1. …

MySQL-集群1

一、为什么要用mysql集群?: mysql单体架构在企业中很少用,原因:①会形成单点故障,没有高可用的效果;②mysql本身是一个I/O能力比较差,并发能力比较差的应用服务,在较高规模的网络I/…

【计算机网络】循环冗余校验:Cyclic Redundancy Check

1. 任务目标 利用循环冗余校验(CRC)检测错误。 循环冗余校验(英语:Cyclic redundancy check,通称 CRC)是一种根据网上数据包或计算机文件等数据产生简短固定位数校验码的一种散列函数,主要用来…

谈谈Tcpserver开启多线程并发处理遇到的问题!

最近在学习最基础的socket网络编程,在Tcpserver开启多线程并发处理时遇到了一些问题! 说明 在linux以及Windows的共享文件夹进行编写的,所以代码中有的部分使用 #ifdef WIN64 ... #else ... #endif 进入正题!!&…

OSPF优化

OSPF的优化主要目的是为了减少LSA的更新量 路由汇总-----可以减少骨干区域的LSA数量 特殊区域-----可以减少非骨干区域的LSA数量 OSPF路由汇总 域间路由汇总 域间路由汇总在ABR设备上进行操作 [GS-R2-ospf-1-area-0.0.0.1]abr-summary 192.168.0.0 255.255.224.0 [GS-R3-o…

NEO 学习之session7

文章目录 选项 A:它涉及学习标记数据。 选项 B:它需要预定义的输出标签进行训练。 选项 C:它涉及在未标记的数据中寻找模式和关系。 选项 D:它专注于根据输入-输出对进行预测。 答案:选项 C 描述了无监督学习的本质&am…

服务器被攻击,为什么后台任务管理器无法打开?

在服务器遭受DDoS攻击后,当后台任务管理器由于系统资源耗尽无法打开时,管理员需要依赖间接手段来进行攻击类型的判断和解决措施的实施。由于涉及真实代码可能涉及到敏感操作,这里将以概念性伪代码和示例指令的方式来说明。 判断攻击类型 步…

mac查看Linux服务器的性能

mac上安装 linux系统 如果有 linux服务器账号密码,那么上一部可忽略; 比如:直接连接阿里云或腾讯云账号 1. 安装termius 链接: https://pan.baidu.com/s/1iYsZPZThPizxqtkLPT89-Q?pwdbw6j 提取码: bw6j 官网 Termius - SSH platform for …

c3 笔记8 css排版技巧

相关内容:边界、边框、位置(absolute、relative、static)、overflow、z-index、超链接、鼠标光标特效、…… margin:上边界值 右边界值 下边界值 左边界值 笔记来源: ©《HTML5CSS3JavaScript网页设计》陈婉凌编&#xff…

腾讯正式推出视频号小店,24年做电商,这次机会一定要抓住

大家好,我是电商笨笨熊 作为一个电商六年多的老玩家,从闲鱼到天猫,从天猫到抖店; 抖音小店这个项目,我做了四年多的时间,从寂寂无名到现在多人团队,皆因在抖店风口期抓住了这个项目。 而这次…

【深耕 Python】Quantum Computing 量子计算机(2)绘制电子运动平面波

写在前面 往期量子计算机博客: 【深耕 Python】Quantum Computing 量子计算机(1)图像绘制基础 一、所需公式 1、自由空间中电子的波函数公式: 2、常量代换: 3、物理常量: 二、Python代码: …

SpringBoot实现Config下自动关联.xml、.properties配置信息的实例教程

本篇文章主要讲解在SpringBoot实现Config下自动关联.xml、.properties配置信息的实例教程。 日期:2024年5月4日 作者:任聪聪 .properties文件调用方法 步骤一、打开我们的 .properties 创建一个demo参数如下图: 步骤二、创建一个config的包&…

【docker】maven 打包docker的插件学习

docker-maven-plugin GitHub地址:https://github.com/spotify/docker-maven-plugin 您可以使用此插件创建一个 Docker 映像,其中包含从 Maven 项目构建的工件。例如,Java 服务的构建过程可以输出运行该服务的 Docker 映像。 该插件是 Spot…

吴恩达深度学习笔记:深度学习的 实践层面 (Practical aspects of Deep Learning)1.11-1.12

目录 第二门课: 改善深层神经网络:超参数调试、正 则 化 以 及 优 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)第一周:深度学习的 实践层面 (Practical aspects of Deep Learning)1.11 神经网络的权重…

xftp破解版?No!xftp平替开源工具✔

文章目录 一、背景说明二、WindTerm介绍三、简单使用说明3.1 新建一个ssh连接窗口![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/bfbe5114916e4a7e94ca0f9ceb05ca37.png)3.2 输入主机ip和端口号3.3 点击Continue3.4 输入密码3.5 登入成功3.6 下载文件到本地3.7 上…