NLTK在自然语言处理
nltk-data.zip
本文主要是总结最近学习的论文、书籍相关知识,主要是Natural Language Pracessing(自然语言处理,简称NLP)和Python挖掘维基百科Infobox等内容的知识。
此篇文章主要参考书籍《Natural Language Processing with Python》Python自然语言处理,希望对大家有所帮助。书籍下载地址:
官方网页版书籍:http://www.nltk.org/book/
CSDN下载地址:http://download.csdn.net/detail/eastmount/8601705
一. 自然语言处理简单介绍
所谓“自然语言”,是指人们日常交流使用的语言,如英语、印地语随着不断演化,很难用明确的规则来刻画。
从广义上,“自然语言处理”(Natural Language Processing简称NLP)包含所有计算机对自然语言进行的操作,从最简单的通过计数词出现的频率来比较不同的写作风格到最复杂的完全“理解”人所说的话。
基于NLP的技术应用日益广泛,如手机和手持电脑支持输入法联想提示(predictive text)和手写识别、网络搜索引擎能搜到非结构化文本中的信息、机器翻译能把中文文本翻译成西班牙文等。
通过使用Python程序设计语言和自然语言工具包(NLTK,Natural Language Toolkit)的开源函数库,本书包括自然语言处理的实际经验。本书可以自学,也可以作为自然语言处理或计算机语言学课程的教科书,或是人工智能、文本挖掘、语料库语言学课程的补充读物。
本书为什么使用Python呢?
Python是一种简单功能强大的变成语言,非常适合处理语言数据。
作为解释语言,Python便于交互式变成;作为面向对象语言,Python允许数据和方法被方面的封装和重用。作为动态语言,Python允许属性等程序运行时才被添加到对象,允许变量自动类型转换,提高开发效率。Python自带强大的标准库,包括图像编程、数值处理和网络连接等组件。
章节介绍包括:如何使用很短的Python程序分析感兴趣的文本信息(1-3章)、结构化程序设计章节(第4章)、语言处理的主要内容:标注、分类和信息提取(5-7章)、探索分析句子、识别句法结构和构建表示句意的方法(8-10章)、最后一章讲述如何有效管理语言数据(第11章)。
二. NLTK环境配置
首先安装Python,可在官网https://www.python.org/下载。
Python对用户友好的一个方式是你可以在交互式解释器运行你的程序,通过一个简单的交互式开发坏境(Interactive DeveLopment Environment,简称IDLE)的图形接口访问Python解释器。后面配置NLTK就是在IDLE环境下进行。
然后下载NLTK,资料如下:
官网链接:http://www.nltk.org/
安装步骤:http://www.nltk.org/install.html
下载地址:https://pypi.python.org/pypi/nltk
由于我的电脑是windows系统,安装的步骤如下图所示:
安装NLTK3.0
测试NLTK输入代码:
>>> import nltk
>>> nltk.download()
如下图所示:
下载NLTK图书集:使用nltk.download()浏览可用的软件包,下载器上的Collections选项卡显示软件包如何被打包分组;选择book标记所在行,获取本书的例子和联系所需的全部数据。可参考资料。
点击”Download“后安装需要一定时间,最后选项book变成”Installed“:
同时如果无法下载,你可以对自己感兴趣的选择双击进行下载:
当数据下载到机器后,你可以使用Python解释器加载其中一些,在Python提示符后输入”from nltk.book import *”告诉解释器从NLTK的book加载所有的文本,输入text1找到相应的文本名字。如下图所示:
此时你的NLTK配置成功。
三. 自然语言处理常用方法
1.concordance函数
功能:搜索文本,在text1中输入函数concordance(),查找《白鲸记》中的词语monstrous。
>>> text1.concordance("monstrous")
提示:可以通过快捷键Alt+P获取之前输入的命令,共搜索11个匹配结果。
2.similar函数
功能:通过函数similar()可以查询括号中相关词在上下文中相似的词语。词语索引使我们看到此的上下文,如monstrous出现的上下文,如the_pictures和the_size。
>>> text1.similar("monstrous")
可以发现与monstrous(丑陋的)相似的大部分都是形容词:curious(好奇的)、impalpable(无形的)、perilous(危险的)、lazy(懒惰的)等。
我的怀疑应该是和上下文语义结构有关,却没有“理解”它具体的词义。如:the Monstrous Pictures、more monstrous stories、a monstrous size。很显然monstrous充当修饰名词的形容词结构——冠词+monstrous+名词。
3.common_contexts函数
功能:函数common_contexts允许我们研究两个或两个以上的词共同的上下文,如monstrous和very。
>>> text2.common_contexts(["monstrous","very"])
a_pretty is_pretty a_lucky am_glad be_glad
必须用方括号和圆括号把这些词括起来,中间用逗号分隔。个人理解:似乎similar是与之相关的词语,而common_contexts是相似的结构。
4.generate函数
功能:通过函数generate()产生一些随机文本自动生成文章。
>>> text3.generate()
注意:第一次运行此命令时,由于要搜集词序列的统计信息而执行得比较慢,每次运行它,输出的文本都会不同。虽然文本是随机的,但是它重用了源文本中的词和短语,从而使我们能够感觉到它的风格和内容。
报错:”AttributeError: 'Text' object has noattribute 'generate'“其原因参照StackFlow:
理想输出结果如下:
总结:最后希望这篇入门文章对大家有所帮助,如果有错误或不足之处,亲海涵!后面还会深入的讲解自然语言处理和Python挖掘相关知识;同时包括NLTK的更广泛应用及理解。建议大家购买正版书籍阅读,挺不错的书籍《Python自然语言处理》作者:Steven Bird, Ewan Klein & Edward Loper。
NLTK在自然语言处理方面很方便, 具体介绍官网即可.下面记录了安装以及手动载入nltk-data的过程.
安装NLTK
sudo pip install -U nltk
即可
在python
的终端里面,输入:import nltk
如果不报错即表明安装成功.
下载nltk-data 载入
自动下载安装
import nltk
nltk.download()手动下载载入
由于在国外的网站下,下载近300M的语料数据,实在太慢了,于是就打算单独下载nlkt-data
国内有人放到了百度网盘打开连接,
下载之后,问题是把这些数据放到那里, 它会自己检测,可以通过下面import
检测到目录:
from nltk.book import *
结果会报错误,其中有一段如:
LookupError:
**********************************************************************
Resource u'corpora/gutenberg' not found. Please use the NLTK
Downloader to obtain the resource: >>> nltk.download()
Searched in:
- '/home/shomy/nltk_data'
- '/usr/share/nltk_data'
- '/usr/local/share/nltk_data'
- '/usr/lib/nltk_data'
- '/usr/local/lib/nltk_data'
**********************************************************************
一目了然了~ 我们只需要把下载下来的nltk-data.zip
解压到以上的一个目录,就可以了,
In [3]: from nltk.book import *
*** Introductory Examples for the NLTK Book ***
Loading text1, ..., text9 and sent1, ..., sent9
Type the name of the text or sentence to view it.
Type: 'texts()' or 'sents()' to list the materials.
text1: Moby Dick by Herman Melville 1851
text2: Sense and Sensibility by Jane Austen 1811
text3: The Book of Genesis
text4: Inaugural Address Corpus
text5: Chat Corpus
text6: Monty Python and the Holy Grail
text7: Wall Street Journal
text8: Personals Corpus
text9: The Man Who Was Thursday by G . K . Chesterton 1908
这样就可以使用nltk-data
了
NLTK在自然语言处理的更多相关文章
- NLTK与自然语言处理基础
NLTK (Natural Language Toolkit) NTLK是著名的Python自然语言处理工具包,但是主要针对的是英文处理.NLTK配套有文档,有语料库,有书籍. NLP领域中最常用的一 ...
- 《Python自然语言处理》
<Python自然语言处理> 基本信息 作者: (美)Steven Bird Ewan Klein Edward Loper 出版社:人民邮电出版社 ISBN:97871153 ...
- 转-Python自然语言处理入门
Python自然语言处理入门 原文链接:http://python.jobbole.com/85094/ 分享到:20 本文由 伯乐在线 - Ree Ray 翻译,renlytime 校稿.未经许 ...
- 探索 Python、机器学习和 NLTK 库 开发一个应用程序,使用 Python、NLTK 和机器学习对 RSS 提要进行分类
挑战:使用机器学习对 RSS 提要进行分类 最近,我接到一项任务,要求为客户创建一个 RSS 提要分类子系统.目标是读取几十个甚至几百个 RSS 提要,将它们的许多文章自动分类到几十个预定义的主题领域 ...
- 易百教程人工智能python补充-NLTK包
自然语言处理(NLP)是指使用诸如英语之类的自然语言与智能系统进行通信的AI方法. 如果您希望智能系统(如机器人)按照您的指示执行操作,希望听取基于对话的临床专家系统的决策时,则需要处理自然语言. N ...
- [转]大数据时代,python竟是最好的语言?
随着大数据疯狂的浪潮,新生代的工具Python得到了前所未有的爆发.简洁.开源是这款工具吸引了众多粉丝的原因.目前Python最热的领域,非数据分析和挖掘莫属了.从以Pandas为代表的数据分析领 ...
- 156个Python网络爬虫资源
本列表包含Python网页抓取和数据处理相关的库. 网络相关 通用 urllib - 网络库(标准库) requests - 网络库 grab - 网络库(基于pycurl) pycurl - 网络库 ...
- Python技术之书籍汇总
近日,一直在学习Python,发现有关的书籍还是很多值得一读的,所以在此总结一下.以后慢慢去研读吧!!! Python入门 <Python编程快速上手——让繁琐工作自动化> 作者: [美] ...
- 学习笔记之Python全栈开发/人工智能公开课_腾讯课堂
Python全栈开发/人工智能公开课_腾讯课堂 https://ke.qq.com/course/190378 https://github.com/haoran119/ke.qq.com.pytho ...
随机推荐
- 如何写一个自己的渣渣PHP框架
原文链接:https://www.opqnext.com/2017/01/18/%E5%A6%82%E4%BD%95%E5%86%99%E4%B8%80%E4%B8%AA%E8%87%AA%E5%B7 ...
- Ubuntu屏幕录制工具【转】
本文转载自:https://blog.csdn.net/Draonly/article/details/74898031 原文参考:https://www.sysgeek.cn/simplescree ...
- [转][修]sprintf()函数:将格式化的数据写入字符串
头文件:#include <stdio.h>功能:用于将格式化的数据写入字符串 原型:int sprintf(char *str, char * format [, argument, . ...
- /etc/rc.local 与 /etc/profile
1.用户自己源码安装的软件组要自启动,可以在/etc/rc.local中配置,rc.loacl 是rc.d/rc.local的一个软连接.rc.local -> rc.d/rc.local 2. ...
- Android -- Activity的生命周期,Activity四种启动模式 Standard, SingleTop,SingleTask,SingleInstance
1. 示例图 . 这七个方法定义了Activity的完整生命周期.实现这些方法可以帮助我们监视其中的三个嵌套生命周期循环: Activity的完整生命周期自第一次调用onCreate()开始,直至调 ...
- 使用javascript模拟常见数据结构(一)
数据结构和算法可算是每个程序员的必备技能,而随着前端工作的深入,对于数据结构的知识真的是越来越需要掌握了.好了,于是乎最近看了<javascript数据结构和算法>,算是对于后面的使用C语 ...
- Android 引用资源
比如在 strings.xml 中找到的 Hello world!字符串,我们有两种方式可以引用它: 1. 在代码中通过 R.string.hello_world 可以获得该字符串的引用: 2. 在 ...
- Html之网页分屏浏览
Hi! Every Body!Welcome to my blog! My name is Caiduping,I hope we learn to make progress together! ...
- kue
尝试着看英文的文档,你发现他其实并不难. https://www.npmjs.com/package/kue
- (GoRails)ActiveRecord --explain方法:(优化你的查询)
https://gorails.com/episodes/activerecord-explain?autoplay=1 比如没有加index的查询和加了index的查询,调用数据库的速度就差5倍. ...