[python+nltk] 自然语言处理简单介绍和NLTK坏境配置及入门知识(一)

标签: python 自然语言处理 NLP NLTK 入门知识
5691人阅读 评论(5) 收藏 举报
分类:
        本文主要是总结最近学习的论文、书籍相关知识,主要是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。

        (By:Eastmount 2015-4-16 晚上8点   http://blog.csdn.net/eastmount/

查看评论

NLTK学习总结(一)

一、NLTK介绍NLTK(Natural Language Toolkit) 是一个先进的用于构建处理人类语言数据的python应用的开源平台。它提供了超过50多个素材库和词库资源的易用接口,其中有很...
  • fegnkuang
  • fegnkuang
  • 2016-09-28 06:28:58
  • 1673

python的nltk中文使用和学习资料汇总帮你入门提高

nltk是一个python工具包, 用来处理和自然语言处理相关的东西. 包括分词(tokenize), 词性标注(POS), 文本分类, 等等现成的工具. 1. nltk的安装 资料1: 黄聪:Pyt...
  • huyoo
  • huyoo
  • 2013-09-30 11:13:42
  • 56448

干货!详述Python NLTK下如何使用stanford NLP工具包

阅读目录 目录1 NLTK和StandfordNLP简介2 安装配置过程中注意事项3 StandfordNLP必要工具包下载4 StandfordNLP相关核心操作5 参考文献和知识扩展 ...
  • u010239102
  • u010239102
  • 2017-09-27 16:00:20
  • 285

自然语言处理基本过程理解

接触自然语言已有两年,下面谈一谈自己的一些理解 自然语言基本处理过程: 1.获取数据。可以是任何文本类型的数据,自有的或者爬虫爬取的数据。曾经用几行代码写了一个爬虫,爬取了几万条商品评论还是很好用的。...
  • lt77701
  • lt77701
  • 2017-05-09 20:00:16
  • 2139

spark中自然语言处理的一些方法

spark中常用的一些自然语言处理方法,分词、tf-idf、word2vec、文本分类等看看代码吧: package com.iclick.word2vec import org.apache.lo...
  • luoyexuge
  • luoyexuge
  • 2016-06-27 12:22:23
  • 3335

Python NLTK 自然语言处理入门与例程

Python NLTK 自然语言处理入门与例程在这篇文章中,我们将基于 Python 讨论自然语言处理(NLP)。本教程将会使用 Python NLTK 库。NLTK 是一个当下流行的,用于自然语言处...
  • hzp666
  • hzp666
  • 2018-02-26 09:59:58
  • 747

python自然语言处理入门教程(一)

文章详细介绍了windows环境下,使用python语言借助于NLTK工具包进行自然语言处理任务。包括环境搭建以及常用函数的介绍。...
  • u010099495
  • u010099495
  • 2015-07-06 16:30:19
  • 3343

用NLTK进行自然语言处理的项目

源码及说明
  • chenpe32cp
  • chenpe32cp
  • 2017-04-21 15:57:01
  • 189

Python与自然语言处理_第二期_NLTK入门之NLTK的基本使用

import nltk from nltk.book import * #导入book这个语料 #text1.concordance('monstrous') text4.dispersion_pl...
  • a441593390
  • a441593390
  • 2016-04-12 11:25:42
  • 929

python nltk 基本操作

分词nltk.sent_tokenize(text) #按句子分割 nltk.word_tokenize(sentence) #分词 nltk的分词是句子级别的,所以对于一篇文档首先要...
  • sherrylml
  • sherrylml
  • 2015-04-22 16:08:45
  • 3559
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 253万+
    积分: 2万+
    排名: 398
    牛人博客
    博客专栏
    最新评论