Python中4个超燃的文本设计三方库,必备!

文摘   科技   2024-01-04 18:56   广东  


ISEE小语


不存在没有代价的轻轻松松。你不愿意受勤学苦练的累,就得吃低三下四的苦。
——摘自网友




    本次实例是四个处理文本的三方库,好用又实际,简单又方便。建议记着备用!


环境:

Pycharm

Python 3.9.16




pypinyin


    pypinyin是一个Python三方库,用于将中文汉字转换为拼音。支持多种拼音风格,包括有声调的拼音、去声调、带声调的数字标记等

我们来举实例了解一下,如下:

安装:

pip install pypinyin==0.50.0

导入:

from pypinyin import pinyin, Style


a、拼音是带声调的数字标记

    使用pypinyin库的Style.TONE2样式,数字1、2、3、4分别代表声调的一声、二声、三声、四声。

text = "随风潜入夜,润物细无声"
pinyin_with_tones_num = ' '.join([''.join(item) for item in pinyin(text, style=Style.TONE2)])print(f"拼音(带声调的数字标记): {pinyin_with_tones_num}")

(左右滑动查看完整代码)

结果:


b、拼音上面带声调

    将声调放在每个拼音的字母上方,需要使用pypinyin库的Style.TONE样式,如下:

text = "随风潜入夜,润物细无声"
pinyin_with_tones = ' '.join([''.join(item) for item in pinyin(text, style=Style.TONE)])print(f"拼音(拼音上面带声调): {pinyin_with_tones}")

(左右滑动查看完整代码)

结果:


c、汉字+拼音组合显示

text = "随风潜入夜,润物细无声"
pinyin_list = pinyin(text, style=Style.TONE)text_pinyin_tones = ' '.join(f"{char}({tone})" for char, tone in zip(text, [''.join(item) for item in pinyin_list])).replace("(,)", "")print(f"汉字+拼音: {text_pinyin_tones}")

(左右滑动查看完整代码)

结果:





opencc


    opencc-python-reimplemented是OpenCC(Open Chinese Convert) 的 Python 实现,这是一个转换简体中文与繁体中文的工具。它是 OpenCC 的纯 Python 实现,这意味着你不需要安装 OpenCC 原生程序就可以在 Python 环境中使用它进行文本转换。

安装:

pip install opencc-python-reimplemented==0.1.7

导入:

from opencc import OpenCC

a、简体转换成繁体字

    转换成繁体字使用OpenCC('s2t')

# 简体text = "随风潜入夜,润物细无声"

# 转换成繁体字def convert_to_traditional(chinese_text): cc = OpenCC('s2t') return cc.convert(chinese_text)

# 执行函数并输出结果traditional_result = convert_to_traditional(text)print(f"繁体字: {traditional_result}")

(左右滑动查看完整代码)

结果:


b、繁体转换成简体字

    转换成简体字使用OpenCC('t2s')

# 繁体text_ = "隨風潛入夜,潤物細無聲"

# 转换成简体字def convert_to_simplified(chinese_text): cc = OpenCC('t2s') return cc.convert(chinese_text)

# 执行函数并输出结果simplified_result = convert_to_simplified(text_)print(f"简体字: {simplified_result}")

(左右滑动查看完整代码)

结果:


c、其他转换模式

    除了 s2t 和 t2s 外,还有其他的参数:

s2t - 简体中文到繁体中文t2s - 繁体中文到简体中文s2tw - 简体中文到台湾正体tw2s - 台湾正体到简体中文s2hk - 简体中文到香港繁体hk2s - 香港繁体到简体中文t2tw - 繁体中文到台湾正体t2hk - 繁体中文到香港繁体





cn2an


    cn2an 是一个用于将中文数字转换为阿拉伯数字(an,Arabic Numerals)及其逆转换的库。这个库提供了简单易用的API来执行中文数字与阿拉伯数字之间的转换。

安装:pip install cn2an==0.5.22

导入:

import cn2an

a、中文数字转换为阿拉伯数字

# 中文数字转换为阿拉伯数字text = "一百二十三点四"result_an = cn2an.cn2an(text)print(f"'{text}' 转换的结果是:{result_an}")

(左右滑动查看完整代码)

结果:


b、阿拉伯数字转换为中文数字

# 阿拉伯数字转换为中文数字nums = 123.4
result_cn = cn2an.an2cn(nums)print(f"'{nums}' 转换的结果是:{result_cn}")

(左右滑动查看完整代码)

结果:





zhon


    zhon 是一个Python三方库,专门为处理中文文本设计。它提供了一组用于中文文本处理的资源,如中文字符、标点、汉字等。zhon 库非常有用,尤其是在需要识别或处理中文特定元素时,例如在中文文本分词、清洗数据以及文本分析等任务中。

安装:pip install zhon==2.0.2

导入:

from zhon import hanzi


a、筛选出中文标点

    将一段文本中的所有中文标点筛选出来

text = "您好,是扶摇的鹰、是潜游的鱼;是白雪皑皑、是山川河流。还是什么?"
punctuation_pattern = '[{}]'.format(hanzi.punctuation)chinese_punctuation = re.findall(punctuation_pattern, text)
# 打印出所有的中文标点符号print("文本中的中文标点符号有:", chinese_punctuation)

(左右滑动查看完整代码)

结果:


b、将中文标点替换为英文标点

    将一段文本中的所有中文标点,对应的替换为英文标点。

首先,需要做一个中英文标点符号映射表:

# 中英文标点符号的映射表punctuation_mapping = {    ',': ',',    '。': '.',    ':': ':',    ';': ';',    '!': '!',    '?': '?',    '“': '"',    '”': '"',    '‘': "'",    '’': "'",    '(': '(',    ')': ')',    '【': '[',    '】': ']',    '—': '-',    '……': '...',    '、'','}

(左右滑动查看完整代码)

然后再添加一个替换函数来处理文本:

# 替换函数def replace_punctuation(match):    return punctuation_mapping.get(match.group(0), '')

# 使用正则表达式和替换函数来转换标点符号text_with_english_punctuation = re.sub(f'[{hanzi.punctuation}]', replace_punctuation, text)print(text_with_english_punctuation)

(左右滑动查看完整代码)

结果:


c、判断中文字符

判断指定的字、词或成语是否为中文字符

text = '白雪皑皑'
if re.match('^[{}]+$'.format(hanzi.characters), text): print('字符串 "{}" 仅包含中文字符'.format(text))else: print('字符串 "{}" 包含非中文字符'.format(text))

(左右滑动查看完整代码)

结果:


接下来再看一个对比一下,一目了然。

text = '白雪皑皑!'
if re.match('^[{}]+$'.format(hanzi.characters), text): print('字符串 "{}" 仅包含中文字符'.format(text))else: print('字符串 "{}" 包含非中文字符'.format(text))

(左右滑动查看完整代码)

结果:





总结


    最近实际项目中文本处理的涉及到的三方库,取4个相当好用的记录分享,不常见,却很好用。实现方式不是唯一的,找到适合的才是最佳的。

以上记录如有兴趣,请自行查阅官方资料并深入研究,功能都很强大。



寄语:世间三美,明月,清风,眼前……



看到这儿的朋友帮点个“”和“在看”,谢谢支持~!

     

文章就分享到这儿,喜欢就点个吧!

推荐阅读  点击标题可跳转

ISEE小栈
没有花里胡哨,简单才是王道。
 最新文章