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

中文标点集合

比较常见标点有这些:

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

调用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. c 正则去除a以外的html,正则表达式:去除除SRC以外的HTML属性
  2. 统计学习方法笔记(四)-最大熵模型原理及python实现
  3. Top 10 Security Risks for 2014
  4. 将RGB值转换为灰度值的简单算法(转)
  5. 编程学习必备的一些网站,干货收藏!
  6. ABP vNext中使用开源日志面板 LogDashboard
  7. 批发电脑配件_2019年10月电脑配件表
  8. 1-springboot基础
  9. VB 文件未找到: 'C:\WINDOWS\system32\ieframe.dll\1'--继续加载工程吗?
  10. adb shell am 的用法
  11. 多线程+链表模拟RR调度算法
  12. 华为计算机网络技术试题,(完整版)华为试题答案
  13. 干了十多年SAP顾问,聊聊从SAP最佳业务实践看企业管理
  14. “潜力工作者”会不会成为明年24届秋招统计参数中的受害者?
  15. word字体号对应的磅数
  16. 帝国cms灵动标签调用标题图片没有图片时让其显示默认图片的方法
  17. Swagger、Rap与Yapi接口管理
  18. FreeSWITCH的传真发送
  19. 给入门程序员找培训班的一些建议
  20. 固本培元之一:栈和堆

热门文章

  1. 【TV Picture Quality - 01】TV背景知识
  2. java如何处理emoji表情,并存入数据库
  3. 华为3108raid安linux,华为服务器 RAID卡配置 SR430 LSISAS3108(EFI/UEFI模式)
  4. loss乘以100等价于learning rate乘以100?
  5. 秀下有关JavaScript的专业技能,走过路过不要错过!
  6. 逆向练习--bugku love
  7. IPv6都有哪些地址
  8. 小心信用卡公司10个抢钱陷阱
  9. List其实可以容纳不同类型的元素
  10. 程序员该考虑什么时候辞职?