目录

中文文本预处理总结

1、文本数据准备

2、全角与半角的转化

3、文本中大写数字转化为小写数字

4、文本中大写字母转化为小写字母

5、文本中的表情符号去除(只保留中英文和数字)

6、去除文本中所有的字符(只保留中文)

7、中文文本分词

8、繁体中文与简体中文转换

9、中文文本停用词过滤

10、将清洗后的数据写入CSV文件


中文文本预处理总结

1、文本数据准备

(1)使用已有的语料库

(2)网络爬虫获取自己的语料库(可以使用beautifulsoup等爬虫工具


#读取文件列表数据,返回文本数据的内容列表和标签列表
def filelist_contents_labels(filelist):contents=[]labels = []for file in filelist:with open(file, "r", encoding="utf-8") as f:for row in f.read().splitlines():sentence=row.split('\t')contents.append(sentence[-1])if sentence[0]=='other' :labels.append(0)else:labels.append(1)return contents,labels

2、全角与半角的转化

在自然语言处理过程中,全角、半角的的不一致会导致信息抽取不一致,因此需要统一。中文文字永远是全角,只有英文字母、数字键、符号键才有全角半角的概念,一个字母或数字占一个汉字的位置叫全角,占半个汉字的位置叫半角。标点符号在中英文状态下、全半角的状态下是不同的。

有规律(不含空格):全角字符unicode编码从65281~65374 (十六进制 0xFF01 ~ 0xFF5E);半角字符unicode编码从33~126 (十六进制 0x21~ 0x7E)

特例:空格比较特殊,全角为 12288(0x3000),半角为 32(0x20)

#全角转半角
def full_to_half(sentence):      #输入为一个句子change_sentence=""for word in sentence:inside_code=ord(word)if inside_code==12288:    #全角空格直接转换inside_code=32elif inside_code>=65281 and inside_code<=65374:  #全角字符(除空格)根据关系转化inside_code-=65248change_sentence+=chr(inside_code)return change_sentence

ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常。

#半角转全角
def hulf_to_full(sentence):      #输入为一个句子change_sentence=""for word in sentence:inside_code=ord(word)if inside_code==32:    #半角空格直接转换inside_code=12288elif inside_code>=32 and inside_code<=126:  #半角字符(除空格)根据关系转化inside_code+=65248change_sentence+=chr(inside_code)return change_sentence

3、文本中大写数字转化为小写数字

#大写数字转换为小写数字
def big2small_num(sentence):numlist = {"一":"1","二":"2","三":"3","四":"4","五":"5","六":"6","七":"7","八":"8","九":"9","零":"0"}for item in numlist:sentence = sentence.replace(item, numlist[item])return sentence

4、文本中大写字母转化为小写字母

#大写字母转为小写字母
def upper2lower(sentence):new_sentence=sentence.lower()return new_sentence

5、文本中的表情符号去除(只保留中英文和数字)

使用正则表达式

#去除文本中的表情字符(只保留中英文和数字)
def clear_character(sentence):pattern1= '\[.*?\]'     pattern2 = re.compile('[^\u4e00-\u9fa5^a-z^A-Z^0-9]')   line1=re.sub(pattern1,'',sentence)line2=re.sub(pattern2,'',line1)   new_sentence=''.join(line2.split()) #去除空白return new_sentence

6、去除文本中所有的字符(只保留中文)

#去除字母数字表情和其它字符
def clear_character(sentence):pattern1='[a-zA-Z0-9]'pattern2 = '\[.*?\]'pattern3 = re.compile(u'[^\s1234567890::' + '\u4e00-\u9fa5]+')pattern4='[’!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~]+'line1=re.sub(pattern1,'',sentence)   #去除英文字母和数字line2=re.sub(pattern2,'',line1)   #去除表情line3=re.sub(pattern3,'',line2)   #去除其它字符line4=re.sub(pattern4, '', line3) #去掉残留的冒号及其它符号new_sentence=''.join(line4.split()) #去除空白return new_sentence

7、中文文本分词

本文使用的是jieba分词。

8、繁体中文与简体中文转换

from langconv import *
# 转为简体
def Traditional2Simplified(sentence):sentence = Converter('zh-hans').convert(sentence)return sentence
# 转为繁体
def Simplified2Traditional(sentence):sentence = Converter('zh-hant').convert(sentence)return sentence

9、中文文本停用词过滤

#去除停用词,返回去除停用词后的文本列表
def clean_stopwords(contents):contents_list=[]stopwords = {}.fromkeys([line.rstrip() for line in open('data/stopwords.txt', encoding="utf-8")]) #读取停用词表stopwords_list = set(stopwords)for row in contents:      #循环去除停用词words_list = jieba.lcut(row)words = [w for w in words_list if w not in stopwords_list]sentence=''.join(words)   #去除停用词后组成新的句子contents_list.append(sentence)return contents_list

10、将清洗后的数据写入CSV文件

# 将清洗后的文本和标签写入.csv文件中
def after_clean2csv(contents, labels): #输入为文本列表和标签列表columns = ['contents', 'labels']save_file = pd.DataFrame(columns=columns, data=list(zip(contents, labels)))save_file.to_csv('data/clean_data.csv', index=False, encoding="utf-8")

本人博文NLP学习内容目录:

一、NLP基础学习

1、NLP学习路线总结

2、TF-IDF算法介绍及实现

3、NLTK使用方法总结

4、英文自然语言预处理方法总结及实现

5、中文自然语言预处理方法总结及实现

6、NLP常见语言模型总结

7、NLP数据增强方法总结及实现

8、TextRank算法介绍及实现

9、NLP关键词提取方法总结及实现

10、NLP词向量和句向量方法总结及实现

11、NLP句子相似性方法总结及实现

12、NLP中文句法分析

二、NLP项目实战

1、项目实战-英文文本分类-电影评论情感判别

2、项目实战-中文文本分类-商品评论情感判别

3、项目实战-XGBoost与LightGBM文本分类

4、项目实战-TextCNN文本分类实战

5、项目实战-Bert文本分类实战

6、项目实战-NLP中文句子类型判别和分类实战

交流学习资料共享欢迎入群:955817470(群一),801295159(群二)

中文自然语言预处理总结相关推荐

  1. 中文文本挖掘预处理流程总结

    在对文本做数据分析时,我们一大半的时间都会花在文本预处理上,而中文和英文的预处理流程稍有不同,本文就对中文文本挖掘的预处理流程做一个总结. 1. 中文文本挖掘预处理特点 首先我们看看中文文本挖掘预处理 ...

  2. 第01课:中文自然语言处理的完整机器处理流程

    2016年全球瞩目的围棋大战中,人类以失败告终,更是激起了各种"机器超越.控制人类"的讨论,然而机器真的懂人类吗?机器能感受到人类的情绪吗?机器能理解人类的语言吗?如果能,那它又是 ...

  3. 对话系统中的中文自然语言理解 (NLU) 任务介绍

    每天给你送来NLP技术干货! 来自:看个通俗理解吧 Chinese Natural Language Understanding, NLU, in Dialogue Systems 1&2 T ...

  4. 实在智能参与中文自然语言理解评价标准体系(CLUE)阶段性进展回顾

    「实在智能」简介 「实在智能」(杭州实在智能科技有限公司)是一家人工智能科技公司,聚焦大规模复杂问题的智能决策领域,通过AI+RPA技术打造广泛应用于各行业的 智能软件机器人,即"数字员工& ...

  5. 中文自然语言处理导论

    中文自然语言处理导论 作者: 黄锦辉等 出版时间: 2018年10月 出版社名称: 科学出版社

  6. 中文自然语言处理数据集:ChineseNLPCorpus(附链接)

    来源:AINLP 本文约1300字,建议阅读5分钟. 本文为你推荐中文自然语言处理数据集. 推荐一个Github项目:ChineseNLPCorpus,该项目收集了一批中文自然语言处理数据集的相关链接 ...

  7. N-LTP:基于预训练模型的中文自然语言处理平台

    2021-05-03 18:12:52 论文名称:N-LTP: A Open-source Neural Chinese Language Technology Platform with Pretr ...

  8. 【NLP】N-LTP:基于预训练模型的中文自然语言处理平台

    论文名称:N-LTP: A Open-source Neural Chinese Language Technology Platform with Pretrained Models 论文作者:车万 ...

  9. NLP Chinese Corpus:大规模中文自然语言处理语料

    中文的信息无处不在,但如果想要获得大量的中文语料,却是不太容易,有时甚至非常困难.在 2019 年初这个时点上,普通的从业者.研究人员或学生,并没有一个比较好的渠道获得极大量的中文语料. 笔者想要训练 ...

最新文章

  1. [转载].sscanf的用法
  2. 数据智能是大数据的未来
  3. appium第一个安卓自动化工程
  4. 如何自动搞定全站图片的alt属性?
  5. Netfilter 详解
  6. IDEA 中 右键新建时,没有新建class的解决方案
  7. 安装kerberos报错 error: command 'gcc' failed with exit status 1
  8. 转】MyEclipse使用总结——在MyEclipse中设置jsp页面为默认utf-8编码
  9. kvm虚拟机不通网关_linux ssh 虚拟机下CentOS7开启SSH连接
  10. 用斐波那契数列绘画银杏树
  11. qt多级菜单_Qt高仿电脑管家界面(二):点击按钮弹出菜单
  12. IDEA中pom.xml文件图标变红,而不是蓝问题
  13. 德语语法笔记——冠词的用法
  14. php cgi.sock 502,nginx中unix:/tmp/php-cgi.sock错误解决解决
  15. nohup命令原理解析
  16. 北京有哪些牛逼的中小型公司?
  17. 宝塔修改网站中的文件后未生效
  18. Halcon图像读取的方式
  19. 百度跳动争抢优质内容,豆瓣微博们何去何从?
  20. scrapy爬虫【4】→爬百度美女图

热门文章

  1. iOS中 WGAFN_网络监控 技术分享
  2. 2个步骤让你秒获KOL抖音运营数据分析报告
  3. 干电池电量采集_干电池电量检测方法
  4. 读《卓有成效的程序员》-----我的一些题内和题外的感想
  5. Knockoutjs官网翻译系列(二) Observable 数组
  6. 《计算机组成原理》课程学习(7)——第3篇 中央处理器——第7章 指令系统
  7. SUMO学习日志(一)SUMO安装
  8. 计算机辅助设计绘图员技能鉴定试题(建筑类),计算机辅助设计高级绘图员技能鉴定试题...
  9. 代码同时托管到github和oschina上
  10. 红红纪念日记录器(原创)