2017-12-06更新:很多代码执行结果与书中不一致,是因为python的版本不一致。如果发现有问题,可以参考英文版:

http://www.nltk.org/book/

第三章,P87有一段处理html的代码:

  1. >>>raw = nltk.clean_html(html)
  2. >>>tokens = nltk.word_tokenize(raw)
  3. >>>tokens

可是我们执行会有如下错误:

  1. >>> raw = nltk.clean_html(html)
  2. Traceback (most recent call last):
  3. File "<stdin>", line 1, in <module>
  4. File "/Library/Python/2.7/site-packages/nltk/util.py", line 356, in clean_html
  5. raise NotImplementedError ("To remove HTML markup, use BeautifulSoup's get_text() function")
  6. NotImplementedError: To remove HTML markup, use BeautifulSoup's get_text() function

根据官方网站:介绍http://www.nltk.org/_modules/nltk/util.html
def clean_html(html):
raise NotImplementedError ("To remove HTML markup, use BeautifulSoup's get_text() function")
[docs]def clean_url(url):
raise NotImplementedError ("To remove HTML markup, use BeautifulSoup's get_text() function")
网站:http://stackoverflow.com/questions/10524387/beautifulsoup-get-text-does-not-strip-all-tags-and-javascript介绍:
以后的版本,似乎不支持clean_html()和clean_url()这两个函数
Support for clean_html and clean_url will be dropped for future versions of nltk. Please use BeautifulSoup for now...it's very unfortunate.
有关处理HTML 的内容,可以使用http://www.crummy.com/software/BeautifulSoup/上的Beautiful Soup 软件包。

安装:sudo pip install beautifulsoup4

之后替换书上的代码:

  1. from __future__ import division
  2. import nltk, re, pprint
  3. from urllib import urlopen
  4. from bs4 import BeautifulSoup
  5.  
  6. def read_html():
  7. url = "http://news.bbc.co.uk/2/hi/health/2284783.stm"
  8. html = urlopen(url).read()
  9. soup = BeautifulSoup(html)
  10. text = soup.get_text()
  11. print text
  12. tokens = nltk.word_tokenize(text)
  13. print tokens
  14.  
  15. def main():
  16. read_html()
  17.  
  18. if __name__ == '__main__':
  19. main()

上述脚本文件可以独立运行,运行结果与书上一致

python自然语言处理——学习笔记:Chapter3纠错的更多相关文章

  1. python自然语言处理学习笔记1

    1.搭建环境 下载anaconda并安装,(其自带python2.7和一些常用包,NumPy,Matplotlib),第一次启动使用spyder 2.下载nltk import nltk nltk.d ...

  2. Python自然语言处理学习笔记之性别识别

    从今天起开始写自然语言处理的实践用法,今天学了文本分类,并没用什么创新的东西,只是把学到的知识点复习一下 性别识别(根据给定的名字确定性别) 第一步是创建一个特征提取函数(feature extrac ...

  3. python自然语言处理学习笔记2

    基础语法 搜索文本----词语索引使我们看到词的上下 text1.concordance("monstrous") 词出现在相似的上下文中 text1.similar(" ...

  4. Python自然语言处理学习笔记(69)

    http://www.cnblogs.com/yuxc/archive/2012/02/09/2344474.html Chapter8    Analyzing Sentence Structure ...

  5. Python自然语言处理学习笔记之信息提取步骤&分块(chunking)

    一.信息提取模型 信息提取的步骤共分为五步,原始数据为未经处理的字符串, 第一步:分句,用nltk.sent_tokenize(text)实现,得到一个list of strings 第二步:分词,[ ...

  6. Python自然语言处理学习笔记之评价(evaluationd)

    对模型的评价是在test set上进行的,本文首先介绍测试集应该满足的特征,然后介绍四种评价方法. 一.测试集的选择 1.首先,测试集必须是严格独立于训练集的,否则评价结果一定很高,但是虚高,不适用于 ...

  7. Python自然语言处理学习笔记之选择正确的特征(错误分析 error analysis)

    选择合适的特征(features)对机器学习的效率非常重要.特征的提取是一个不断摸索的过程(trial-and-error),一般靠直觉来发现哪些特征对研究的问题是相关的. 一种做法是把你能想到的所有 ...

  8. Requests:Python HTTP Module学习笔记(一)(转)

    Requests:Python HTTP Module学习笔记(一) 在学习用python写爬虫的时候用到了Requests这个Http网络库,这个库简单好用并且功能强大,完全可以代替python的标 ...

  9. python网络爬虫学习笔记

    python网络爬虫学习笔记 By 钟桓 9月 4 2014 更新日期:9月 4 2014 文章文件夹 1. 介绍: 2. 从简单语句中開始: 3. 传送数据给server 4. HTTP头-描写叙述 ...

随机推荐

  1. java web hello world(二)基于Servlet理解监听

    java web最开始实现是通过Servlet实现,这里就来实现下,最原始的监听是如何实现的. 第一步,创建一个基本的web项目 ,参见(java web hello world(一)) 第二步,we ...

  2. QT 4.8.5 源代码目录调整

    * 前言: 有一个代码比较乱的 QT 源码,我想让它分目录整理一下,特此记录一下. * 在原来的代码里面,里面很多文件都是在主文件里面,这样做的话不好维护以及整理 network 里面所有的文件都是和 ...

  3. 一次完整的https过程

    参考: 1. 一次完整的HTTP事务是怎样一个过程? 2. The First Few Milliseconds of an HTTPS Connection 3. 也许,这样理解HTTPS更容易 4 ...

  4. java调用kettle_实现(2)

    (1).参照“java调用kettle_导入jar包(1)”,应用etl工具下lib里的所有jar (2). 最近要对一个系统的数据同步到另一个系统中,要求新系统的数据结果完成之后,实时同步到另一个系 ...

  5. js 复制 功能

    <html> <head> <title>Zero Clipboard Test</title> <meta charset="utf- ...

  6. easyui添加删除tooltip

    /** * 扩展两个方法 */$.extend($.fn.datagrid.methods, { /** * 开打提示功能 * @param {} jq * @param {} params 提示消息 ...

  7. C++ 类中的静态成员变量,静态成员函数

    //类中的静态成员变量,静态成员函数 #define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace std; /* ...

  8. 多媒体开发之rtsp---rtsp client 端的实现

    http://blog.csdn.net/xyz_lmn/article/details/6055179 java实现 http://www.cnblogs.com/wohexiaocai/p/454 ...

  9. thinkPHP中phpexcel的导出功能

    public function wExcel() { vendor("PHPExcel.PHPExcel"); // Create new PHPExcel object $obj ...

  10. 性能测试工具LoadRunner中进程运行和线程运行区别

    loadrunner controller将使用驱动程序mmdrv运行Vuser.用户可以在controller的run-time setting中选择Vuser的运行方式, 是多进程方式or多线程方 ...