自然语言处理中文语料预处理大明王

近期,在自学自然语言处理,初次接触NLP觉得十分的难,各种概念和算法,而且也没有很强的编程基础,学着稍微有点吃力。不过经过两个星期的学习,已经掌握了一些简单的中文、英文语料的预处理操作。写点笔记,记录一下学习的过程。

第一点:中文语料中词与词之间是紧密相连的,这一点不同与英文或者其它语种的语料,因此在分词的时候不能像英文使用空格分词,可以jieba库进行分词。第二点:编码问题,中文语料的编码格式是unicode,而不是utf-8编码格式。这里介绍utf-8编码和unicode编码读取的区别,unicode一个中文字符占2个字节,而UTF-8一个中文字符占3个字节,因此如果不注意编码问题,在处理过程中肯定会出错的。

本次我做的中文语料预处理包含了以下操作:数据导入、数据清洗、中文分词、去停用词、特征处理(TF-IDF权重计算)。下面我将模块介绍我的处理过程。

首先,先准备好本次要使用的数据集,一段摘自腾讯体育新闻中新闻报道,文本保存格式设置为utf-8。然后倒入进python,使用到open函数读取文件,读取格式选择‘r'表示读取文件,编码encoding=’utf-8',查看文件中的内容用read函数。具体编码如下:

#文件读取defread_txt(filepath):file=open(filepath,'r',encoding='utf-8')txt=file.read()returntxt读取结果展示:

(注意:返回的txt是str类型的,即字符串类型,不需要decode。str与bytes表示的是两种数据类型,str为字符串型,bytes为字节型。对str编码encode得到bytes,对bytes解码decode得到str)

新闻文本数据中不仅包括了中文字符,还包括了数字、英文字符、标点等非常规字符,这些都是无意义,并且需要处理的数据。清洗的方法使用的是正则表达式,匹配规则为:[\u4e00-\u9fa5],\un匹配n,其中n是一个用四个十六进制数字表示的Unicode字符,而4e00-9fa5之间的Unicode编码表示的是20000多个中文字符。具体编码如下:

#匹配[^\u4e00-\u9fa5]deffind_chinese(file):pattern=re.compile(r'[^\u4e00-\u9fa5]')chinese_txt=re.sub(pattern,'',file)returnchinese_txt解释:[\u4e00-\u9fa5]表示匹配汉字,[^\u4e00-\u9fa5]表示匹配除汉字以外的所有字符。

分词是中文文本分析的重要内容,正确的分词可以帮助我们更好的构建模型、运用算法分析。中文分词一般使用jieba库中的cut方法,cut方法分词有两种模式,一种为全模式,另一种为精准模式,相较于全模式,精准模式分词更加精准可靠,因此选用精准模式对文本分词。注:精准模式和全模式的区别在于是否cut_all,精准模式选择cut_all=False;全模式选择cut_all=True。Jieba库的安装十分简单,只需要在命令框中输入:pipinstalljieba即可安装。

importjiebatxt='''腾讯体育3月6日讯史蒂芬-库里时隔127天后复出,勇士113-121不敌猛龙。猛龙本场比赛过后,取得44胜18负战绩,锁定季后赛,成为本赛季联盟第2支锁定季后赛的球队,第1支是雄鹿。比赛开始后,库里持球组织进攻,明显改变了猛龙的防守,给克里斯和维金斯创造了轻松得分的机会。但在第一节还剩6分11秒下场时,库里没有得分,2次三分出手全部偏出。但在第二节比赛重新登场后,我们看到了那个熟悉的库里。他接球投三分命中,迎着防守人超远压哨三分命中,第三节还迎着洛瑞完成3+1。那个三分之王和2次常规赛MVP风采依旧。勇士将士就像打不死的小强,从第一节开始就非常顽强,紧紧的咬住比分,甚至伺机反扑。'''#全模式jieba_list=jieba.cut(txt,cut_all=True)jieba_txt1=''.join(jieba_list)print('全模式分词:',jieba_txt1)#精准模式jieba_list=jieba.cut(txt,cut_all=False)jieba_txt2=''.join(jieba_list)print('精准模式分词:',jieba_txt2)通过这段代码我们可以体会一下全模式分词和精准模式分词的区别。

需要注意的一点是jieba分词后返回的数据类型是generator类型,是一个迭代器,需要使用for循环才能读取其中的内容。

处理的算法:

无论是中文中,还是英文中,都有用来起连接作用的连词、虚词、语气词等无意义的词,这些词没有具体的含义,只是起着衔接句子的作用。这些词对文本分析没有任何帮助,因此我们还需要对分词后的数据做停用词处理。进行停用词处理需要停用词表,本文中选用的停用词表为哈工大的停用词表,因为在国内研究自然语言处理他们属于翘楚。

#去除停用词defseg_sentence(list_txt):#读取停用词表stopwords=stopwords=read_txt('哈工大停用词表.txt')seg_txt=[wforwinlist_txtifwnotinstopwords]returnseg_txt去停用词结果:

#词频统计defcounter(txt):seg_list=txtc=Counter()forwinseg_list:ifwisnot'':c[w]+=1returnc统计结果如下所示:

#TF_IDF计算deftf_idf(txt):corpus_txt=[''.join(txt)]stopword_list=read_txt(r'哈工大停用词表.txt').splitlines()vector=TfidfVectorizer(stop_words=stopword_list)tfidf=vector.fit_transform(corpus_txt)print(tfidf)#获取词袋模型中的所有词wordlist=vector.get_feature_names()#tf-idf矩阵元素a[i][j]表示j词在i类文本中的tf-idf权重weightlist=tfidf.toarray()#打印每类文本的tf-idf词语权重,第一个for遍历所有文本,第二个for便利某一类文本下的词语权重foriinrange(len(weightlist)):print("-------第",i,"段文本的词语tf-idf权重------")forjinrange(len(wordlist)):print(wordlist[j],weightlist[i][j])运行结果:

到此中文文本的预处理就结束了。暂时这两个星期学到的预处理就这么多,如有不当之处,还忘大佬能不吝指导。最后附上全部代码:

THE END
1.自然语言处理实战:新闻文本分类(附代码)赛题目标:通过这道赛题可以引导大家走入自然语言处理的世界,带大家接触NLP的预处理、模型构建和模型训练等知识点。 赛题任务:赛题以自然语言处理为背景,要求选手对新闻文本进行分类,这是一个典型的字符识别问题。 1、学习目标 理解赛题背景与赛题数据 https://blog.csdn.net/weixin_42691585/article/details/107981604
2.了解自然语言处理自然语言处理 (NLP) 是 AI 的一个领域,它负责创建能够理解书面和口头语言的软件。 NLP 使你能够创建可以执行以下操作的软件: 分析和解释文档、电子邮件和其他来源中的文本。 解释口头语言,并合成语音响应。 自动将口头或书面短语在各种语言之间进行翻译。 https://docs.microsoft.com/zh-cn/training/modules/get-started-ai-fundamentals/5-understand-natural-language-process
3.如何系统学习自然语言处理(NLP)?自然语言处理(NLP)是人工智能领域的一个重要分支,主要研究如何让计算机理解和处理人类语言。随着深度学习https://www.zhihu.com/question/654477711/answer/3484662218
4.自然语言处理自然语言处理专委会1987年10月成立, 专委会成立之初即确定了“中国语言文字处理的计算机系统”和“以计算机为工具研究语言文字处理技术”两个主要研究方向,主要包括(或涉及)中国各民族语言文字的自然语言处理、机器翻译、信息抽取、数据挖掘、信息检索、智能问答、语音识别与合成、社会网络计算等众多学术领域,以及中文计算https://www.ccf.org.cn/Chapters/TC/TC_Listing/TCCI/
5.自然语言处理(豆瓣)《自然语言处理理论与实战》讲述自然语言处理相关学科知识和理论基础,并介绍使用这些知识的应用和工具,以及如何在实际环境中使用它们。由于自然语言处理的特殊性,其是一门多学科交叉的学科,初学者难以把握知识的广度和宽度,对侧重点不能全面掌握。《自然语言处理理论与实战》针对以上情况,经过科学调研分析,选择以理论结合https://book.douban.com/subject/30275915/
6.NLP服务自然语言处理智能文本处理腾讯云NLP 服务(NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。https://www.cloud.tencent.com/product/nlp
7.自然语言处理NLP文本分析及挖掘舆情识别人工智能自然语言处理技术依托于海量文本数据,通过多年的语料及算法研发积累,可分析海量文本,帮助客户更好更精确的挖掘出文本价值。 产品优势 技术优势 阿里云NLP打造了具有领先性和系统化的的深度语言模型体系——AliceMind,获得国内外50+著名评测第一。 行业优势 NLP拓展了电商、司法、物流、零售等20个领域。 https://ai.aliyun.com/nlp
8.什么是自然语言处理(NLP)?NLP完整指南Elastic定价文档 MPNet 采用上述转换器架构的 SentenceTransformers 双编码器 Elastic 能够让您利用 NLP 提取信息、对文本分类,并针对您的业务提高搜索相关性。借助 Elastic 开始使用 NLP。 NLP 相关资源 在技术层面上更深入了解自然语言处理 (NLP) 如何部署 NLP:文本嵌入和矢量搜索 https://www.elastic.co/cn/what-is/natural-language-processing
9.什么是自然语言处理?51CTO博客什么是自然语言处理? 自然语言处理(Natural Language Processing,NLP)是AI的一个领域,旨在让计算机理解和使用人类语言,从而执行有用的任务。自然语言处理又划分为两个部分:自然语言理解(Natural Language Understanding,NLU)和自然语言生成(Natural Language Generation,NLG)。https://blog.51cto.com/u_13127751/5209917
10.自然语言处理入门自然语言处理?(Natural Language Processing,NLP)是一门融合了计算机科学、人工智能以及语言学的交叉学科,它们的关系如图 1-1 所示。这门学科研究的是如何通过机器学习等技术,让计算机学会处理人类语言,乃至实现终极目标——理解人类语言或人工智能①。 事实上,自然语言处理这个术语并没有被广泛接受的定义②。注重语言https://www.ituring.com.cn/book/tupubarticle/28291
11.《自然语言处理》PPT课件.pptx《自然语言处理》PPT课件.pptx 41页内容提供方:耳传科技 大小:2.15 MB 字数:约6.59千字 发布时间:2021-08-20发布于广东 浏览人气:186 下载次数:仅上传者可见 收藏次数:0 需要金币:*** 金币 (10金币=人民币1元)《自然语言处理》PPT课件.pptxhttps://max.book118.com/html/2021/0820/8060127041003136.shtm
12.自然语言处理包括哪些内容自然语言处理技术包括哪些自然语言处理(Natural Language Processing, NLP)一般包括以下内容: 语音识别(Speech Recognition):将人类语言转换为计算机可以理解的形式。 语音合成(Speech Synthesis):将计算机生成的文本转换为人类语言。 机器翻译(Machine Translation):将一种语言翻译成另一种语言。 https://www.elecfans.com/d/2202985.html
13.自然语言处理入门完整版PDF电子书下载自然语言处理(NLP)是一种研究人类语言和计算机交互的技术,涵盖了语音识别、机器翻译、文本分类等多个方面。自然语言处理主要应用于机器翻译、舆情监测、自动摘要、观点提取、文本分类、问题回答、文本语义对比、语音识别、中文OCR等方面 自然语言处理(NLP)是数据科学里的一个分支,它的主要覆盖的内容是:以一种智能与高效https://www.jb51.net/books/881251.html
14.什么是自然语言处理(NLP)?Oracle中国自然语言处理 (NLP) 的定义 自然语言处理 (NLP) 是人工智能 (AI)的一个分支,它能够使计算机理解、生成和处理人类语言,支持用户使用自然语言文本或语音来询问 (interrogate) 数据,因此又被称为“语言输入 (language in)”。在现实中,大多数消费者可能都与 NLP 进行过互动,只是没有意识到而已。例如,Oracle Digitalhttps://www.oracle.com/cn/artificial-intelligence/what-is-natural-language-processing/
15.深度学习在自然语言处理中的7个应用·MachineLearning自然语言处理领域正在从统计方法转向神经网络方法。 在自然语言中仍有许多具有挑战性的问题需要解决。然而,深度学习方法正在某些特定语言问题上取得最新成果。 在最基本的问题上,最有趣的不仅仅是深度学习模型的表现;事实上,单个模型可以学习单词意义并执行语言任务,从而无需使用专门的手工制作方法。 https://www.kancloud.cn/apachecn/ml-mastery-zh/1952048
16.自然语言处理(NLP)招聘招聘自然语言处理(NLP)人才猎聘自然语言处理(NLP)招聘网为您提供大量的自然语言处理(NLP)招聘信息,有超过10000多自然语言处理(NLP)招聘信息任你选寻,招聘自然语言处理(NLP)人才就来猎聘自然语言处理(NLP)招聘网!https://www.liepin.com/career/ziranyuyanchulinlp/
17.一文看懂自然语言处理NLP(4个应用+5个难点+6个实现步骤)什么是自然语言处理 – NLP 每种动物都有自己的语言,机器也是! 自然语言处理(NLP)就是在机器语言和人类语言之间沟通的桥梁,以实现人机交流的目的。 人类通过语言来交流,狗通过汪汪叫来交流。机器也有自己的交流方式,那就是数字信息。 不同的语言之间是无法沟通的,比如说人类就无法听懂狗叫,甚至不同语言的人类之间https://easyai.tech/ai-definition/nlp/
18.自然语言处理是如何工作的?一步步教你构建NLP流水线机器之心计算机更擅长理解结构化数据,让计算机去理解主要以文化习惯沉淀下来的人类语言实在是太为难它们了。那自然语言处理获得的成功又是如何成就的呢?那就是,把人类语言(尽可能)结构化。本文以简单的例子一步步向我们展示了自然语言处理流水线的每个阶段的工作过程,也就是将语言结构化的过程,从句子分割、词汇标记化、、https://www.jiqizhixin.com/articles/081203
19.自然语言处理与信息检索共享平台–NaturalLanguageProcessing博士后招聘 Posted bykevinzhang—2024-05-15inUpdate动态 实验室招募博士后,合作导师:国家级领军人才张华平教授(可直接联系kevinz… Read More ? 张华平 Posted bynlpir—2021-11-30inExperts专家 CV in English Version 张华平 教授 博士生导师 (每… http://www.nlpir.org/