• 简单记录一下中文文本如何去除标点和特殊符号的问题。。。

目录

  • 目录
  • 一、回顾一下英文如何去除符号等预处理问题
    • ①去除特殊符号
    • ②去除数字
    • ③词形归一
    • ④停止词
    • ⑤将上述内容综合
  • 二、中文文本去除标点符号
    • 1.背景知识
    • 2.示例说明1:使用Zhon库中的符号集
      • ①命令行中安装Zhon库
      • ②代码
      • ③结果
      • ④问题说明
    • 3.示例说明2:自定义特殊符号集进行去除

一、回顾一下英文如何去除符号等预处理问题

①去除特殊符号

def isSymbol(inputString):return bool(re.match(r'[^\w]', inputString))

②去除数字

def hasNumbers(inputString):return bool(re.search(r'\d', inputString))

③词形归一

from nltk.stem import WordNetLemmatizer
wordnet_lemmatizer = WordNetLemmatizer()

④停止词

from nltk.corpus import stopwords
stop = stopwords.words('english')

⑤将上述内容综合

def check(word):"""如果需要这个单词,则True如果应该去除,则False"""word= word.lower()if word in stop:return Falseelif hasNumbers(word) or isSymbol(word):return Falseelse:return True# 把上面的方法综合起来
def preprocessing(sen):res = []for word in sen:if check(word):#如果word为True的话则进行词形归一res.append(wordnet_lemmatizer.lemmatize(word))return res

接下来直接调用preprocessing()完成数据的预处理:

X_train = [preprocessing(x) for x in X_train]
X_test = [preprocessing(x) for x in X_test]

二、中文文本去除标点符号

1.背景知识

  • (1)使用 zhon.hanzi.punctuation函数实现。
  • (2)其中zhon是一个python库,它提供了在中文文本处理中常用的几个功能函数,一共包含四个模块: zhon.hanzizhon.pinyinzhon.zhuyinzhon.cedict
  • (3)其中实现去除标点的功能在 zhon.hanzi模块中,我们使用 from zhon.hanzi import punctuation进行调用。
  • (4)其中 zhon.hanzi.punctuation函数是 zhon.hanzi.non_stopszhon.hanzi.stop两个函数的结合。

zhon.hanzi.non_stops
它包含中文标点符号,不包括用作停止的标点符号。"#$%&'()*+,-/:;<=>@[\]^_`{|}~⦅⦆「」、、〃》「」『』【】〔〕〖〗〘〙〚〛〜〝〞〟〰〾〿–—‘’‛“”„‟…‧﹏

zhon.hanzi.stops
包含起着停止作用的符号: !?。。

了解更多Zhon内容请点击链接:Zhon

2.示例说明1:使用Zhon库中的符号集

①命令行中安装Zhon库

pip install zhon

②代码

import re
from zhon.hanzi import punctuation
from zhon.hanzi import non_stops
from zhon.hanzi import stops
corpus='花!呗/期?免,息.---蚂!蚁/花呗?期免stops息,什么。意思??'
print(corpus)
string1 = re.sub(r"[%s]+" %punctuation, "",corpus)#去除, ! ? 。
string2 = re.sub(r"[%s]+" %non_stops, "",corpus)#去除,
string3 = re.sub(r"[%s]+" %stops, "",corpus)#去除! ? 。
print(string1)
print(string2)
print(string3)

③结果

④问题说明

通过实验发现,利用Zhon库中的上述只能去除, 。 !?四种符号,而且这四种符号必须是中文符号,无法去除英文符号,无法达到预期结果。。。

3.示例说明2:自定义特殊符号集进行去除

使用自定义的符号集,用于去除想去除的符号,保留对实验有用的符号。

import re
corpus='花呗***期免息!   蚂蚁花呗。***期免息什么意思?'
print(corpus)
string = re.sub("[\s+\.\!\/_,$%^*(+\"\']+|[+——!,。?、~@#¥%……&*()]", "",corpus)
print(string)

结果:

NLP-中文文本去除标点符号相关推荐

  1. nlp中文文本摘要提取,快速提取文本主要意思

    文本摘要提取 之前写过一版 文本摘要提取,但那版并不完美.有所缺陷(但也获得几十次收藏). 中文文本摘要提取 (文本摘要提取 有代码)基于python 今天写改进版的文本摘要提取. 文本摘要旨在将文本 ...

  2. nlp 中文文本纠错_百度中文纠错技术

    原标题:百度中文纠错技术 分享嘉宾:付志宏 百度资深研发工程师 编辑整理:李润顺 内容来源:Baidu Brain & DataFun AI Talk<百度中文纠错技术> 出品社区 ...

  3. 中文文本纠错任务简介

    每天给你送来NLP技术干货! 来自:ChallengeHub 最近在梳理中文文本纠错任务,文本根据搜集到的文章整理成的任务简介,在此先感谢大佬们分享的高质量资料. 1 任务简介 中文文本纠错是针对中文 ...

  4. 『NLP自然语言处理』中文文本的分词、去标点符号、去停用词、词性标注

    利用Python代码实现中文文本的自然语言处理,包括分词.去标点符号.去停用词.词性标注&过滤. 在刚开始的每个模块,介绍它的实现.最后会将整个文本处理过程封装成 TextProcess 类. ...

  5. 自然语言处理NLP中文分词,词性标注,关键词提取和文本摘要

    NLP相关工具包的介绍 1.1 jieba "结巴"中文分词,理念是做最好的 Python 中文分词组件. 支持三种分词模式: (1)精确模式,试图将句子最精确地切开,适合文本分析 ...

  6. 【自然语言处理基础技能(NLP)】jieba中文文本处理

    1.基本分词函数与用法 # jieba.cut 以及 jieba.cut_for_search 返回的结构都是一个可迭代的 generator,可以使用 for 循环来获得分词后得到的每一个词语(un ...

  7. NLP(05)_中文文本基本任务与处理

    中文文本基本任务与处理 本文所用资料链接: https://pan.baidu.com/s/1KC1ya38fml1mlXYGBF0mIw 提取码: r76u 1.分词 对于中文和日文这样的特殊亚洲语 ...

  8. 如何在java中去除中文文本的停用词

    2019独角兽企业重金招聘Python工程师标准>>> 1.  整体思路 第一步:先将中文文本进行分词,这里使用的HanLP-汉语言处理包进行中文文本分词. 第二步:使用停用词表,去 ...

  9. 去停用词 java代码_如何在java中去除中文文本的停用词

    1.  整体思路 第一步:先将中文文本进行分词,这里使用的HanLP-汉语言处理包进行中文文本分词. 第二步:使用停用词表,去除分好的词中的停用词. 2.  中文文本分词环境配置 使用的HanLP-汉 ...

最新文章

  1. 网站转化率做不好多半是这三大因素产生干扰
  2. oracle union 类型转换,Oracle 中 union 和union all 的简单使用说明
  3. 小学少年宫计算机组活动教案,小学少年宫计算机兴趣小组活动记录表汇编
  4. SQL解析在美团的应用
  5. hadoop 命令行运行
  6. 64位/32位操作系统ODBC的设定方法
  7. 时隔5年 三星要重回苹果闪存零部件供应商名单了
  8. 堆排序(php实现)
  9. Windows编程 第七回 绘图课(上)
  10. 使用php函数防止SQL注入方法
  11. Kafka从上手到实践 - 庖丁解牛:Partition | 凌云时刻
  12. 51单片机学习笔记8 -- OLED显示(SPI)
  13. 猜价格游戏java_猜商品价格游戏程序.java
  14. 存算一体文献阅读笔记二:XNOR-RRAM architecture for BNN from Shimeng Yu in ASU 2017
  15. 给UIButton设置不同状态下的背景色
  16. 树莓派综合项目2:智能小车(一)四轮驱动
  17. PS亮度蒙版工具:Lumenzia for Mac(支持ps2022)
  18. 999系统可用性时间表
  19. 面向对象编程基本概念
  20. 哥德尔预言无穷小微积分是未来的数学分析

热门文章

  1. Java获取sql语句where条件后的语句
  2. JAVA电子病历系统源码,云端SaaS服务 前后端分离模式开发和部署
  3. uniapp vue3中引入外部3D模型(适配App)
  4. 计算机专业的英语短文,计算机专业英语短文翻译.doc
  5. 【数字图像处理】实验一图像基本变换(MATLAB实现)
  6. matlab 遗传算法求解多式联运优化——可考虑中转次数约束、满意度最高和成本最优方案
  7. 判断是否为闰年(简易分支)
  8. APP嵌入手机拍照银行卡识别接口,实现快速绑定银行卡号
  9. 如何查询202118山东高考成绩,往年高考成绩怎么查询 查询成绩的方法
  10. <马哲>生产力和生产关系的辩证原理