Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

陈萍编辑

NLP小白入门篇:莫愁前路,一文读懂语料预处理

自然语言处理是 AI 皇冠上的明珠,而语料预处理是自然语言处理的基础。


机器能跟人类交流吗?能像人类一样理解文本吗?这是大家对人工智能最初的想象。如今,NLP 技术可以充当人类和机器之间沟通的桥梁。环顾周围的生活,我们随时可以享受到 NLP 技术带来的便利,语音识别机器翻译问答系统等等。

这些技术看起来高深莫测,实则都有章可循。当你了解算法的底层原理后,你可能会恍然大悟,嗨!这也不是很难理解嘛。

现在你可以跟随本文,初探 NLP 技术的地基(语料预处理)是如何构建起来的。在之后的文章中,我们将循序渐进地介绍 NLP 中的特征提取以及最新算法解读。

语料,顾名思义就是我们平时所说的文本,带有文字描述性的文本都可以归类于语料。但这种原始文本无法直接用来训练模型,需要进行前期预处理。

语料预处理方法主要包括数据清洗、分词、词性标注、去停用词等。

语料清洗

语料清洗即保留语料中有用的数据,删除噪音数据。常见的清洗方式有:人工去重、对齐、删除、标注等。

以下面的文本为例。该文本不仅包含中文字符,还包括数字、英文字符、标点等非常规字符,这些都是无意义的信息,需要进行清洗。


像上述情况,清洗的方法主要是通过正则表达式。可以编写简短的 Python 小脚本来解决,代码如下:


清洗后的结果:


除了上述需要清洗的形式以外,噪音数据还包括文本重复、错误、缺失、异常等。清洗的方法包括手动处理,或者通过开发小工具、写个简短的小程序,这些方式都可以进行数据清洗。

分词

数据清洗完,就可以进行下一步工序:文本分词。文本分词,即将文本分成一个一个的词语。常用的分词方法有基于规则的、基于统计的分词方法,而统计的样本内容来自于一些标准的语料库

例如这个句子:「小明住在朝阳区」,我们期望语料库统计后分词的结果是:「小明 / 住在 / 朝阳 / 区」,而不是「小明 / 住在 / 朝 / 阳区」。那么如何做到这一点呢?

从统计的角度,可以通过条件概率分布来解决。对于一个新的句子,我们可以通过计算各种分词方法对应的联合分布概率,找到最大概率对应的分词方法,即为最优分词。

到目前为止,研究者已经开发出许多分词实用小工具,这些工具使用都很简单。如果你对分词没有特殊需求,你可以直接使用这些分词工具。

多种分词工具一览。

词性标注

词性标注指为分词结果中的每个词标注正确的词性,即确定每个词是名词、动词、形容词或其他词性的过程。

词性标注有多个重要作用。

第一,消除歧义。一些词在不同语境或不同用法时表示不同的意思。比如在这两个句子「这只狗狗的名字叫开心」和「我今天很开心」中,「开心」就代表了不同的含义。我们可以通过词性标注进行区分。

第二,强化基于单词的特征。还是以上句为例,如果不进行词性标注,两个「开心」会被认为是同义词,词频为 2,这会在后续分析中引入误差。

此外,词性标注还具有标准化、词形还原,以及有效移除停用词的作用。

常用的词性标注方法有基于规则的、基于统计的算法,比如:最大熵词性标注、HMM 词性标注等。

接下来,我们看一个词性标注示例。大家也可以自己尝试:http://ictclas.nlpir.org/nlpir/



去停用词

我们人类在接受消息时,都会滤除无效信息,筛选有用信息。对于自然语言来说,去停用词是一种很明智的操作。

一篇文本,不管是中文还是英文,都有用来起连接作用的连词、虚词、语气词等无意义的词,比如「的」、「吧」、「但是」等等。这些词没有具体的含义,只是起到衔接句子以及增强语气的作用。这些词对文本分析也没有任何帮助,因此我们需要对分词后的数据做停用词处理。

但是我们应该谨慎决定该去除哪类停用词。

下图列出了一些常用的停用词表,你可以参照需求,选择要去除的停用词。


词频统计

词频统计即统计分词后文本的词频,目的是找出对文本影响最大的词汇,是文本挖掘的重要手段。统计这些词出现的频率可以帮助我们了解文章重点强调了什么,进而方便后续构建模型。

比如我们可以统计四大名著之一《红楼梦》中词频在前 28 的词语,结果如下:


从上图可以看到,《红楼梦》中哪个人物的篇幅最多,哪个人物曹雪芹更注重。即使我们不是红学专家,但是从统计词频中也可以分析出一些关键信息。

「万丈高楼平地起」,对于自然语言处理这座摩天大厦来说,了解底层的实现原理,或许能够帮助你更好地理解其构建过程。

在后续的文章中,我们将持续输出关于 NLP 算法的其他内容。敬请期待!

入门语料库NLP文本预处理
5
相关数据
人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

词性标注技术

词性标注是指为分词结果中的每个单词标注一个正确的词性的程序,也即确定每个词是名词、动词、形容词或其他词性的过程。

机器翻译技术

机器翻译(MT)是利用机器的力量「自动将一种自然语言(源语言)的文本翻译成另一种语言(目标语言)」。机器翻译方法通常可分成三大类:基于规则的机器翻译(RBMT)、统计机器翻译(SMT)和神经机器翻译(NMT)。

文本分析技术

文本分析是指对文本的表示及其特征项的选取;文本分析是文本挖掘、信息检索的一个基本问题,它把从文本中抽取出的特征词进行量化来表示文本信息。

语料库技术

语料库一词在语言学上意指大量的文本,通常经过整理,具有既定格式与标记;事实上,语料库英文 "text corpus" 的涵意即为"body of text"。

噪音技术

噪音是一个随机误差或观测变量的方差。在拟合数据的过程中,我们常见的公式$y=f(x)+\epsilon$中$\epsilon$即为噪音。 数据通常包含噪音,错误,例外或不确定性,或者不完整。 错误和噪音可能会混淆数据挖掘过程,从而导致错误模式的衍生。去除噪音是数据挖掘(data mining)或知识发现(Knowledge Discovery in Database,KDD)的一个重要步骤。

语音识别技术

自动语音识别是一种将口头语音转换为实时可读文本的技术。自动语音识别也称为语音识别(Speech Recognition)或计算机语音识别(Computer Speech Recognition)。自动语音识别是一个多学科交叉的领域,它与声学、语音学、语言学、数字信号处理理论、信息论、计算机科学等众多学科紧密相连。由于语音信号的多样性和复杂性,目前的语音识别系统只能在一定的限制条件下获得满意的性能,或者说只能应用于某些特定的场合。自动语音识别在人工智能领域占据着极其重要的位置。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

条件概率分布技术

条件概率分布(Conditional Probability Distribution,或者条件分布,Conditional Distribution )是现代概率论中的概念。 已知两个相关的随机变量X 和Y,随机变量Y 在条件{X =x}下的条件概率分布是指当已知X 的取值为某个特定值x之时,Y 的概率分布。

文本挖掘技术

文本挖掘有时也被称为文字探勘、文本数据挖掘等,大致相当于文字分析,一般指文本处理过程中产生高质量的信息。高质量的信息通常通过分类和预测来产生,如模式识别。文本挖掘通常涉及输入文本的处理过程,产生结构化数据,并最终评价和解释输出。'高品质'的文本挖掘通常是指某种组合的相关性,新颖性和趣味性。

问答系统技术

问答系统是未来自然语言处理的明日之星。问答系统外部的行为上来看,其与目前主流资讯检索技术有两点不同:首先是查询方式为完整而口语化的问句,再来则是其回传的为高精准度网页结果或明确的答案字串。以Ask Jeeves为例,使用者不需要思考该使用什么样的问法才能够得到理想的答案,只需要用口语化的方式直接提问如“请问谁是美国总统?”即可。而系统在了解使用者问句后,会非常清楚地回答“奥巴马是美国总统”。面对这种系统,使用者不需要费心去一一检视搜索引擎回传的网页,对于资讯检索的效率与资讯的普及都有很大帮助。从系统内部来看,问答系统使用了大量有别于传统资讯检索系统自然语言处理技术,如自然语言剖析(Natural Language Parsing)、问题分类(Question Classification)、专名辨识(Named Entity Recognition)等等。少数系统甚至会使用复杂的逻辑推理机制,来区隔出需要推理机制才能够区隔出来的答案。在系统所使用的资料上,除了传统资讯检索会使用到的资料外(如字典),问答系统还会使用本体论等语义资料,或者利用网页来增加资料的丰富性。

推荐文章
暂无评论
暂无评论~