专栏首页深度学习自然语言处理【NLTK基础】一文轻松使用NLTK进行NLP任务(附视频)

【NLTK基础】一文轻松使用NLTK进行NLP任务(附视频)

阅读大概需要6分钟

转载自:AI算法之心

NLTK作为文本处理的一个强大的工具包,为了帮助NLPer更深入的使用自然语言处理(NLP)方法。本公众号开更Natural Language Toolkit(即NLTK)模块的“ Natural Language Processing”教程系列。

NLTK在文本领域堪称网红届一姐的存在,可以帮助在文本处理中减少很多的麻烦,比如从段落中拆分句子,拆分单词,识别这些单词的词性,突出显示主要的topic,甚至可以帮助机器理解文本的全部内容,在本系列中,我们将主要讨论观点挖掘和情感分析领域。

在之后学习NLTK的过程中,我们将主要学习以下内容:

  • 将文本切分成句子或者单词
  • NLTK命名实体识别
  • NLTK文本分类
  • 如何将Scikit-learn (sklearn)和NLTK结合使用
  • 使用Twitter执行实时,流式传输,情感分析
  • .......

欢迎大家持续关注“AI算法之心

在学习NLTK之前,当然是NLTK的安装。在安装NLTK之前,首先需要安装Python

这里就此略过......

注意:请安装python3的环境

接下来就是安装NLTK3,最简单的安装NLTK模块的方法是使用pip。

这里针对Linux(Windows和Mac os应该也差不多,笔者太穷,买不起Mac,笔者就不尝试了......)

pip install nltk

接下来,我们需要为NLTK安装一些组件。通过通常的方式(jupyter里面也可以哦)打开python并输入:

import nltk
nltk.download()

一般地,GUI会像这样弹出,只有红色而不是绿色:

GUI界面

选择下载所有软件包的“all”,然后单击“download”。这将提供所有标记器,分块器,其他算法以及所有语料库。如果空间有限,可以选择手动选择下载所需要的内容。NLTK模块将占用大约7MB,整个nltk_data目录将占用大约1.8GB,其中包括分块器,解析器和语料库。

如果没有上述界面,可以通过命令行下载

import nltk
nltk.download()
d (for download)
all (for download everything)

这样一来,就可以下载所有内容。

安装完成后,下面我们来简单的了解一些相关知识。下面举个例子,说明如何使用NLTK模块,比如将一段话按照句子粒度划分:

from nltk.tokenize import sent_tokenize, word_tokenize
EXAMPLE_TEXT = "Hello Mr. Smith, how are you doing today? The weather is great, and Python is awesome. The sky is pinkish-blue. You shouldn't eat cardboard."
print(sent_tokenize(EXAMPLE_TEXT))

最初,或许你会认为通过单词或句子之类的标记进行标记是一件微不足道的事情。对于很多句子来说都可以。第一步可能是做一个简单的.split('.'),或按句点和空格分隔。然后,也许会引入一些正则表达式以"."," "和大写字母(针对英文语料)分隔。问题是像"Mr. Smith"这样的事情会带来麻烦,还有许多其他事情。

另外,按单词拆分也是一个挑战,尤其是在考虑像我们这样的串联这样的事情时。NLTK将会继续前进,并且通过这种看似简单但非常复杂的操作在文本处理的时候节省大量时间。

上面的代码将输出句子,分为句子列表。

['Hello Mr. Smith, how are you doing today?', 'The weather is great, and Python is awesome.', 'The sky is pinkish-blue.', "You shouldn't eat cardboard."]

下面我们将这段话按照词的划分试试:

print(word_tokenize(EXAMPLE_TEXT))

现在我们得到的输出是:

['Hello', 'Mr.', 'Smith', ',', 'how', 'are', 'you', 'doing', 'today', '?', 'The', 'weather', 'is', 'great', ',', 'and', 'Python', 'is', 'awesome', '.', 'The', 'sky', 'is', 'pinkish-blue', '.', 'You', 'should', "n't", 'eat', 'cardboard', '.']

这里有几件事要注意。首先,请注意,标点符号被视为单独的词。另外,请注意将单词“shouldn't”分为“should”和“n't”。最后,“pinkish-blue”确实被当作它要变成的"one word"。太酷了!

现在,看看这些标记化的单词,我们必须开始考虑下一步可能是什么。我们开始思考如何通过看这些单词来产生意义。我们可以清楚地想到为许多单词赋予价值的方法,但是我们也看到了一些基本上毫无价值的单词。这些是停用词(stopwords)的一种形式,我们也可以处理。

本文分享自微信公众号 - 深度学习自然语言处理(zenRRan)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【干货】基于pytorch的CNN、LSTM神经网络模型调参小结

    Demo 这是最近两个月来的一个小总结,实现的demo已经上传github,里面包含了CNN、LSTM、BiLSTM、GRU以及CNN与LSTM、BiLSTM...

    zenRRan
  • 【NLP】doc2vec原理及实践

    链接:https://blog.csdn.net/John_xyz/article/details/79208564

    zenRRan
  • 如何用简单易懂的例子解释隐马尔可夫模型?(入门篇)

    因为文章总共超过5W字,所以我分为两部分,今天这是第一部分,先自己大致了解下什么是HMM,明天将会是具体的通俗公式讲解。加油,每天进步一丢丢O.O

    zenRRan
  • 在Python中使用NLTK建立一个简单的Chatbot

    也许你听说过Duolingo(多邻国):一种流行的语言学习应用程序,它可以通过游戏来练习一种新的语言。由于其创新的外语教学风格,它非常受欢迎。它的思想很简单:每...

    AiTechYun
  • 算法之二分查找(上)

    二分查找在平时的生活中也挺常用的,比如说以前玩的猜数游戏,每次都取中间数,然后得知是大了,还是小了,这个例子也就是二分查找。

    信安本原
  • 教程 | 用数据玩点花样!如何构建skim-gram模型来训练和可视化词向量

    机器之心
  • 2014年移动、社交和云加速企业变革

    移动、社交和云,这三种业务和技术力量今年很有可能是催动企业的变革。这些领域的进步不会直接影响到流程,或者至少不应该影响流程,除非有令人信服的理由让他们这样做...

    静一
  • XCTR-Hacking-Tools:一款多合一功能的信息收集工具

    除此之外,你还可以在设置区域中更新用户代理以及代理信息,或者更新URL、代理、项目名、字典和线程数等等。

    FB客服
  • 管理软件“移动第二”还能活多久?移动优先成创业者杀手锏

    可能说这句话有些过头,就像此前有网友说过,面对移动时代不转型必死,转型也未必保证不死,因为不是被趋势干死,就是死在顺应趋势的路上。 T哥听到移动优先的策略还...

    人称T客
  • 数据科学18 | 统计推断-渐近性

    渐近性(asymptopia)是样本量接近于无穷大时统计行为的一个术语。渐近统计即大样本统计主要研究当样本量n→∞时统计方法的有关渐进性质。渐近性有助于简单的统...

    王诗翔呀

扫码关注云+社区

领取腾讯云代金券