5.1 词意消歧

在词意消歧中,我们要算出特定上下文中的词被赋予的是哪个意思。思考存在歧义的词 serve 和 dish:

  1. >>> sorted(set(w.lower() for w in text1))
  2. >>> sorted(w.lower() for w in set(text1))
  • ◑ 下面两个测试的差异是什么:w.isupper()not w.islower()

    • ◑ 写一个切片表达式提取text2中最后两个词。

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

    • ◑ 复习第4节中条件循环的讨论。使用forif语句组合循环遍历 《巨蟒和圣杯》text6)的电影剧本中的词,print所有的大写词,每行输出一个。

    • ◑ 写表达式找出text6中所有符合下列条件的词。结果应该是单词列表的形式:['word1', 'word2', ...]

    1. 以 ize 结尾
    2. 包含字母 z
    3. 包含字母序列 pt
    4. 除了首字母外是全部小写字母的词(即titlecase)* ◑ 定义sent为一个单词列表:['she', 'sells', 'sea', 'shells', 'by', 'the', 'sea', 'shore']。编写代码执行以下任务:

    5. 输出所有 sh 开头的单词

    6. 输出所有长度超过 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 PythonSteven Bird, Ewan KleinEdward 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