《Python自然语言处理》中文版-纠错【更新中。。。】
最近在看《Python自然语言处理》中文版这本书,可能由于是从py2.x到py3.x,加上nltk的更新的原因,或者作者的一些笔误,在书中很多代码都运行不能通过,下面我就整理一下一点有问题的代码。
第一章:
p3.该处为小建议,书中没有错误:关于nltk.book的下载,最好下载到'/nltk_data'文件夹下,如'D:/nltk_data'
p7.text3.generate(). generate()函数用法已经过时,正在查找最新的方法。
p18.关于FreqDist()函数发生了更新,如果按照书上的代码键入,并不会得到预期的结果,可以用下面的方法进行改进来得到相同的结果:
>>>fdist1=FreqDist(text1)
>>>len(fdist1)
19317
>>>vocabulary1=sorted(fdist1.items(),key=lambda jj:jj[1],reverse=True)
>>>s=[]
>>>for i in range(len(vocabulary1)):
s.append(vocabulary1[i][0])
>>>print(s)
p22.FreqDist函数,和18页的问题是一样的,可以仿照上面的解决方法进行改进。
p32.babelize_shell() 该函数在nltk3.0中已经不再可用了,跳过该函数讲解部分。
第二章:
p48页:cfd=nltk.ConditionalFreqDist((target,file[:4]) for fileid in inaugural.fileids() for w in inaugural.words(fileid) for target in ['america','citizen'] if w.lower().startswith(target)) 会显示出错
改正:将第一个括号内的file[:4]改为fileid[:4]即可。即:cfd=nltk.ConditionalFreqDist((target,fileid[:4]) for fileid in inaugural.fileids() for w in inaugural.words(fileid) for target in ['america','citizen'] if w.lower().startswith(target))
p51:代码最后一行cfd.plot(cumulative=True少了闭括号。
p56:>>>cfd 书上写的是不显示cfd里面的内容,而在Python3.X中,输入这句话会自动输出cfd里面的内容。
p58:使用双连词生成随机文本。输入nltk.bigrams(sent)并不会生成列表,需要写成:list(nltk.bigrams(sent))才能生成书上的形式。
p72:倒数第二行,>>>wn.synset('car.n.01').lemma_names忘记加括号,改为:>>>wn.synset('car.n.01').lemma_names()
p73:一开始的代码.definition和.examples和上面问题一样,需要加括号才能显示结果。本页上的其他函数也需要同样处理、
P85:如果使用py3,在使用urlopen时需要:from urllib.request import urlopen
P87:NLTK提供了辅助函数nltk.clean_html()这个函数现在不在支持,可以使用beautifulsoup库。
P116:在concordanc函数中,wc=width/4,在py3中会报错,应该改为wc=width//4.
P121:关于nltk.regexp_tokenize(text,pattern)并不会得到预期的效果,需要对pattern进行重写,具体重写代码如下:
pattern = r"""(?x) # set flag to allow verbose regexps
(?:[A-Z]\.)+ # abbreviations, e.g. U.S.A.
|\d+(?:\.\d+)?%? # numbers, incl. currency and percentages
|\w+(?:[-']\w+)* # words w/ optional internal hyphens/apostrophe
|\.\.\. # ellipsis
|(?:[.,;"'?():-_`]) # special characters with meanings
"""
重写以后在执行就会出现预期的结果。
由于是刚开始看,所以后面的还没看到,本文也会持续更新新遇到的错误,也欢迎大家补充。
《Python自然语言处理》中文版-纠错【更新中。。。】的更多相关文章
- python 试题归纳及答疑 更新中.....
一.Python基础篇(80题) 1.你为什么学习Python? 一.答题思路 1.阐述 python 优缺点 2.Python应用领域说明 3.根据自身工作情况阐述为什么会使用python 1)py ...
- 2020企业python真面试题持续更新中
目录 1.软件的生命周期 2.如何知道一个python对象的类型 3.简述Django的设计模式MVC,以及你对各层的理解和用途 4.什么是lambda函数,说明其使用场景 5.python是否支持函 ...
- Python 基础知识(持续更新中)
内置数据类型: 整型 浮点型 字符串 布尔值 空值 None 列表 list 元组 tuple 字典 dict 集合 set ...
- 【从0開始Tornado建站】0.9版本号python站点代码开源--持续更新中
从5月份開始[从0開始Tornado建站]这个专栏,開始一点一点把这个分类兴趣站点弄起来,从无到有的过程也是令人兴奋的:-) 国庆的时候等待备案然后上线,如今站点域名为ustchack ...
- Python自然语言处理实践: 在NLTK中使用斯坦福中文分词器
http://www.52nlp.cn/python%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86%E5%AE%9E%E8%B7%B5-% ...
- python编程系列---Pycharm快捷键(更新中....)
以下是我常用到的Pycharm快捷键(还有很多,只是我暂时用的最多的就这些): 在开发过程中,经常使用一些快捷键会大大提高开发效率,不要因为看这多而不用,常用的就那些,用得多就都记住了,脱离鼠标,逼格 ...
- Effective Go中文版(更新中)
原文链接:https://golang.org/doc/effective_go.html Introduction Go是一种新兴的编程语言.虽然它借鉴了现有语言的思想,但它具有不同寻常的特性,使得 ...
- python 报错错误集合——更新中
1. #!/usr/bin/env python # -*- coding:utf-8 -*- 'one #报错 File "C:\Users\shuxiu\Desktop\test.py& ...
- python (3.5)字符串 持续更新中………………
# 字符串与变量连接输出 name = input("请输入姓名")age = input("请输入年龄")job = input("请输入工作&qu ...
- Python 003- 小知识汇总(更新中)
#查询key是否存在,可以在使用未知的字典的时候使用 #-*- coding:utf-8 -*- D={'a':1,'c':3,'b':2} for key in sorted(D): print(k ...
随机推荐
- RabbitMQ、Redis
进程QUEUE,可以是父进程与子进程间进行交互,也可以是同属于一个父进程的子进程间的交互:如果要实现进程A与进程B之间的通信,就需要借助一个中间进程了,我们习惯称为消息队列. QQ无法直接与WORD通 ...
- 爬虫学习--使用百度api---天气
#coding:utf-8#version:0.1#note:该即用API能查询指定城市的空气质量指数,但城市数量有限,截止2015年3月26日,只能查到全国161个城市的. import urlli ...
- Date and Time
The PHP date() function is used to format date and/or a time and formats as timestamp to a more read ...
- 横竖屏切换时候Activity的生命周期
1.新建一个Activity,并把各个生命周期打印出来 2.运行Activity,得到如下信息 onCreate-->onStart-->onResume--> 3.按crtl+f1 ...
- 爆破vcrkme01(已补上注册机)
系统 : Windows xp 程序 : vcrkme01 程序下载地址 :http://pan.baidu.com/s/1mh1n33y 要求 : 爆破 使用工具 :OD 可在“PEDIY Crac ...
- Oracle修改字段类型方法总结(转)
有一个表名为tb,字段段名为name,数据类型nchar(20). 1.假设字段数据为空,则不管改为什么字段类型,可以直接执行:alter table tb modify (name nvarchar ...
- BZOJ3028 食物 (生成函数)
首先 1+x+x^2+x^3+...+x^∞=1/(1-x) 对于题目中的几种食物写出生成函数 (对于a*x^b , a表示方案数 x表示食物,b表示该种食物的个数) f(1)=1+x^2+x^4+. ...
- 【转】Web应用的组件化开发(一)
原文转自:http://blog.jobbole.com/56161/ 基本思路 1. 为什么要做组件化? 无论前端也好,后端也好,都是整个软件体系的一部分.软件产品也是产品,它的研发过程也必然是有其 ...
- MINIX3 进程通信分析
MINIX3 进程通信分析 6.1MINIX3 进程通信概要 MINIX3 的进程通信是 MINIX3 内核部分最重要的一个部件,我个人认为其实这 是内核中的“内核”,怎么来理解这个概念呢?其实 MI ...
- 六、CCLayer
一个游戏中可以有很多个场景,每个场景里面又可能包含有多个图层,这里的图层一般就是CCLayer对象.CCLayer本身几乎没什么功能,对比CCNode,CCLayer可用于接收触摸和加速计输入.其实, ...