NLPP-03-Exercises
《PYTHON自然语言处理》第3章 处理原始文本
更多更复杂有关处理HTML内容 http://www.crummy.com/software/BeautifulSoup/
3.11 深入阅读
PEP-100 http://www.python.org/dev/peps/pep-0100/
http://amk.ca/
Frederik Lundh, Python Unicode Objects, http://effbot.org/zone/unicode-objects.htm
Joel Spolsky, The Absolute Minimum Every Software Developer Absolutely, Posi-tively Must Know About Unicode and Character Sets (No Excuses!), http://www.joelonsoftware.com/articles/Unicode.html
http://sighan.org/
http://www.aclweb.org/
3.12 练习
1
s = 'colorless'
s[:4] + 'u' + s[4:]
2
s = ['dishes', 'running', 'nationality', 'undo', 'preheat']
s[0][:4]
s[1][:3]
s[2][:6]
s[3][2:]
s[4][3:]
3 负数索引会回绕,s[-1]是字符串最后一个字符。
4、5
monty = 'Monty Python'
monty[6:11:2] => 'Pto'
第一个是起点,第二个是终点,第三个是步长。
monty[10:5:-2] => 'otP'
步长为负,反方向(左)取字符。
monty[::-1] = > 'nohtyP ytnoM'
倒序取整个字符串。
6
a.[a-zA-Z]+ 纯字符构成的单词
b.[A-Z][a-z]* 首字母大写的纯字符单词,词长至少是1
c. p[aeiou]{,2}t 首字母为p,跟0-2个元音字母,跟字母t的单词。
d.\d+(\.\d+)? 整数或小数。数字1个或多个,跟(小数点.1个,数字1个或多个) ,小数点部分或0个或1个。
e.([^aeiou][aeiou][^aeiou])* (1非小写字母,可以是大写元音字母+1小写元音字母+1非小写元音字母)0个或多个。
e.的范围比预想要广,测试。
wl = ['9iy', 'LoL', 'WoW', 'AoE', 'abc', '']
[w for w in wl if re.search('([^aeiou][aeiou][^aeiou])*', w)] ['9iy', 'LoL', 'WoW', 'AoE', 'abc', ''] [w for w in wl if re.search('([^aeiou][aeiou][^aeiou])', w)]
# 去掉了* ['9iy', 'LoL', 'WoW', 'AoE']
第一种情况,123是模式为0的情况。abc为什么也能通过,也是模式为0??是的,nltk.re_show('([^aeiou][aeiou][^aeiou])', 'abc') 结果是{}a{}b{}c
第二种情况,是预想的情形。
二者只差一个*,差别太大了。
f.\w+ | [^\w\s]+ 至少一个字母数字字符 或者 至少一个不含字母数字字符空白的字符串。
7.
a. 没想出来
b. ^-?[1-9]\d*$ 匹配整数
\*乘号
\+加号
^-?[1-9]\d*$\*^-?[1-9]\d*$\+^-?[1-9]\d*$
8、9. 正则表达式分词
10.
sent = ['The', 'dog', 'gave', 'John', 'the', 'newspaper']
[(word, len(word)) for word in sent]
11. Define a string raw containing a sentence of your own choosing. Now, split raw on some character other than space, such as 's'.
这句中文译文译得真头疼。“分裂raw的一些字符以外的空间,例如's'”
应为:“以其他字符(非空格),如's' 来分词”。
s = 'The dog gave John the newspaper'
s.split()
s.split(' ')
s.split('a')
s.split('a ')
s.split('o')
s.split('J')
13.
split()能识别出\t,将其视为做分隔符,split(' ')严格将空格作为分隔符,\t视为内容放入词链表。
s = 'The dog gave J\t ohn the news paper.'
s.split()
s.split(' ')
14
words.sort(),words本身变为有序词链。
sorted(words),输出排序词链,但words本身没有变化,依然保持原序。
15.
3 * 7 => 21
# “3" * 7是字符”3"重复7次。
"3" * 7 => '3333333'
int("3") => 3
str(3) =>'3'
16. 略
17.
>>> s ='HelloWorld'
>>> s
'HelloWorld'
>>> '%6s' % s
'HelloWorld'
>>> '%-6s' % s
'HelloWorld'
=====结束分割线=====
(待续……)
NLPP-03-Exercises的更多相关文章
- Exercises for IN1900
Exercises for IN1900October 14, 2019PrefaceThis document contains a number of programming exercises ...
- Android游戏开发实践(1)之NDK与JNI开发03
Android游戏开发实践(1)之NDK与JNI开发03 前面已经分享了两篇有关Android平台NDK与JNI开发相关的内容.以下列举前面两篇的链接地址,感兴趣的可以再回顾下.那么,这篇继续这个小专 ...
- Java多线程系列--“JUC锁”03之 公平锁(一)
概要 本章对“公平锁”的获取锁机制进行介绍(本文的公平锁指的是互斥锁的公平锁),内容包括:基本概念ReentrantLock数据结构参考代码获取公平锁(基于JDK1.7.0_40)一. tryAcqu ...
- iOS系列 基础篇 03 探究应用生命周期
iOS系列 基础篇 03 探究应用生命周期 目录: 1. 非运行状态 - 应用启动场景 2. 点击Home键 - 应用退出场景 3. 挂起重新运行场景 4. 内存清除 - 应用终止场景 5. 结尾 本 ...
- javaSE基础03
javaSE基础03 生活中常见的进制:十进制(0-9).星期(七进制(0-6)).时间(十二进制(0-11)).二十四进制(0-23) 进制之间的转换: 十进制转为二进制: 将十进制除以2,直到商为 ...
- UML大战需求分析——阅读笔记03
读<UML大战需求分析>有感03 状态机图和活动图在样子比较相似,但状态机图是用来为对象的状态及造成状态改变的事件建模.我们大二学习UML统一建模语言状态机图模块时了解到,UML的状态机图 ...
- 2016-1-28 图解HTTP(03)
6.2.5 非HTTP/1.1首部字段 不限于RFC2616中定义的47种首部字段,还有Cookie.Set-Cookie和Content-Disposition等在其他RFC中首部字段 ...
- ReactNative新手学习之路03真机调试
React Native新手入门03真机调试(iOS) 从设备访问开发服务器 在启用开发服务器的情况下,你可以快速的迭代修改应用,然后在设备上查看结果.这样做的前提是你的电脑和设备必须在同一个wifi ...
- 【三石jQuery视频教程】03.创建垂直时间表(Timeline)
视频地址:http://v.qq.com/page/g/i/o/g0150rvi6io.html 大家好,欢迎来到[三石jQuery视频教程],我是您的老朋友 - 三生石上. 今天,我们要通过基本的H ...
- javascript基础03
javascript基础03 1. 算术运算符 后增量/后减量运算符 ++ ,-- 比较运算符 ( >, <, >=, <=, ==, !=,===,!== ) 逻辑运算符( ...
随机推荐
- [NOIP2011] mayan游戏(搜索+剪枝)
题目描述 Mayan puzzle是最近流行起来的一个游戏.游戏界面是一个 7 行5 列的棋盘,上面堆放着一些方块,方块不能悬空堆放,即方块必须放在最下面一行,或者放在其他方块之上.游戏通关是指在规定 ...
- 源码分析:Java对象的内存分配
Java对象的分配,根据其过程,将其分为快速分配和慢速分配两种形式,其中快速分配使用无锁的指针碰撞技术在新生代的Eden区上进行分配,而慢速分配根据堆的实现方式.GC的实现方式.代的实现方式不同而具有 ...
- excel表格中关于 撤销工作表保护密码
利用宏处理,代码如下: Sub PasswordBreaker() Dim i As Integer, j As Integer, k As Integer Dim l As Integer, m A ...
- flash cs6导入某些mp3不能的解决办法
安装最新的quicktime 另外还有一个很恶心的办法,可以不用装quicktime. 1.用adobe audio打开一个没问题的mp3, 2.再打开有问题的MP3,全选,复制: 3.切换到没问题的 ...
- 转载部长一篇大作:常用排序算法之JavaScript实现
转载部长一篇大作:常用排序算法之JavaScript实现 注:本文是转载实验室同门王部长的大作,找实习找工作在即,本文颇有用处!原文出处:http://www.cnblogs.com/ywang172 ...
- IIS:开启GZIP压缩效率对比及部署方法
HTTP压缩 HTTP压缩是在Web服务器和浏览器间传输压缩文本内容的方法.HTTP压缩采用通用的压缩算法如GZIP等压缩HTML.JavaScript或CSS文件.压缩的最大好处就是降低了网络传输的 ...
- linux后台进程管理工具supervisor
Linux的后台进程运行有好几种方法,例如nohup,screen等,但是,如果是一个服务程序,要可靠地在后台运行,我们就需要把它做成daemon,最好还能监控进程状态,在意外结束时能自动重启. su ...
- Java为什么会引入及如何使用Unsafe
综述 sun.misc.Unsafe至少从2004年Java1.4开始就存在于Java中了.在Java9中,为了提高JVM的可维护性,Unsafe和许多其他的东西一起都被作为内部使用类隐藏起来了.但是 ...
- Maven依赖排除 禁止依赖传递 取消依赖的方法
大家都知道Maven的优点是依赖管理,特别是前期使用ANT的开发者都有很多感触.最近要开发一个java工程,定的要使用maven,会使用hadoop和hbase的客户端,而引入一个hadoop-cli ...
- log4j打印mybatis sql语句
Mybatis默认使用有slf4j 必须加上依赖 <dependency> <groupId>org.slf4j</groupId> <artifactId& ...