中文文本中可能出现的标点符号来源比较复杂,通过匹配等手段对他们处理的时候需要格外小心,防止遗漏。以下为在下处理中文标点的时候使用的两种方法:

中文标点集合

比较常见标点有这些:

!?。"#$%&'()*+,-/:;<=>@[\]^_`{|}~⦅⦆「」、、〃》「」『』【】〔〕〖〗〘〙〚〛〜〝〞〟〰〾〿–—‘'‛“”„‟…‧﹏.

调用zhon包的zhon.hanzi.punctuation函数就行了得到这些中文标点。

如果想用英文的标点,则可调用string包的string.punctuation函数可得到:

!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~

因此,比如需要将所有标点符号去除,可以进行以下操作:

>>> import re

>>> from zhon.hanzo import punctuation

>>> line = "测试。。去除标点。。"

>>> print re.sub("[{}]+".format(punctuation), "", line.decode("utf-8")) # 需要将str转换为unicode

当然,如果想去除重复的符号而只保留一个,那么可以用\1指明:比如

>>> re.sub(ur"([{}])+".format(punctuation), "\1", line.decode("utf-8"))

你也可以手工指定这些标点符号

punctuation = """!?。"#$%&'()*+-/:;<=>@[\]^_`{|}~⦅⦆「」、、〃》「」『』【】〔〕〖〗〘〙〚〛〜〝〞〟〰〾〿–—‘'‛“”„‟…‧﹏"""

re_punctuation = "[{}]+".format(punctuation)

line = re.sub(re_punctuation, "", line)

可以通过直接指定unicode码范围的办法来strip,比如:

去除所有半角全角符号,只留字母、数字、中文

def remove_punctuation(line):

rule = re.compile(ur"[^a-zA-Z0-9\u4e00-\u9fa5]")

line = rule.sub('',line)

return line

汉字的范围为”\u4e00-\u9fa5“,这个是用Unicode表示的,所以前面必须要加”u“;字符”r“的意思是表示忽略后面的转义字符,这样简化了后面正则表达式里每遇到一个转义字符还得挨个转义的麻烦

最后可以组合成为一个函数

def remove_punctuation(line, strip_all=True):

if strip_all:

rule = re.compile(ur"[^a-zA-Z0-9\u4e00-\u9fa5]")

line = rule.sub('',line)

else:

punctuation = """!?。"#$%&'()*+-/:;<=>@[\]^_`{|}~⦅⦆「」、、〃》「」『』【】〔〕〖〗〘〙〚〛〜〝〞〟〰〾〿–—‘'‛“”„‟…‧﹏"""

re_punctuation = "[{}]+".format(punctuation)

line = re.sub(re_punctuation, "", line)

return line.strip()

清洗完毕后,有时候我们希望按照多个标点符号来分割

比如只要遇到中文或英文的逗号和句号等符号就分割,可以直接用translate把这些符号翻译为统一的分隔符,再split:

strip_chars = '?"。.,,《》[]〖〗“”'

single_line = single_line.translate(str.maketrans(dict.fromkeys(strip_chars, '#')))

single_line = single_line.split('#')

总结

以上所述是小编给大家简介的Python处理中文标点符号大集合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对乐购源码网址的支持!

python标点符号分中英文嘛_Python处理中文标点符号大集合相关推荐

  1. python统计出现的中文标点_Python处理中文标点符号大集合

    中文文本中可能出现的标点符号来源比较复杂,通过匹配等手段对他们处理的时候需要格外小心,防止遗漏.以下为在下处理中文标点的时候采用的两种方法: 中文标点集合 比较常见标点有这些: !?。"#$%& ...

  2. python替换所有标点符号 正则_Python处理中文标点符号大集合

    中文文本中可能出现的标点符号来源比较复杂,通过匹配等手段对他们处理的时候需要格外小心,防止遗漏.以下为在下处理中文标点的时候采用的两种方法: 中文标点集合 比较常见标点有这些: !?。"#$%& ...

  3. python中标点符号大全_Python处理中文标点符号大集合

    中文文本中可能出现的标点符号来源比较复杂,通过匹配等手段对他们处理的时候需要格外小心,防止遗漏.以下为在下处理中文标点的时候采用的两种方法: 中文标点集合 比较常见标点有这些: !?。"#$%& ...

  4. python批量识别图片中文字_python实现中文图片文字识别--OCR about chinese text--tesseract...

    0.我的环境: win7 32bits python 3.5 pycharm 5.0 1.相关库 安装pillow: pip install pillow 安装tesseract: 自带了英文语言包, ...

  5. python统计汉字个数是_python统计中文字符数量的两种方法

    方法一: def str_count(str): '''找出字符串中的中英文.空格.数字.标点符号个数''' count_en = count_dg = count_sp = count_zh = c ...

  6. python怎么统计多少字符_python统计中文字符数量的两种方法

    方法一: def str_count(str): '''找出字符串中的中英文.空格.数字.标点符号个数''' count_en = count_dg = count_sp = count_zh = c ...

  7. python 爬取财经新闻_Python光大证券中文云系统——爬取新浪财经新闻

    [任务目标] 调通光大证券中文云系统 [任务进度] 依据Github光大证券中文云系统开源的说明文档,应该是分爬虫模块.检索模块.统计模块.关键词频模块和关键词网络模块,是一个整体非常庞大的系统.现在 ...

  8. python登录网页后打印_python爬虫中文网页cmd打印出错问题解决

    问题描述 用python写爬虫,很多时候我们会先在cmd下先进行尝试. 运行爬虫之后,肯定的,我们想看看爬取的结果. 于是,我们print... 运气好的话,一切顺利.但这样的次数不多,更多地,我们会 ...

  9. python数字转拼音输出_Python 将中文转拼音

    文字转拼音 import os.path class PinYin(object): def __init__(self): self.word_dict = {} def load_word(sel ...

最新文章

  1. 简评file_get_contents与curl 效率及稳定性
  2. 当一百万名记者都嚷嚷着“Facebook 很糟糕”......
  3. Sublime Text3 高亮显示Jade语法 (Windows 环境)
  4. 安卓开发之探秘蓝牙隐藏API
  5. redis查询所有key命令_三歪推荐:Redis常见的面试题
  6. java自动触发_我们可以自动使用应用程序触发器调用后台任
  7. 疫情后全国热门博物馆榜单出炉 第一名竟不是故宫
  8. 6.12使用tensorflow来搭建一个Transformer
  9. Win7连接蓝牙4.0鼠标
  10. 质量数据分析工具软件的应用
  11. 猪圈密码 摩斯密码 QWE加密 栅栏加密 当铺密码
  12. Win10系统IE浏览器设置代理上网的方法
  13. tp5 以及网站架构个人心得
  14. 美颜SDK更换发色、染发功能实现流程
  15. 【笔记】SQL查询语句的基本使用方法
  16. 99.扩展.霍尔三维结构方法论 vs 切克兰德方法论
  17. 【英语】-吞音与连读
  18. Unity - But the dll is not allowed to be included or could not be found 打包时错误提示的解决方法
  19. 格式化字符串_列表_元组
  20. NucleoF401RE评估板USART2使用注意事项

热门文章

  1. .net 开源CMS推荐
  2. 智慧校园与数字校园的区别是什么?
  3. al11-添加SAP目录
  4. AI, AL,我们的未来将驶向何方
  5. Switch开关控件.
  6. 蓄电池单格电压多少伏_蓄电池的输出电压一般是多少
  7. sql运算顺序及其运算模型
  8. C/C++版本更迭历程
  9. BAT 批处理脚本 教程
  10. 加州大学河滨分校计算机科学专业,美国加州大学河滨分校计算机科学硕士专业申请.pdf...