5.1 词意消歧
在词意消歧中,我们要算出特定上下文中的词被赋予的是哪个意思。思考存在歧义的词 serve 和 dish:
>>> sorted(set(w.lower() for w in text1))
>>> sorted(w.lower() for w in set(text1))
◑ 下面两个测试的差异是什么:
w.isupper()
和not w.islower()
?◑ 写一个切片表达式提取
text2
中最后两个词。◑ 找出聊天语料库(
text5
)中所有四个字母的词。使用频率分布函数(FreqDist
),以频率从高到低显示这些词。◑ 复习第4节中条件循环的讨论。使用
for
和if
语句组合循环遍历 《巨蟒和圣杯》(text6
)的电影剧本中的词,print
所有的大写词,每行输出一个。◑ 写表达式找出
text6
中所有符合下列条件的词。结果应该是单词列表的形式:['word1', 'word2', ...]
。
- 以 ize 结尾
- 包含字母 z
- 包含字母序列 pt
除了首字母外是全部小写字母的词(即
titlecase
)* ◑ 定义sent
为一个单词列表:['she', 'sells', 'sea', 'shells', 'by', 'the', 'sea', 'shore']
。编写代码执行以下任务:输出所有 sh 开头的单词
- 输出所有长度超过 4 个字符的词* ◑ 下面的 Python 代码是做什么的?
sum(len(w) for w in text1)
你可以用它来算出一个文本的平均字长吗?
◑ 定义一个名为
vocab_size(text)
的函数,以文本作为唯一的参数,返回文本的词汇量。◑ 定义一个函数
percent(word, text)
,计算一个给定的词在文本中出现的频率,结果以百分比表示。◑ 我们一直在使用集合存储词汇表。试试下面的 Python 表达式:
set(sent3) < set(text1)
。实验在set()
中使用不同的参数。它是做什么用的?你能想到一个实际的应用吗?
关于本文档…
针对 NLTK 3.0 进行更新。本章来自于 Natural Language Processing with Python,Steven Bird, Ewan Klein 和Edward Loper,Copyright © 2014 作者所有。本章依据 Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 United States License [http://creativecommons.org/licenses/by-nc-nd/3.0/us/] 条款,与 自然语言工具包 [http://nltk.org/
] 3.0 版一起发行。
本文档构建于星期三 2015 年 7 月 1 日 12:30:05 AEST