点击上方,选择星标置顶,每天给你送干货

阅读大概需要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)的一种形式,我们也可以处理。下一篇我们将介绍NLTK中的stopwords,欢迎关注哦!!!


投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

记得备注呦


让更多的人知道你“在看”

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

  1. NLTK基础 | 一文轻松使用NLTK进行NLP任务(附视频)

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

  2. 独家 | 一文读懂自然语言处理NLP(附学习资料)

    前言 自然语言处理是文本挖掘的研究领域之一,是人工智能和语言学领域的分支学科.在此领域中探讨如何处理及运用自然语言. 对于自然语言处理的发展历程,可以从哲学中的经验主义和理性主义说起.基于统计的自然语 ...

  3. 一文入门SpringBoot分布式任务中间件开发 附视频讲解 (手把手教你开发和使用中间件)

    微信公众号:bugstack虫洞栈 | 沉淀.分享.成长,让自己和他人都能有所收获! 分布式任务DcsSchedule中间件,Github地址:https://github.com/fuzhengwe ...

  4. 《NLTK基础教程——用NLTK和Python库构建机器学习应用》——2.11 小结

    本节书摘来异步社区<NLTK基础教程--用NLTK和Python库构建机器学习应用>一书中的第2章,第2.11节,作者:Nitin Hardeniya,更多章节内容可以访问云栖社区&quo ...

  5. 《NLTK基础教程——用NLTK和Python库构建机器学习应用》——2.3 语句分离器

    本节书摘来异步社区<NLTK基础教程--用NLTK和Python库构建机器学习应用>一书中的第2章,第2.3节,作者:Nitin Hardeniya,更多章节内容可以访问云栖社区" ...

  6. 《NLTK基础教程——用NLTK和Python库构建机器学习应用》——2.8 罕见词移除

    本节书摘来异步社区<NLTK基础教程--用NLTK和Python库构建机器学习应用>一书中的第2章,第2.8节,作者:Nitin Hardeniya,更多章节内容可以访问云栖社区" ...

  7. NLTK基础基础教程学习笔记(十四)

    对于文本分类,最简单的定义就是基于文本内容来对其进行分类.通常情况算法是根据数字/变量特征来写的. 先从https://archive.ics.uci.edu/ml/datasets/SMS+SPam ...

  8. NLTK01 《NLTK基础教程--用NLTK和Python库构建机器学习应用》

    01 关于NLTK的认知 很多介绍NLP的,都会提到NLTK库.还以为NLTK是多牛逼的必需品.看了之后,感觉NLTK对实际项目,作用不大.很多内容都是从语义.语法方面解决NLP问题的.感觉不太靠谱. ...

  9. python和nltk自然语言处理书评_Python和NLTK自然语言处理

    模块1 NLTK基础知识 第 1章 自然语言处理简介 3 1.1 为什么要学习NLP 4 1.2 从Python的基本知识开始 7 1.2.1 列表 7 1.2.2 自助 8 1.2.3 正则表达式 ...

  10. 在.NET Core中使用MongoDB明细教程(1):驱动基础及文档插入

    MongoDB,被归类为NoSQL数据库(其实我更觉得MongoDb是介于关系型数据库和非关系型数据库之间,此外,在我看来在很多场景中MongoDb都可以取代关系型数据库.),是一个以类JSON格式存 ...

最新文章

  1. JAVA CP936编码转utf8_对一个目录的文件从cp936转换成utf-8
  2. 四叶草社交平台——十天冲刺(5)
  3. 在ie6下实现position-fixed的效果--------续集---对联效果(02)
  4. java 并发锁_Java并发教程–重入锁
  5. 如何移动当前正在使用的文件
  6. SharePoint REST API - 一个请求批量操作
  7. [Web开发] 如何改变IE滚动条的颜色
  8. linux wifi问题,Ubuntu下wifi问题解决
  9. 画思维导图一定要用计算机来完成吗,一起来画思维导图
  10. 尽力全面的C++内存管理
  11. powershell牛逼啊.
  12. 我是如何用一行代码表白学妹~❤520情人节送女朋友的3D樱花雨相册礼物❤~(程序员表白专属)...
  13. ADC采样时间、采样周期、采样频率计算方法
  14. 简易的js获取星期几的两种方法
  15. 经典算法——韩信点兵问题的简单算法
  16. 嵌入式Linux驱动开发9---WTD驱动程序以及测试过程记录
  17. 人机交互——人机交互设备
  18. TI OMAP4XXX 协议处理器(4460应用于三星、华为等手机)
  19. 迅游加速器对ipv6访问的影响
  20. 黄金百战穿金甲,搞懂数据结构与算法!!!送福利

热门文章

  1. 【JVM】上帝视角看JVM内存模型,分而治之论各模块详情
  2. 表单元素内容禁用拼写检查
  3. 【转载】PHP.INI配置:Session配置详细说明教程
  4. Post传值时间特殊字符处理比如 p/p当作参数传递到后台
  5. 【翻译】优秀网站的10个技巧
  6. shell脚本基础练习题
  7. mysqljoin的原理和优化
  8. 安装VisualSVN Server时候,端口号冲突
  9. 【XLL 框架库函数】 TempInt/TempInt12
  10. Coursera ML 逻辑回归与正则化