《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

  1. s = 'colorless'
  2. s[:4] + 'u' + s[4:]

2

  1. s = ['dishes', 'running', 'nationality', 'undo', 'preheat']
  2. s[0][:4]
  3. s[1][:3]
  4. s[2][:6]
  5. s[3][2:]
  6. 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.的范围比预想要广,测试。

  1. wl = ['9iy', 'LoL', 'WoW', 'AoE', 'abc', '']
  2. [w for w in wl if re.search('([^aeiou][aeiou][^aeiou])*', w)]
  3.  
  4. ['9iy', 'LoL', 'WoW', 'AoE', 'abc', '']
  5.  
  6. [w for w in wl if re.search('([^aeiou][aeiou][^aeiou])', w)]
  7. # 去掉了*
  8.  
  9. ['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.

  1. sent = ['The', 'dog', 'gave', 'John', 'the', 'newspaper']
  2. [(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' 来分词”。

  1. s = 'The dog gave John the newspaper'
  2. s.split()
  3. s.split(' ')
  4. s.split('a')
  5. s.split('a ')
  6. s.split('o')
  7. s.split('J')

13.

split()能识别出\t,将其视为做分隔符,split(' ')严格将空格作为分隔符,\t视为内容放入词链表。

  1. s = 'The dog gave J\t ohn the news paper.'
  2. s.split()
  3. 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的更多相关文章

  1. Exercises for IN1900

    Exercises for IN1900October 14, 2019PrefaceThis document contains a number of programming exercises ...

  2. Android游戏开发实践(1)之NDK与JNI开发03

    Android游戏开发实践(1)之NDK与JNI开发03 前面已经分享了两篇有关Android平台NDK与JNI开发相关的内容.以下列举前面两篇的链接地址,感兴趣的可以再回顾下.那么,这篇继续这个小专 ...

  3. Java多线程系列--“JUC锁”03之 公平锁(一)

    概要 本章对“公平锁”的获取锁机制进行介绍(本文的公平锁指的是互斥锁的公平锁),内容包括:基本概念ReentrantLock数据结构参考代码获取公平锁(基于JDK1.7.0_40)一. tryAcqu ...

  4. iOS系列 基础篇 03 探究应用生命周期

    iOS系列 基础篇 03 探究应用生命周期 目录: 1. 非运行状态 - 应用启动场景 2. 点击Home键 - 应用退出场景 3. 挂起重新运行场景 4. 内存清除 - 应用终止场景 5. 结尾 本 ...

  5. javaSE基础03

    javaSE基础03 生活中常见的进制:十进制(0-9).星期(七进制(0-6)).时间(十二进制(0-11)).二十四进制(0-23) 进制之间的转换: 十进制转为二进制: 将十进制除以2,直到商为 ...

  6. UML大战需求分析——阅读笔记03

    读<UML大战需求分析>有感03 状态机图和活动图在样子比较相似,但状态机图是用来为对象的状态及造成状态改变的事件建模.我们大二学习UML统一建模语言状态机图模块时了解到,UML的状态机图 ...

  7. 2016-1-28 图解HTTP(03)

    6.2.5 非HTTP/1.1首部字段        不限于RFC2616中定义的47种首部字段,还有Cookie.Set-Cookie和Content-Disposition等在其他RFC中首部字段 ...

  8. ReactNative新手学习之路03真机调试

    React Native新手入门03真机调试(iOS) 从设备访问开发服务器 在启用开发服务器的情况下,你可以快速的迭代修改应用,然后在设备上查看结果.这样做的前提是你的电脑和设备必须在同一个wifi ...

  9. 【三石jQuery视频教程】03.创建垂直时间表(Timeline)

    视频地址:http://v.qq.com/page/g/i/o/g0150rvi6io.html 大家好,欢迎来到[三石jQuery视频教程],我是您的老朋友 - 三生石上. 今天,我们要通过基本的H ...

  10. javascript基础03

    javascript基础03 1. 算术运算符 后增量/后减量运算符 ++ ,-- 比较运算符 ( >, <, >=, <=, ==, !=,===,!== ) 逻辑运算符( ...

随机推荐

  1. httpd启动脚本

    #!/bin/bash # chkconfig: - . /etc/rc.d/init.d/functions if [ -f /etc/sysconfig/httpd ]; then . /etc/ ...

  2. POJ 3067 Japan(树状数组)

                                                                                  Japan   Time Limit: 10 ...

  3. 【Unity3D基础教程】给初学者看的Unity教程(二):所有脚本组件的基类 -- MonoBehaviour的前世今生

    作者:王选易,出处:http://www.cnblogs.com/neverdie/ 欢迎转载,也请保留这段声明.如果你喜欢这篇文章,请点[推荐].谢谢! 引子 上一次我们讲了GameObject,C ...

  4. 从jsTree演示代码中提取的在线文件查看

    从jsTree演示代码中提取的在线文件查看 jsTree 请参考:https://www.jstree.com/ 效果如下: 代码下载:http://files.cnblogs.com/files/z ...

  5. PLSQL转义字符

    http://blog.csdn.net/cunxiyuan108/article/details/5800800

  6. linux gcc头文件搜索路径

    #include <>: 直接到系统指定的某些目录中去找某些头文件.#include "": 先到源文件所在文件夹去找,然后再到系统指定的某些目录中去找某些头文件 1. ...

  7. IntelliJ IDEA内存优化最佳实践

    [编者按]本文作者在和同事的一次讨论中发现,对 IntelliJ IDEA 内存采用不同的设置方案,会对 IDE 的速度和响应能力产生不同的影响. Don’t be a Scrooge and giv ...

  8. elastic search 配置问题

    http://www.elastic.co/guide/en/elasticsearch/guide/current/hardware.html 此处有关于ES硬件规格的建议和各种推荐参数. 内存: ...

  9. 24. Longest Consecutive Sequence

    Longest Consecutive Sequence Given an unsorted array of integers, find the length of the longest con ...

  10. click事件

    click事件是可以多次绑定的,如果绑定多次就会执行多次,因此再不需要重复执行的情况下,就需要使用unbind对事件进行解绑