如何用NLTK(自然语言工具包)进行文本预处理?

2022-05-09 13:47:43最牛来源:史上最强
史上最牛网导读: 自然语言处理的目标是建立能够理解和回应文本或语音数据的机器--并像人类一样用自己的语言和语音作出回应。

用NLTK进行NLP任务的文本预处理

自然语言处理(NLP)

自然语言处理的目标是建立能够理解和回应文本或语音数据的机器--并像人类一样用自己的语言和语音作出回应。

如何用NLTK(自然语言工具包)进行文本预处理?

 

什么是自然语言处理?

在计算机科学中,自然语言处理(NLP)是人工智能(AI)的一个分支,它涉及到让计算机具有像人类一样理解文本和口语的能力。

NLP的目标是将计算语言学--基于规则的人类语言建模--与机器学习、统计学和深度学习技术相结合。计算机现在可以处理文本或语音数据形式的人类语言,使其能够理解其完整的含义,包括说话者的意图和情绪。

自然语言处理领域使计算机程序能够在不同语言之间翻译文本,实时响应,它可以总结大量的文本并响应口语命令。你很可能已经以语音控制的GPS系统、数字助理、语音到文本听写软件、客户服务聊天机器人和其他消费者便利的形式与NLP进行了互动。然而,自然语言处理在企业解决方案中也发挥着越来越重要的作用,它可以提高员工的生产力,简化关键任务的工作流程,并简化业务运营。

NLP的一些应用

  1. 垃圾邮件检测
  2. 情感分析
  3. 企业的聊天机器人
  4. 文本总结。
  5. 文本建议和更正
  6. 部分语音标签
  7. 以及更多的现实世界的应用。

自然语言工具包(NLTK)

有许多Python库和工具用于处理NLP任务。自然语言工具包,或称NLTK,是一个库、程序和教育资源的集合,用于建立基于自然语言的NLP程序。

除了支持一些NLP任务的库之外,NLTK还提供了支持子任务的库,如句子解析、单词分割、词干化、词根化(将单词修剪到词根的过程)和标记化(将短语、句子、段落和段落缩减为标记以使系统更容易理解的过程)。还有许多用于实现语义推理的库,它允许用户根据从文本中提取的事实得出逻辑结论。

一些非常有用的功能

  1. 对照:NLTK的对照功能可以用来搜索文档中出现的每一个特定的词,同时还可以显示搜索词的周围环境。
  2. 生成。生成各种风格的随机文本
  3. 计数:一个词的总计数可以通过计数功能返回。
  4. 汇编_列表: 一个不寻常的词的组合被称为搭配。Collocation_list函数返回一个默认大小为2的搭配词列表。
  5. 分散图:NLTK中的分散图是用来直观地显示单词在文本语料库中的位置和出现次数的。
  6. Similar : NLTK的Similar函数接收一个输入词,并返回文本中出现在类似范围内的其他词。
  7. common_context : common_contexts函数允许我们只检查两个或多个词所共享的语境。

文本预处理

如果我们对数据应用几个预处理步骤,我们可以将文本数据转化为机器学习算法所使用的数字特征。没有必要对每个问题都应用所有的预处理步骤。这取决于问题领域和问题本身。

让我们看看Python是如何处理文本预处理的。我们将在这里使用NLTK(Natural language toolkit)库。

1.文本小写 - 删除数字

我们对文本进行小写,以减少我们文本数据的词汇量。

我们应该删除数字或者将这些数字转换成文本表示。我们使用正则表达式(re)来删除数字。

如何用NLTK(自然语言工具包)进行文本预处理?

 

你也可以将数字转换为文字。这可以通过使用inflect库来完成。

如何用NLTK(自然语言工具包)进行文本预处理?

 

2.删除标点符号

我们删除标点符号,是因为我们不会有同一个词的不同形式。如果我们不删除标点符号,那么been, been, and been! 将被分开处理。

如何用NLTK(自然语言工具包)进行文本预处理?

 

3.删除默认的停止词

那些对句子的意思没有增加任何内容的词是停止词。因此,在不改变意义的情况下,删除它们是安全的。我们可以通过使用NLTK的止损词来移除文本中的止损词,并通过使用这些止损词来返回一个单词标记的列表。

如何用NLTK(自然语言工具包)进行文本预处理?

 

4.词干化

词干化是我们获得一个词的词根形式的过程。词根或词干是添加词缀(如-ed、-ize)的部分。词干是通过去除单词的前缀和后缀而产生的。词干的结果可能不是一个实际的词。

比如说。

Mangoes — -> Mango
Boys ---> Boy
going ---> go

如果我们的句子不在标记中,那么我们需要将其转换为标记。在我们将文本字符串转换为标记后,我们可以将这些词的标记转换成它们的词根形式。这三种方法是波特干法、雪球干法和兰卡斯特干法。我们通常使用其中的波特干法。

如何用NLTK(自然语言工具包)进行文本预处理?

 

5.词法处理

词根化和词缀化之间的唯一区别是,词缀化确保词根属于该语言。词缀化将使我们能够提取有效的词。在NLTK(Natural language Toolkit)中,我们使用WordLemmatizer来获取单词的词法。我们还需要为词法处理提供一个上下文。因此,我们把pos(part-of-speech)作为一个参数。

如何用NLTK(自然语言工具包)进行文本预处理?

 

6.语篇(POS)标签

你可以通过观察下面的例子来了解语篇的情况。每个词在句子中都有不同的语境和语义。这些词之间的关系是基本的自然语言处理(NLP)模型,如词包(bow)所不能识别的。我们的系统使用pos标签,根据数据中的上下文为一个词分配一个pos标签。

如何用NLTK(自然语言工具包)进行文本预处理?

 

在上述例子中,NNP代表专有名词,PRP代表人称名词,IN为介词。我们可以使用Penn Treebank标签集获得所有细节的pos标签。

  • CC协调连词
  • CD 心数
  • DT 限定词
  • EX 存在性有(如:"有"......把它想成 "存在")。
  • FW 外来词
  • IN 介词/从属连词
  • JJ 形容词'大'。
  • JJR 形容词,比较级'更大'。
  • JJS 形容词,最高级的 "最大"。
  • LS 列表标记 1)
  • MD 情态词 could, will
  • NN名词,单数 "桌子"。
  • NNS名词复数'书桌'。
  • NNP专有名词,单数'Harrison'。
  • NNPS专有名词,复数'美国人'。
  • PDT 谓语'所有的孩子'。
  • POS占有式结尾父母的
  • PRP 人称代词 I, he, she
  • PRP$占有式代词my, his, hers
  • RB副词非常,默示。
  • RBR副词,比较级更好
  • RBS副词,最高级的最好
  • RP粒子 放弃
  • TO,去'到'商店。
  • UH 感叹词,Errrrrrrrm
  • VB动词,基本形式take
  • VBD动词,过去式take
  • VBG 动词,动名词/现在分词taking
  • VBN动词,过去分词take
  • VBP动词, 单数现在时, 非第三人称服用
  • VBZ动词,第三人称单数现在时服用
  • WDT wh-determiner which
  • WP wh-pronoun who, what
  • WP$ 占有式wh-pronoun whose
  • WRB wh-abverb where, when

7.了解Regex

作为一名软件开发人员,你可能已经多次遇到过正则表达式,并多次被这些令人生畏的字符组所困扰,就像这样分组。

你可能想知道这到底是怎么回事?

正则表达式(Regx或RegExp)在提高你的算法水平方面非常有用,这将使你成为一个更好的问题解决者。一开始,Regx的结构可能让人望而生畏,但一旦你掌握了所有的模式并在工作中正确地实施它们,就会有很大的收获。

什么是RegEx,为什么它很重要?

了解Regex

作为一个软件开发者,你很可能经常遇到正则表达式,并被这些看似无穷无尽的字符集弄得不知所措。

你想了解更多这方面的信息吗?

RegEx和RegX对于加强你的算法游戏和提高你的问题解决能力是非常好的。最初,Regx的结构可能看起来令人生畏,但一旦你掌握了所有的模式并将其纳入你的工作,它就会带来很大的收获。

什么是RegEx,为什么它很重要?

Regex或我们称之为正则表达式,它是一种类型的对象,将帮助你通过搜索文本从任何字符串数据中提取信息,并找出你需要的东西。无论是标点符号、数字、字母,甚至是空白,RegEx将允许你检查和匹配字符串中的任何字符组合。

例如,假设你需要匹配一个电子邮件地址或安全号码的格式。你可以利用RegEx来检查文本字符串中的模式,并使用它来替换另一个子串。

例如,RegEx可以告诉程序从字符串中搜索特定的文本,然后打印出相应的输出。表达式可以包括文本匹配、单词的重复、分支、模式组合。

Python通过库支持RegEx。在RegEx中支持各种东西,如标识符、修饰符和空白处。

如何用NLTK(自然语言工具包)进行文本预处理?

 

我们使用re.findall()模块是当你想迭代文件的行数时,它会一次性地列出所有的匹配。在这个例子中,我们想从列表中获取电子邮件地址,我们想从列表中获取所有的电子邮件,我们使用re.findall()方法。

如何用NLTK(自然语言工具包)进行文本预处理?

来源:开发社区

如何用NLTK(自然语言工具包)进行文本预处理?

 

如何用NLTK(自然语言工具包)进行文本预处理?

 

更多内容可以看这里:深度学习的发展史

手机互联网第一神卡:100多款APP应用免流的流量卡,免费送上门,优惠活动中~~~咨询客服专员!!!

咨询客服专员

抢沙发坐
  • 全部评论(0
    快来抢占沙发

抖音快手 热门资源 Site 最牛网 娱乐大家 超级最牛 世界之最 最排行榜 最牛发明 吉尼斯最 中国十大 世界十大 最奇葩事 最牛视图 流量套餐

免费领取,点我 -- 热门手机app免流量抖音、快手 、腾讯、B站、王者吃鸡 →手机靓号,点我 豹子号、顺子号、情侣号、老板号、生日号、车牌号、心水号、吉祥号
Copyright © 2008-2021 ;史上最牛,每日牛谈资讯.
内容,广告,资源,产品,合作QQ:569400131
粤ICP备13064609号-2