NLTK简介

  • NLTK被称为“使用Python进行计算语言学教学和工作的绝佳工具”。 它为50多种语料库和词汇资源(如WordNet)提供了易于使用的界面,还提供了一套用于分类,标记化,词干化,标记,解析和语义推理的文本处理库。接下来然我们一起来实战学习一波~~
  • Github地址:https://github.com/nltk/nltk
  • 官方文档:http://www.nltk.org/

NLTK实战

安装:pip install nltk

1.Tokenize

import nltk
sentence = 'I love natural language processing!'
tokens = nltk.word_tokenize(sentence)
print(tokens)
['I', 'love', 'natural', 'language', 'processing', '!']

2.词性标注

tagged = nltk.pos_tag(tokens)
print(tagged)
[('I', 'PRP'), ('love', 'VBP'), ('natural', 'JJ'), ('language', 'NN'), ('processing', 'NN'), ('!', '.')]

3.命名实体识别

  • 下载模型:nltk.download('maxent_ne_chunker')
nltk.download('maxent_ne_chunker')
[nltk_data] Downloading package maxent_ne_chunker to
[nltk_data]     C:\Users\yuquanle\AppData\Roaming\nltk_data...
[nltk_data]   Unzipping chunkers\maxent_ne_chunker.zip.True
nltk.download('words')
[nltk_data] Downloading package words to
[nltk_data]     C:\Users\yuquanle\AppData\Roaming\nltk_data...
[nltk_data]   Unzipping corpora\words.zip.True
entities = nltk.chunk.ne_chunk(tagged)
print(entities)
(S I/PRP love/VBP natural/JJ language/NN processing/NN !/.)

4.下载语料库

  • 例如:下载brown
  • 更多语料库:http://www.nltk.org/howto/corpus.html
nltk.download('brown')
[nltk_data] Downloading package brown to
[nltk_data]     C:\Users\yuquanle\AppData\Roaming\nltk_data...
[nltk_data]   Package brown is already up-to-date!True
from nltk.corpus import brown
brown.words()
['The', 'Fulton', 'County', 'Grand', 'Jury', 'said', ...]

5.度量

  • percision:正确率
  • recall:召回率
  • f_measure
from nltk.metrics import precision, recall, f_measure
reference = 'DET NN VB DET JJ NN NN IN DET NN'.split()
test    = 'DET VB VB DET NN NN NN IN DET NN'.split()
reference_set = set(reference)
test_set = set(test)
print("precision:" + str(precision(reference_set, test_set)))
print("recall:" + str(recall(reference_set, test_set)))
print("f_measure:" + str(f_measure(reference_set, test_set)))
precision:1.0
recall:0.8
f_measure:0.8888888888888888

6.词干提取(Stemmers)

  • Porter stemmer
from nltk.stem.porter import *
# 创建词干提取器
stemmer = PorterStemmer()
plurals = ['caresses', 'flies', 'dies', 'mules', 'denied']
singles = [stemmer.stem(plural) for plural in plurals]
print(' '.join(singles))
caress fli die mule deni
  • Snowball stemmer
from nltk.stem.snowball import SnowballStemmer
print(" ".join(SnowballStemmer.languages))
arabic danish dutch english finnish french german hungarian italian norwegian porter portuguese romanian russian spanish swedish
# 指定语言
stemmer = SnowballStemmer("english")
print(stemmer.stem("running"))
run

7.SentiWordNet接口

  • 下载sentiwordnet词典
import nltk
nltk.download('sentiwordnet')
[nltk_data] Downloading package sentiwordnet to
[nltk_data]     C:\Users\yuquanle\AppData\Roaming\nltk_data...
[nltk_data]   Unzipping corpora\sentiwordnet.zip.True
  • SentiSynsets: synsets(同义词集)的情感值

from nltk.corpus import sentiwordnet as swn

breakdown = swn.senti_synset('breakdown.n.03')
print(breakdown)
print(breakdown.pos_score())
print(breakdown.neg_score())
print(breakdown.obj_score())
<breakdown.n.03: PosScore=0.0 NegScore=0.25>
0.0
0.25
0.75
  • Lookup(查看)
print(list(swn.senti_synsets('slow')))
[SentiSynset('decelerate.v.01'), SentiSynset('slow.v.02'), SentiSynset('slow.v.03'), SentiSynset('slow.a.01'), SentiSynset('slow.a.02'), SentiSynset('dense.s.04'), SentiSynset('slow.a.04'), SentiSynset('boring.s.01'), SentiSynset('dull.s.08'), SentiSynset('slowly.r.01'), SentiSynset('behind.r.03')]
happy = swn.senti_synsets('happy', 'a')
print(list(happy))
[SentiSynset('happy.a.01'), SentiSynset('felicitous.s.02'), SentiSynset('glad.s.02'), SentiSynset('happy.s.04')]

更多资料

  • 更多用法:http://www.nltk.org/howto/index.html
  • Github地址:https://github.com/nltk/nltk

另外,代码我已经上传github:https://github.com/yuquanle/StudyForNLP/blob/master/NLPtools/NLTKDemo.ipynb

公众号:StudyForAI(小白人工智能入门学习)

自然语言处理基础技术工具篇之NLTK相关推荐

  1. 自然语言处理基础技术工具篇之Flair

    Flair简介 Flair是最近开源的一个基于Pytorch的NLP框架,据官方github介绍,它具有以下特点: 一个功能强大的NLP库. Flair允许您将最先进的自然语言处理(NLP)模型应用于 ...

  2. 自然语言处理基础技术之语义角色标注

    今天是总结nlp基础技术的最后一篇,后面开始工具实战篇,我觉得实践对新手小白入门是相当有帮助的~~ #语义角色标注定义: 维基百科定义:Semantic role labeling, sometime ...

  3. 自然语言处理基础技术之词性标注

    声明:转载请注明出处,谢谢:https://blog.csdn.net/m0_37306360/article/details/84502176 另外,更多实时更新的个人学习笔记分享,请关注: 知乎: ...

  4. python 分词字典的词性_自然语言处理基础技术之分词、向量化、词性标注

    欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:段石石 前言 前段时间,因为项目需求, 开始接触了NLP,有感自己不是科班出身,很多东西理解不深,于是花时间再读了一些NLP的经典教程的 ...

  5. note-Linux大棚命令百篇1 Shell基础及工具篇

    1. Shell是什么 Shell的作用 UNIX/Linux系统的内核负责控制硬件.管理内存和调度任务.Shell处于用户和操作系统之间,用户可以利用Shell实现对操作系统及其内核的控制和操作.登 ...

  6. SHELL基础知识-工具篇-paste、tr

    1.paste工具 paste工具用于合并文件行 常用选项: -d:自定义间隔符,默认是tab -s:串行处理,非并行 2. tr工具 tr用于字符转换,替换和删除:主要用于删除文件中控制字符或进行字 ...

  7. c#物联网_C# 基础知识系列- 16 开发工具篇

    0. 前言 这是C# 基础知识系列的最后一个内容讲解篇,下一篇是基础知识-实战篇.这一篇主要讲解一下C#程序的结构和主要编程工具. 1. 工具 工欲善其事必先利其器,在实际动手之前我们先来看看想要编写 ...

  8. 《阿里云天池大赛赛题解析(深度学习篇)》学习笔记(1)自然语言处理基础

    自然语言处理基础 Natural Language Processing,NLP. 主要任务包括自然语言理解Natural Language Understanding,NLU和自然语言生成Natur ...

  9. 《精通QTP——自动化测试技术领航》—第1章1.5节QTP精华—对象库(上)之基础攻略篇...

    本节书摘来自异步社区<精通QTP--自动化测试技术领航>一书中的第1章1.5节QTP精华-对象库(上)之基础攻略篇,作者余杰 , 赵旭斌,更多章节内容可以访问云栖社区"异步社区& ...

  10. 电脑基础操作_学打碟基础技术 - 数码打碟篇

    学打碟最基本的基础技术也是跟随时代的科技而进化的,打碟也因为科技的发展产生了最新的变化,就是今天小编要讲的主题,数码打碟,就是如今比较主流的打碟方式之一,也是操作最便捷的,甚至有的人起初学打碟的过程中 ...

最新文章

  1. 什么是优秀管理者的第一课?【如何搞垮一个企业】
  2. 方便的boost_python
  3. Solaris 11的ip地址配置
  4. 软件设计模式—面向接口编程
  5. RHEL5.3下MRTG+SNMP的搭建
  6. 学习前端需要掌握什么基础?
  7. 2-11 支付宝集福卡_实现分析
  8. 第四章OFDM(1)
  9. 浙江大学-西湖大学联合培养博士生
  10. 串级控制MATLAB实验报告,串级控制系统实验报告.docx
  11. win10系统开启扫描仪服务器,win10怎么安装扫描仪 win10扫描仪怎么扫描
  12. 阿里平头哥发布首个产品玄铁910 但这并不是CPU
  13. 易简无人机巡检照片处理系统(一) —— 巡检作业流程
  14. 加工制造业经销商渠道管理系统:共享上下游信息,加速交易效率
  15. SAS逻辑回归之多分类
  16. 习题4-7 最大公约数和最小公倍数 (15分)
  17. 春节义务帮人写了一个《求签在线查询》(ASP)
  18. Threejs创建几何体并贴材质
  19. 图片怎么自定义裁剪?图片如何裁出想要的大小?
  20. Flink面试_001、你们公司是通过什么样的监控及保障手段来保障实时指标的质量?比如事前事中事后是怎么做的?

热门文章

  1. 第四季-专题2-U-Boot新手入门
  2. redis服务器环境下mysql实现lnmp架构缓存
  3. MyRocks之备份恢复
  4. OSWatcher使用简介
  5. Swift - 29 - 参数的默认值
  6. go的匿名函数和闭包
  7. 前端相关书籍(转摘)
  8. dwz中的table
  9. linux下的hosts文件
  10. PHP实现手机归属地查询API接口