赞
踩
1. 尝试使用Python解释器作为一个计算器,输入表达式,如:12/(4+1)
12/4
2. 26 个字母可以组成 26 的 10 次方或者 26**10个 10 字母长的字符串。 也就是 141167095653376L(结尾处的 L 只是表示这是 Python 长数字格式)。100 个字母长度的字符串可能有多少个?
26**100
3.Python乘法运算可应用于链表。当你输入['Monty', 'Python'] * 20 或者 3 * sent1会发生什么?
- ['Monty','Python'] * 20
- ['Monty', 'Python', 'Monty', 'Python', 'Monty', 'Python', 'Monty', 'Python', 'Monty', 'Python', 'Monty', 'Python', 'Monty', 'Python', 'Monty', 'Python', 'Monty', 'Python', 'Monty', 'Python', 'Monty', 'Python', 'Monty', 'Python', 'Monty', 'Python', 'Monty', 'Python', 'Monty', 'Python', 'Monty', 'Python', 'Monty', 'Python', 'Monty', 'Python', 'Monty', 'Python', 'Monty', 'Python']
4.复习1.1节关于语言计算的内容。在text2中有多少个词?有多少个不同的词?
- len(text1)
- len(set(text1))
6.制作《理智与情感》中四个主角:Elinor、Marianne、Edward 和 Willoughby 的分布图。在这部小说中关于男性和女性所扮演的不同角色,你能观察到什么?你能找出一对夫妻吗?
text2.dispersion_plot(['Elinor','Edward','Willoughby','Marianne'])
14. 在变量sent3中保存的是text3的第一句话。在sent3中the的索引值是1,因为sent3[1]的值是“the”。sent3中“the”的其他两种出现的索引值是多少?
[i for i, w in enumerate(sent3) if w=='the']
15. 复习1.4节讨论的条件语句。在聊天语料库(text5)中查找所有以字母b开头的词。按字母顺序显示出来。
sorted([w for w in set(text5) if w.startswith('b')])
17. 使用text9.index()查找词sunset的索引值。你需要将这个词作为一个参数插入到圆括号之间。在尝试和出错的过程中,在完整的句子中找到包含这个词的切片。
- def solution(keyword, text):
- pun = [i for i, j in enumerate(text) if j == '.' or j == '?' or j == '!']
- sunset = [i for i, j in enumerate(text) if j == keyword]
- ans = []
- flag = 0
- for i in range(len(sunset)):
- j = flag
- while j < len(pun):
- if sunset[i] < pun[j] and pun[j - 1] < sunset[i]:
- ans.append([pun[j - 1] + 1, pun[j] + 1])
- flag = j + 1
- break
- j += 1
- # print ans
- for i in range(len(ans)):
- print ('start from %d to end in %d' % (ans[i][0], ans[i][1]))
- print (' '.join(text[ans[i][0]: ans[i][1]]))
-
- solution('sunset',text9)
22. 找出聊天语聊库(text5)中所有4个字母的词。使用频率分布函数(FreqDist),以频率从高到低显示这些词。
- text5_freq = nltk.FreqDist(w for w in text5 if len(w)==4)
- print(sorted(text5_freq, key=lambda x:text5_freq[x], reverse=True))
24. 编写表达式并找出text6中所有符合下列条件的词。结果应该以词链表形式表示:['word1', 'word2'...]。
- #a.ize结尾
- text = [w for w in text6 if w.endswith('ize')]
- #b.包含字母z
- text = [w for w in text6 if 'z' in w]
- #c.包含序列pt
- text = [w for w in text6 if 'pt' in w]
- #d.除了首字母外是全部小写字母的词(即titlecase)。
- [w for w in text6 if w.istitle()]
27.定义一个名为vocab_size(text)的函数,以文本作为唯一的参数,返回文本的词汇量。
- def vocab_size(text):
- return len(set(w.lower() for w in text if w.isalpha()))
- vocab_size(text1)
28.定义一个函数percent(word, text),计算一个给定的词在文本中出现的频率,结果以百分比表示。
- def percent(word,text):
- print("%s" % (nltk.FreqDist(text).freq(word)*100) ,"%")
- return
- percent('the',brown.sents(categories='news')[1])
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。