0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

文本数据预处理的方法

zhKF_jqr_AI 来源:未知 作者:李倩 2018-04-11 16:44 次阅读

文本数据分析(一):基本框架

在文本数据分析基本框架中,我们涉及到了六个步骤:

数据收集

数据预处理

数据挖掘和可视化

模型构建

模型评估

虽然框架需要迭代,但是我们先将其看作是一个线性的过程:

修正过的文本数据处理框架(依然很简单……)

很显然,文本数据预处理位于框架的第二步,这一步所包含的详细步骤有以下两个:

在原始文本语料上进行预处理,为文本挖掘或NLP任务做准备

数据预处理分为好几步,其中有些步骤可能适用于给定的任务,也可能不适用。但通常都是标记化、归一化和替代的其中一种(tokenization, normalization, substitution)。

通常,我们会选取一段预先准备好的文本,对其进行基本的分析和变换,遗留下更有用的文本数据,方便之后更深入、更有意义的分析任务。接下来将是文本挖掘或自然语言处理工作的核心工作。

所以再次重复以便,文本预处理的三个主要组成部分:

标记化(tokenization)

归一化(normalization)

替换(substitution)

在下面介绍预处理方法的过程中,我们需要时刻牢记这三个概念。

文本预处理框架

接下来,我们将介绍这个框架的概念,而不涉及工具。在下一篇文章中我们会降到这些步骤的安装过程,看看它们是如何在Python中实现的。

文本数据预处理框架

1.标记化(Tokenization)

标记化是将文本中的长字符串分割成小的片段或者tokens的过程。大段文字可以被分割成句子,句子又可以被分割成单词等等。只有经过了tokenization,才能对文本进行进一步的处理。Tokenization同样被称作文本分割或者词法分析。有时,分割(segmentation)用来表示大段文字编程小片段的过程(例如段落或句子)。而tokenization指的是将文本变为只用单词表示的过程。

这一过程听起来很直接,但事实并非如此。在较大的文本中如何识别句子?你的第一反应一定是“用标点符号”。

的确,下面的句子用传统的分割方法很容易理解:

The quick brown fox jumps over the lazy dog.

但是下面这句呢:

Dr. Ford did not ask Col. Mustard the name of Mr. Smith’s dog.

还有这个:

“What is all the fuss about?” Asked Mr. Peters.

上面的都只是简单的句子,那么单词又怎样呢?

This full-time student isn’t living in on-campus housing, and she’s not wanting to visit Hawai’i.

我们应该意识到,许多策略不只是针对句子分割,而是针对分割的边界确定之后应该做什么。例如,我们可能会采用一种分割策略,它能够(正确地)将单词“she’s”的tokens之间特定边界标识识别为撇号(单独用空格标记的策略不足以识别这一点)。但是我们可以从多种策略中选择,例如是将标点符号保留在单词的某一部分中或是一同舍弃。其中一种方法似乎是正确的,并且似乎不会构成实际的问题。但是仔细想想,在英语中我们还需要考虑其他特殊情况。

即,当我们将文本分割成句子时,是否应该保留句末分隔符?我们是否在意句子在哪里结束?

2.归一化(Normalization)

再进一步处理之前,文本需要进行归一化。归一化指的是一系列相关的任务,能够将所有文本放在同一水平区域上:将所有文本转化成同样的实例,删除标点,将数字转换成相应的文字等等。对文本进行归一化可以执行多种任务,但是对于我们的框架,归一化有3个特殊的步骤:

词干提取(stemming)

词形还原(lemmatizatiion)

其他

词干提取

词干提取是删除词缀的过程(包括前缀、后缀、中缀、环缀),从而得到单词的词干。

词形还原

词形还原与词干提取相关,不同的是,词形还原能够捕捉基于词根的规范单词形式。

例如,对“better”一词进行词干提取,可能无法生成另一个词根的词。然而对其进行词形还原,就得到:

其他

词形还原和词干提取是文本预处理的主要部分,所以这两项一定要认真对待。他们不是简单地文本操作,而要依赖语法规则和对规则细致的理解。

然而,还有许多其他步骤可以帮助处理文本,让它们变成平等的地位,其中有一些只是简单地替换或删除。其他重要的方法包括:

将所有字母变成小写

删除数字(或者将数字换成对应的文字)

删除标点(者通常是tokenization的一部分,但是仍然需要在这一步做)

删除空白格

删除默认停止词

停止词是那些在对文本进一步与处理之前需要过滤掉的单词,因为这些单词并不影响整体意义。例如“the”、“and”、“a”这些词。下面的例子就表明,即使删除停止词,句子的意思也很容易理解。

删除特定的停止词

删除稀疏的特定词语(尽管不是必须的)

在这里,我们应该清除文本预处理很大程度上依赖于预先建立的词典、数据库和规则。在我们下一篇用Python进行预处理的文章中,你会发现这些支持工具会非常有用。

3.噪声清除

噪声消除延续了框架的替代任务。虽然框架的前两个主要步骤(标记化和归一化)通常适用于几乎任何的文本或项目,噪声去除是预处理框架中一个更加具体的部分。

再次记住,我们的处理过程并不是线性的,其中的过程必须以特定的顺序进行,视具体情况而定。因此,噪声消除可以发生在上述步骤之前或之后,或者是某个时刻。

具体来说,假设我们从网上获取了一个语料库,并且以原始的web格式存储,那么我们可以认为文本很大程度上可能有HTML或XML标签。尽管这种对元数据的思考可以作为文本收集或组装的过程中的一部分,但它取决于数据是如何获取和收集的。在上一篇文章中,我简单讲述了如何从维基百科中获取原始数据并搭建语料库。由于我们控制了数据收集的过程,因此在这时处理噪声也是可行的。

但情况并非总是如此。如果你正在使用的语料库很嘈杂,你必须处理它。数据分析的效果80%都在于数据的准备。

好消息是,此时可以用到模式匹配:

删除文件标题、页脚

删除HTML、XML等标记和元数据

从其他格式(如JSON)或数据库中提取有价值的数据

如果你害怕正则表达式,这可能会成为文本预处理的一部分

噪声消除和数据收集之间的界限很模糊,因此噪声消除必须在其他步骤之前进行。例如,从JSON结构中获取的文本显然要在tokenization之前消除噪音。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据收集
    +关注

    关注

    0

    文章

    72

    浏览量

    11160
  • 噪声消除
    +关注

    关注

    0

    文章

    9

    浏览量

    8106
  • python
    +关注

    关注

    56

    文章

    4796

    浏览量

    84664

原文标题:文本数据分析(二):文本数据预处理的方法

文章出处:【微信号:jqr_AI,微信公众号:论智】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    labview树形控件读取子文本数据(child text)

    各位大神好!我想读取已编辑好的树形控件的第0列之后的子文本数据(child text,或称属性),该如何实现?
    发表于 07-14 16:38

    如何读取TXT文本数据并生成波形

    文本数据如图片所示,求大神帮忙!
    发表于 05-14 23:06

    从一个文本数据的文件夹中,怎样实现数据的连续提取

    比如 文本数据中有很多关于物体的信息,比如位置(经度和纬度),移动速度,时间信息,而我只需要(进度和纬度)的数据,这些经度和纬度信息怎样从文本文件夹中实现连续采集,重要的是连续采集,该怎么做呢
    发表于 11-03 19:00

    Python数据预处理方法

    机器学习-Python实践Day3(特征工程--数据预处理2)
    发表于 06-03 15:55

    C预处理与C语言基本数据类型

    嵌入式系统设计师学习笔记二十九:嵌入式程序设计④——C预处理预处理指令表:(编码规范:GB/T 28169-2011)关于宏定义 #denfine 详解可点击连接查看博主的另一篇文章 预定义宏预处理
    发表于 12-21 08:29

    LabVIEW操作Excel报表时会丢失所有的非文本数据

    LabVIEW操作Excel报表时会丢失所有的非文本数据在Report Generation Toolkit中打开我的*.xls文件,进行操作并保存。当我再次使用Excel打开时,所有的非文本数据
    发表于 05-09 21:24

    文本数据分析:文本挖掘还是自然语言处理

    自然语言处理(NLP)关注的是人类的自然语言与计算机设备之间的相互关系。NLP是计算机语言学的重要方面之一,它同样也属于计算机科学和人工智能领域。而文本挖掘和NLP的存在领域类似,它关注的是识别文本数据中有趣并且重要的模式。
    的头像 发表于 04-10 14:58 1.8w次阅读
    <b class='flag-5'>文本数据</b>分析:<b class='flag-5'>文本</b>挖掘还是自然语言<b class='flag-5'>处理</b>?

    机器学习的特征预处理问题讨论

    本文我们来讨论特征预处理的相关问题。主要包括特征的归一化和标准化,异常特征样本清洗与样本数据不平衡问题的处理
    的头像 发表于 03-15 17:14 905次阅读

    textCNN论文与原理——短文本分类

    处理图片的torchvision,而处理文本的少有提及,快速处理文本数据的包也是有的,那就是torchtext[1]。下面还是结合上一个案
    的头像 发表于 12-31 10:08 2529次阅读
    textCNN论文与原理——短<b class='flag-5'>文本</b>分类

    异构文本数据转换过程中解析XML文本方法对比

    对异构文本数据转换过程中解析XML文本的DOM、SAX、JOM4J方法进行对比研究,以解析时间、内存堆占用空间、CPU占用率为评价指标来判定4种解析方法的优劣。该评价
    发表于 03-25 11:12 9次下载
    异构<b class='flag-5'>文本数据</b>转换过程中解析XML<b class='flag-5'>文本</b>的<b class='flag-5'>方法</b>对比

    PyTorch文本分类任务的基本流程

    文本分类是NLP领域的较为容易的入门问题,本文记录文本分类任务的基本流程,大部分操作使用了**torch**和**torchtext**两个库。 ## 1. 文本数据预处理
    的头像 发表于 02-22 14:23 1104次阅读

    问答对话文本数据:解锁智能问答的未来

    在日常生活中,我们经常面临各种问题和需求,而智能问答系统作为一种人机交互工具,为我们提供了便捷的问题解答和信息获取方式。而问答对话文本数据作为推动智能问答系统发展的关键资源,扮演着重要角色。 问答
    的头像 发表于 07-13 14:19 527次阅读

    大型模型的重要基石与洞察力之源之文本数据

    在当今数字化时代,文本数据已成为人类活动的主要载体,无处不在的信息交流塑造着我们的社会、经济和文化。而正是这些海量的文本数据,为大型模型的训练和应用提供了丰富的资源,成为其重要的基石与洞察力之源
    的头像 发表于 08-14 10:06 557次阅读

    Minitab 数据清理与预处理技巧

    Minitab是一款功能强大的统计分析和质量管理软件,在数据分析过程中,数据清理与预处理是至关重要的环节。以下是一些在Minitab中进行数据清理与
    的头像 发表于 12-02 16:06 322次阅读

    如何使用自然语言处理分析文本数据

    媒体、新闻报道、用户评论等)收集你感兴趣的文本数据数据清洗 :去除无关字符(如HTML标签、特殊符号等),确保文本数据干净且一致。 2. 预处理 分词 :将
    的头像 发表于 12-05 15:27 272次阅读