27、绘制包含埃莉诺、玛丽安、爱德华和威洛比这四个元素的离散图。分析在相关情境中男性和女性所扮演的不同角色是什么,并识别出可能的情侣组合。
若要绘制离散图,可使用NLTK的 dispersion_plot 方法,示例代码如下:
import nltk
from nltk.corpus import gutenberg
nltk.download('gutenberg')
text = nltk.Text(gutenberg.words('austen-sense.txt'))
text.dispersion_plot(['Elinor', 'Marianne', 'Edward', 'Willoughby'])
关于男性和女性角色及情侣识别,需分析角色出现频率、情节等确定。在相关情境中,埃莉诺和爱德华是一对,玛丽安和威洛比曾有感情纠葛,后玛丽安与布兰登上校在一起。
28、假设有一个句子被表示为一个单词列表,列表名为sent1,其中每个单词是一个字符序列。sent1[2][2] 会做什么?为什么?用其他索引值进行实验。
sent1[2][2] 是先从 sent1 列表中取出第 3 个元素(单词),再从该单词中取出第 3 个字符。进行其他索引值实验可按此逻辑操作。
29、找出聊天语料库中所有以字母b开头的单词,并按字母顺序显示。
若要解决此问题,需使用NLTK库加载聊天语料库,然后筛选出以字母 b 开头的单词并排序。示例代码如下:
import nltk
from nltk.corpus import nps_chat
# 加载聊天语料库
chat_corpus = nps_chat.words()
# 筛选以字母b开头的单词
b_words = [word for word in chat_corpus if word.startswith('b')]
# 按字母顺序排序
b_words_sorted = sorted(b_words)
print(b_words_sorted)
30、w.isupper() 和 not w.islower() 这两个测试有什么区别?
-
w.isupper()用于测试字符串中所有大小写字符是否都是大写; -
not w.islower()是对w.islower()取反,w.islower()用于测试字符串中所有大小写字符是否都是小写,因此not w.islower()表示字符串中并非所有大小写字符都是小写。
31、写出提取text2中最后两个单词的切片表达式。
切片表达式为text2[-2:]
32、找出给定聊天语料库中所有的四个字母的单词。借助频率分布(FreqDist),按频率递减的顺序展示这些单词。
需使用NLTK库对语料库进行实际操作,步骤如下:
- 导入必要的库和语料库;
- 筛选出四个字母的单词;
- 使用
FreqDist统计频率; - 按频率递减排序输出。
示例代码如下:
from nltk import FreqDist
# 假设corpus是给定的聊天语料库
corpus = []
four_letter_words = [word for word in corpus if len(word) == 4]
fdist = FreqDist(four_letter_words)
result = sorted(fdist.items(), key=lambda item: item[1], reverse=True)
print(result)
33、结合使用for和if语句,遍历一个包含电影剧本单词的列表中的单词,并逐行打印所有大写单词。
示例代码如下:
# 假设这是包含电影剧本单词的列表
text6 = ['HELLO', 'world', 'HI']
for word in text6:
if word.isupper():
print(word)
上述代码首先定义了一个包含电影剧本单词的列表,然后遍历其中的每个单词,使用 isupper() 方法判断单词是否为大写,如果是则打印该单词。
34、尝试以下 Python 表达式:set(sent3) < set(text1)。使用不同的参数对 set() 进行此实验。该表达式有什么作用?你能想到它的实际应用吗?
`set(sent3) < set(text1)` 用于判断集合 `set(sent3)` 是否为集合 `set(text1)` 的真子集。
实际应用如判断某篇文章词汇是否都在某个常用词汇集合中。

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



