所谓 "自然语言",是指人们日常交流使用的语言,如英语、印地语随着不断演化,很难用明确的规则来刻画。
从广义上,"自然语言处理"(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 章)。
首先安装 Python,可在官网下载。
Python 对用户友好的一个方式是你可以在交互式解释器运行你的程序,通过一个简单的交互式开发坏境(Interactive DeveLopment Environment,简称 IDLE)的图形接口访问 Python 解释器。后面配置 NLTK 就是在 IDLE 环境下进行。
然后下载 NLTK,资料如下:
官网链接:
安装步骤:
下载地址:
由于我的电脑是 windows 系统,安装的步骤如下图所示:
如下图所示:
- >>> import nltk >>> nltk.download()
下载 NLTK 图书集:使用 nltk.download() 浏览可用的软件包,下载器上的 Collections 选项卡显示软件包如何被打包分组;选择 book 标记所在行,获取本书的例子和联系所需的全部数据。可参考。
当数据下载到机器后,你可以使用 Python 解释器加载其中一些,在 Python 提示符后输入 "from nltk.book import *" 告诉解释器从 NLTK 的 book 加载所有的文本,输入 text1 找到相应的文本名字。如下图所示:
功能:搜索文本,在 text1 中输入函数 concordance(),查找《白鲸记》中的词语 monstrous。
提示:可以通过快捷键 Alt+P 获取之前输入的命令,共搜索 11 个匹配结果。
- >>> text1.concordance("monstrous")
功能:通过函数 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 + 名词。
功能:函数 common_contexts 允许我们研究两个或两个以上的词共同的上下文,如 monstrous 和 very。
- >>> text2.common_contexts(["monstrous", "very"]) a_pretty is_pretty a_lucky am_glad be_glad
必须用方括号和圆括号把这些词括起来,中间用逗号分隔。个人理解:似乎 similar 是与之相关的词语,而 common_contexts 是相似的结构。
功能:通过函数 generate() 产生一些随机文本自动生成文章。
注意:第一次运行此命令时,由于要搜集词序列的统计信息而执行得比较慢,每次运行它,输出的文本都会不同。虽然文本是随机的,但是它重用了源文本中的词和短语,从而使我们能够感觉到它的风格和内容。
- >>> text3.generate()
总结:最后希望这篇入门文章对大家有所帮助,如果有错误或不足之处,亲海涵!后面还会深入的讲解自然语言处理和 Python 挖掘相关知识;同时包括 NLTK 的更广泛应用及理解。建议大家购买正版书籍阅读,挺不错的书籍《Python 自然语言处理》作者:Steven Bird, Ewan Klein & Edward Loper。
来源: http://lib.csdn.net/article/python/47307