《Python自然语言处理》——1.8 练习

1.8 练习

1.○尝试使用Python解释器作为一个计算器,输入表达式,如12/(4+1)。

2.○26个字母可以组成26的10次方或者26**10个10字母长的字符串。也就是141167095653376L(结尾处的L只是表示这是Python长数字格式)。100个字母长度的字符串可能有多少个?

3.○Python乘法运算可应用于链表。当你输入['Monty', 'Python'] 20或者3 sent1会发生什么?

4.○复习1.1节关于语言计算的内容。在text2中有多少个词?有多少个不同的词?

5.○比较表格1-1中幽默和言情小说的词汇多样性得分,哪一个文体中词汇更丰富?

6.○制作《理智与情感》中4个主角:Elinor、Marianne、Edward和Willoughby的分布图。在这部小说中关于男性和女性所扮演的不同角色,你能观察到什么?你能找出一对夫妻吗?

7.○查找text5中的搭配。

8.○思考下面的Python表达式:len(set(text4))。说明这个表达式的用途,并且描述在执行此计算中涉及的两个步骤。

9.○复习1.2节关于链表和字符串的内容。

  a.定义一个字符串,并且将它分配给一个变量,如:my_string = 'My String'(在字符串中放一些更有趣的东西)。用两种方法输出这个变量的内容,一种是通过简单地输入变量的名称,然后按回车;另一种是通过使用print语句。

  b.尝试使用my_string+ my_string或者用它乘以一个数将字符串添加到它自身,例如:my_string* 3。请注意,连接在一起的字符串之间没有空格。怎样才能解决这个问题?

10.○使用语法my_sent = ["My", "sent"],定义一个词链表变量my_sent(用自己的词或喜欢的话)。

  a.使用' '.join(my_sent)将其转换成一个字符串。

  b.使用split()在你指定的地方将字符串分割回链表。

11.○定义几个包含词链表的变量,例如:phrase1、phrase2等。将它们连接在一起组成不同的组合(使用加法运算符),最终形成完整的句子。len(phrase1 + phrase2)与len(phrase1) + len(phrase2) 之间的关系是什么?

12.○考虑下面两个具有相同值的表达式。哪一个在NLP中更常用?为什么?

a."Monty Python"[6:12]
b.["Monty", "Python"][1]

13.○我们已经学习了如何用词链表表示一个句子,其中每个词是一个字符序列。sent12代表什么意思?为什么?并尝试其他的索引值。

14.○在变量sent3中保存的是text3的第一句话。在sent3中the的索引值是1,因为sent3[1]的值是“the”。sent3中“the”的其他两种出现的索引值是多少?

15.○复习1.4节讨论的条件语句。在聊天语料库(text5)中查找所有以字母b开头的词。按字母顺序显示出来。

16.○在Python解释器提示符下输入表达式range(10)。再尝试range(10, 20), range(10, 20, 2)和range(20, 10, -2)。在后续章节中我们将看到这个内置函数的多种用途。

17.◑使用text9.index()查找词sunset的索引值。你需要将这个词作为一个参数插入到圆括号之间。在尝试和出错的过程中,在完整的句子中找到包含这个词的切片。

18.◑使用链表加法、set和sorted操作,计算句子sent1...sent8的词汇表。

19.◑下面两行之间的差异是什么?哪一个的值比较大?其他文本也是同样情况吗?

>>> sorted(set([w.lower() for w in text1]))
>>> sorted([w.lower() for w in set(text1)]

20.◑w.isupper()和not w.islower()这两个测试之间的差异是什么?

21.◑编写一个切片表达式提取text2中的最后两个词。

22.◑找出聊天语料库(text5)中所有4个字母的词。使用频率分布函数(FreqDist),以频率从高到低显示这些词。

23.◑复习1.4节中的条件循环。使用for和if语句组合循环遍历电影剧本《巨蟒和圣杯》(text6)中的词,输出所有的大写词,每行输出一个。

24.◑编写表达式并找出text6中所有符合下列条件的词。结果应该以词链表形式表示:['word1', 'word2', ...]。

  a.以ize结尾。

  b.包含字母z。

  c.包含字母序列pt。

  d.除了首字母外是全部小写字母的词(即titlecase)。

25.◑定义sent为词链表['she', 'sells', 'sea', 'shells', 'by', 'the', 'sea', 'shore']。编写代码执行以下任务。

  a.输出所有sh开头的单词。

  b.输出所有长度超过4个字符的词。

26.◑下面的Python代码是做什么的?sum([len(w) for w in text1]),你可以用它来算出一个文本的平均字长吗?

27.◑定义一个名为vocab_size(text)的函数,以文本作为唯一的参数,返回文本的词汇量。

28.◑定义一个函数percent(word, text),计算一个给定的词在文本中出现的频率,结果以百分比表示。

29.◑我们一直在使用集合存储词汇表。试试下面的Python表达式:set(sent3) < set(text1)。尝试在set()中使用不同的参数。它是做什么用的?你能想到一个实际的应用吗?

时间: 2025-01-27 07:39:57

《Python自然语言处理》——1.8 练习的相关文章

《Python自然语言处理》——第1章 语言处理与Python

第1章 语言处理与Python Python自然语言处理我们能够很容易地得到数百万数量级的文本.假设我们会写一些简单的程序,那可以用它来做些什么?本章将解决以下几个问题. (1)通过将技术性较简单的程序与大规模文本结合起来,我们能实现什么? (2)如何自动地提取出关键字和词组,用来总结文本的风格和内容? (3)Python编程语言为上述工作提供了哪些工具和技术? (4)自然语言处理中有哪些有趣的挑战呢? 本章分为风格完全不同的两部分.在1.1节,我们将进行一些与语言相关的编程练习而不去解释它们是

NLP1 —— Python自然语言处理环境搭建

最近开始研究自然语言处理了,所以准备好好学习一下,就跟着<Python自然语言处理>这本书,边学边整理吧 安装 Mac里面自带了python2.7,所以直接安装nltk就可以了. 默认执行sudo pip install -U nltk会报错: Collecting nltk Downloading nltk-3.2.4.tar.gz (1.2MB) 100% |████████████████████████████████| 1.2MB 555kB/s Collecting six (fr

可爱的Python:自然语言工具包入门

在本期文章中,David 向您介绍了自然语言工具包(Natural Language Toolkit),它是一个将学术语言技术应用于文本数据集的 Python 库.称为"文本处理"的程序设计是其基本功能:更深入的是专门用于研究自然语言的语法以及语义分析的能力. 鄙人并非见多识广,虽然写过很多关于 文本处理 方面的东西(例如,一本书),但是,对我来说, 语言处理(linguistic processing) 是一个相对新奇的领域.如果在对意义非凡的自然语言工具包(NLTK)的说明中出现了

《Python自然语言处理》——第1章 语言处理与Python 1.1 语言计算:文本和词汇

第1章 语言处理与Python 我们能够很容易地得到数百万数量级的文本.假设我们会写一些简单的程序,那可以用它来做些什么?本章将解决以下几个问题. (1)通过将技术性较简单的程序与大规模文本结合起来,我们能实现什么? (2)如何自动地提取出关键字和词组,用来总结文本的风格和内容? (3)Python编程语言为上述工作提供了哪些工具和技术? (4)自然语言处理中有哪些有趣的挑战呢? 本章分为风格完全不同的两部分.在1.1节,我们将进行一些与语言相关的编程练习而不去解释它们是如何实现的.在1.2节,

《Python自然语言处理》——导读

前 言 这是一本关于自然语言处理的书.所谓"自然语言",是指人们日常交流使用的语言,如英语.印地语.葡萄牙语等.相对于编程语言和数学符号这样的人工语言,自然语言随着一代代的传递而不断演化,因而很难用明确的规则来确定.从广义上讲,"自然语言处理"(Natural Language Processing,NLP)包含所有用计算机对自然语言进行的操作,从最简单的通过计数词汇出现的频率来比较不同的写作风格,到最复杂的完全"理解"人所说的话,或至少达到能对

《Python自然语言处理》——1.5 自动理解自然语言

1.5 自动理解自然语言 我们一直在各种文本和Python编程语言的帮助下自下而上地探索语言.然而,我们也对通过构建有用的语言技术,开拓语言和计算知识面的兴趣.现在,将借此机会从代码的细节中退出来,以描绘自然语言处理的全景图. 在纯应用层面上,我们都需要帮助才能在网络上的文本中找到有用的信息.搜索引擎在网络的发展和普及中发挥了关键作用,但也有一些缺点.它需要技能.知识和一点运气才能找到这样一些问题的答案:"我用有限的预算能参观费城和匹兹堡的哪些景点?","专家们怎么评论数码单

《Python自然语言处理》——1.7 深入阅读

1.7 深入阅读 本章综合介绍了有关编程.自然语言处理和语言学的新概念.其中的一些将会在下面的章节继续出现.然而,你可能也想咨询与本章相关的在线材料(在http://www.nltk.org/ ),包括额外的背景资料的链接及在线NLP系统的链接.你可能还喜欢在维基百科中阅读一些语言学和自然语言处理相关的概念(如搭配.图灵测试.类型-标识符的区别等). 你应该自己去熟悉http://docs.python.org/ 上的Python文档,那里给出了许多教程和全面的参考材料.http://wiki.

《Python自然语言处理》——1.1 语言计算:文本和词汇

1.1 语言计算:文本和词汇 我们都对文本非常熟悉,因为我们每天都在进行阅读和写作.在本书中,把文本视为编写程序的原始数据,并通过很多有趣的编程方式来处理和分析文本.但在能写这些程序之前,必须得从了解Python解释器开始. Python入门 Python与用户友好交互的方式之一包括你可以在交互式解释器直接输入代码--解释器将运行你的Python代码的程序.你可以通过一个叫做交互式开发环境(Interactive Development Environment,IDLE)的简单图形接口来访问Py

《Python自然语言处理》——1.3 计算语言:简单的统计

1.3 计算语言:简单的统计 让我们重新开始探索利用计算资源处理大量文本的方法.在1.1节已经讨论了如何搜索文章中的词,如何汇编一个文本中的词汇,如何以相同的方式产生随机文本等. 在本节中,我们重新考虑怎样使一个文本显得与众不同的问题,并使用程序来自动寻找特征词汇和文本的表达方式.正如在1.1节中那样,可以通过把它们到复制Python解释器中来尝试Python语言的新特征,并将在下一节中系统地了解这些功能. 在这之前,你可能会想通过预测下面代码的输出来检验你对上一节的理解.你可以使用解释器来检查

《Python自然语言处理》——1.6 小结

1.6 小结 在Python中,文本用链表来表示:['Monty', 'Python'].我们可以使用索引.分片和len()函数对链表进行操作. 词"token"(标识符)是指文本中给定词的特定出现:词"type"(类型)则是指词作为一个特定序列字母的唯一形式.我们使用len(text)表示计数词的标识符,使用len(set(text))表示计数词的类型. 我们使用sorted(set(t))获得文本t的词汇表. 我们使用[f(x) for x in text]对文