用NLTK进行NLP任务的文本预处理
自然语言处理(NLP)
自然语言处理的目标是建立能够理解和回应文本或语音数据的机器--并像人类一样用自己的语言和语音作出回应。
什么是自然语言处理?
在计算机科学中,自然语言处理(NLP)是人工智能(AI)的一个分支,它涉及到让计算机具有像人类一样理解文本和口语的能力。
NLP的目标是将计算语言学--基于规则的人类语言建模--与机器学习、统计学和深度学习技术相结合。计算机现在可以处理文本或语音数据形式的人类语言,使其能够理解其完整的含义,包括说话者的意图和情绪。
自然语言处理领域使计算机程序能够在不同语言之间翻译文本,实时响应,它可以总结大量的文本并响应口语命令。你很可能已经以语音控制的GPS系统、数字助理、语音到文本听写软件、客户服务聊天机器人和其他消费者便利的形式与NLP进行了互动。然而,自然语言处理在企业解决方案中也发挥着越来越重要的作用,它可以提高员工的生产力,简化关键任务的工作流程,并简化业务运营。
NLP的一些应用
自然语言工具包(NLTK)
有许多Python库和工具用于处理NLP任务。自然语言工具包,或称NLTK,是一个库、程序和教育资源的集合,用于建立基于自然语言的NLP程序。
除了支持一些NLP任务的库之外,NLTK还提供了支持子任务的库,如句子解析、单词分割、词干化、词根化(将单词修剪到词根的过程)和标记化(将短语、句子、段落和段落缩减为标记以使系统更容易理解的过程)。还有许多用于实现语义推理的库,它允许用户根据从文本中提取的事实得出逻辑结论。
一些非常有用的功能
文本预处理
如果我们对数据应用几个预处理步骤,我们可以将文本数据转化为机器学习算法所使用的数字特征。没有必要对每个问题都应用所有的预处理步骤。这取决于问题领域和问题本身。
让我们看看Python是如何处理文本预处理的。我们将在这里使用NLTK(Natural language toolkit)库。
1.文本小写 - 删除数字
我们对文本进行小写,以减少我们文本数据的词汇量。
我们应该删除数字或者将这些数字转换成文本表示。我们使用正则表达式(re)来删除数字。
你也可以将数字转换为文字。这可以通过使用inflect库来完成。
2.删除标点符号
我们删除标点符号,是因为我们不会有同一个词的不同形式。如果我们不删除标点符号,那么been, been, and been! 将被分开处理。
3.删除默认的停止词
那些对句子的意思没有增加任何内容的词是停止词。因此,在不改变意义的情况下,删除它们是安全的。我们可以通过使用NLTK的止损词来移除文本中的止损词,并通过使用这些止损词来返回一个单词标记的列表。
4.词干化
词干化是我们获得一个词的词根形式的过程。词根或词干是添加词缀(如-ed、-ize)的部分。词干是通过去除单词的前缀和后缀而产生的。词干的结果可能不是一个实际的词。
比如说。
Mangoes — -> Mango
Boys ---> Boy
going ---> go
如果我们的句子不在标记中,那么我们需要将其转换为标记。在我们将文本字符串转换为标记后,我们可以将这些词的标记转换成它们的词根形式。这三种方法是波特干法、雪球干法和兰卡斯特干法。我们通常使用其中的波特干法。
5.词法处理
词根化和词缀化之间的唯一区别是,词缀化确保词根属于该语言。词缀化将使我们能够提取有效的词。在NLTK(Natural language Toolkit)中,我们使用WordLemmatizer来获取单词的词法。我们还需要为词法处理提供一个上下文。因此,我们把pos(part-of-speech)作为一个参数。
6.语篇(POS)标签
你可以通过观察下面的例子来了解语篇的情况。每个词在句子中都有不同的语境和语义。这些词之间的关系是基本的自然语言处理(NLP)模型,如词包(bow)所不能识别的。我们的系统使用pos标签,根据数据中的上下文为一个词分配一个pos标签。
在上述例子中,NNP代表专有名词,PRP代表人称名词,IN为介词。我们可以使用Penn Treebank标签集获得所有细节的pos标签。
7.了解Regex
作为一名软件开发人员,你可能已经多次遇到过正则表达式,并多次被这些令人生畏的字符组所困扰,就像这样分组。
你可能想知道这到底是怎么回事?
正则表达式(Regx或RegExp)在提高你的算法水平方面非常有用,这将使你成为一个更好的问题解决者。一开始,Regx的结构可能让人望而生畏,但一旦你掌握了所有的模式并在工作中正确地实施它们,就会有很大的收获。
什么是RegEx,为什么它很重要?
了解Regex
作为一个软件开发者,你很可能经常遇到正则表达式,并被这些看似无穷无尽的字符集弄得不知所措。
你想了解更多这方面的信息吗?
RegEx和RegX对于加强你的算法游戏和提高你的问题解决能力是非常好的。最初,Regx的结构可能看起来令人生畏,但一旦你掌握了所有的模式并将其纳入你的工作,它就会带来很大的收获。
什么是RegEx,为什么它很重要?
Regex或我们称之为正则表达式,它是一种类型的对象,将帮助你通过搜索文本从任何字符串数据中提取信息,并找出你需要的东西。无论是标点符号、数字、字母,甚至是空白,RegEx将允许你检查和匹配字符串中的任何字符组合。
例如,假设你需要匹配一个电子邮件地址或安全号码的格式。你可以利用RegEx来检查文本字符串中的模式,并使用它来替换另一个子串。
例如,RegEx可以告诉程序从字符串中搜索特定的文本,然后打印出相应的输出。表达式可以包括文本匹配、单词的重复、分支、模式组合。
Python通过库支持RegEx。在RegEx中支持各种东西,如标识符、修饰符和空白处。
我们使用re.findall()模块是当你想迭代文件的行数时,它会一次性地列出所有的匹配。在这个例子中,我们想从列表中获取电子邮件地址,我们想从列表中获取所有的电子邮件,我们使用re.findall()方法。
来源:开发社区
更多内容可以看这里:深度学习的发展史
最新2022-12-07
最新2022-11-23
最新2022-11-16
最新2022-11-04
最新2022-10-25
最新2022-10-11
最新2022-09-21
最新2022-09-15
最新2022-09-05
最新2022-08-28
最热2017-01-19
最热2021-11-03
最热2017-01-19
最热2017-12-18
最热2015-09-28
最热2021-09-08
最热2021-01-28
最热2021-02-05
最热2016-02-21
最热2016-02-21
最热2015-08-30
最热2016-03-08
最热2016-04-12
最热2022-02-15
最热2016-08-17
最热2020-10-13
最热2017-01-12
最热2015-10-12
最热2021-08-10
最热2017-01-12
抖音快手 热门资源 Site 最牛网 娱乐大家 超级最牛 世界之最 最排行榜 最牛发明 吉尼斯最 中国十大 世界十大 最奇葩事 最牛视图 流量套餐